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.
So sieht die Code-Änderung aus
<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><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>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' })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
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
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
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
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
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. Wir betreiben native Endpunkte innerhalb des chinesischen Festlands – dieselbe Verifizierung mit geringer Latenz, die echte Nutzer auch anderswo erhalten. Kein anderes SDK, 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.