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, 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.