Migrationsanleitung

Von GeeTest zu CaptchaLa migrieren

Self-Service-Preise, Docs mit Englisch-Priorität und ein einziges Token statt vier versteckter Felder. Wechsel in unter 10 Minuten.

GeeTestCurrent setup~10 minCaptchaLaDrop-in target

So sieht die Code-Änderung aus

Before — GeeTest GT4
<div id="captcha"></div>
<script src="https://static.geetest.com/v4/gt4.js"></script>
<script>
  initGeetest4({ captchaId: 'YOUR_CAPTCHA_ID' }, function(captcha) {
    captcha.appendTo('#captcha')
    captcha.onSuccess(function() {
      var result = captcha.getValidate()
      document.getElementById('lot_number').value = result.lot_number
      document.getElementById('captcha_output').value = result.captcha_output
      document.getElementById('pass_token').value = result.pass_token
      document.getElementById('gen_time').value = result.gen_time
    })
  })
</script>
After — CaptchaLa
<button id="login-btn">Sign in</button>
<script src="https://cdn.captcha-cdn.net/captchala-loader.js"></script>
<script>
  loadCaptchala(() => Captchala.init({ appKey: 'YOUR_APP_KEY', action: 'login' })
    .onSuccess(res => onToken(res.token))
    .bindTo('#login-btn'));
</script>
Before — GeeTest server verify (Node)
const sign = crypto.createHmac('sha256', process.env.GEETEST_KEY)
  .update(req.body.lot_number).digest('hex')
const res = await fetch(`https://gcaptcha4.geetest.com/validate?captcha_id=${process.env.GEETEST_ID}`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  body: new URLSearchParams({
    lot_number: req.body.lot_number,
    captcha_output: req.body.captcha_output,
    pass_token: req.body.pass_token,
    gen_time: req.body.gen_time,
    sign_token: sign,
  }),
})
const data = await res.json()
if (data.result !== 'success') return res.status(400).json({ error: 'bot' })
After — CaptchaLa server verify (Node)
const res = await fetch('https://apiv1.captcha.la/v1/validate', {
  method: 'POST',
  headers: {
    'X-App-Key': process.env.CAPTCHALA_APP_KEY,
    'X-App-Secret': process.env.CAPTCHALA_APP_SECRET,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ pass_token: req.body['captchala-token'] }),
})
const { data } = await res.json()
if (!data || !data.valid) return res.status(400).json({ error: 'bot' })

Migrationsschritte

  1. 1

    Registrieren & App Key + Secret holen

    Legen Sie ein kostenloses CaptchaLa-Konto an – kein Sales-Call, kein Kontaktformular. Fügen Sie eine Site hinzu, kopieren Sie den App Key (öffentlich) und das App Secret (serverseitig).

  2. 2

    GeeTest-Initialisierungs-JS entfernen

    Löschen Sie den initGeetest4-Aufruf und seinen onSuccess-Callback. Entfernen Sie die vier versteckten Inputs (lot_number, captcha_output, pass_token, gen_time), die Sie befüllt haben.

  3. 3

    CaptchaLa-Widget-Tag hinzufügen

    Ersetzen Sie den gesamten GeeTest-Block durch unser div + Script. Keine JS-Konfiguration nötig – das Widget initialisiert sich selbst aus data-app-key.

  4. 4

    Server-Verifizierung vereinfachen

    Ersetzen Sie die GeeTest-Verifizierung (mit ihrer HMAC-sign_token-Berechnung, dem Vier-Felder-Body und der result-String-Prüfung) durch einen einzigen JSON-POST an apiv1.captcha.la/v1/validate und ein valid-Flag (data.valid).

  5. 5

    Schrittweise ausrollen

    Wechseln Sie ein Formular nach dem anderen. Beobachten Sie Conversion und Challenge-Rate. Es gibt kein Minimum oder Vertrag, daher ist ein gestaffelter Rollout kostenlos.

Häufige Fragen

Funktioniert CaptchaLa auf dem chinesischen Festland genauso gut?

Ja, mit einer ehrlichen Einschränkung. Wir betreiben keine Knoten innerhalb Festlandchinas und behaupten das auch nicht. Entscheidend in der Praxis: Unsere Endpunkte sind dort nicht blockiert — anders als die von Google — Ihre Formulare funktionieren also weiter. Datenverkehr vom Festland wird über unsere nächstgelegene Edge in Asien (Vietnam, Singapur, Hongkong) bedient. Die Latenz ist höher als für Nutzer in diesen Märkten und schwankt mit dem grenzüberschreitenden Routing; wir nennen daher keine Zahl, für die wir nicht geradestehen können. Kein separates SDK, kein separates Konto, keine separate Abrechnung.

Was ist mit GeeTests Slider-UX, an die mein Team gewöhnt ist?

CaptchaLa enthält den Slider als einen der Challenge-Typen im adaptiven System – er ist nicht der Standard, aber verfügbar. Die meisten Teams stellen fest, dass der Standard (unsichtbar bei geringem Risiko + Klick bei höherem Risiko) besser konvertiert als ein Slider-First-Ansatz.

Gibt es Unterschiede in der Empfindlichkeit des Risk-Scorings?

GeeTests Risikomodell ist auf APAC-Traffic-Muster abgestimmt. Das von CaptchaLa ist global. Wenn Ihr Traffic APAC-lastig ist, erwarten Sie vergleichbares Verhalten. Sind Sie außerhalb von APAC, kann sich ein deutlicher Rückgang der False Positives zeigen.