Guide de migration

Migrer de GeeTest vers CaptchaLa

Tarification en libre-service, documentation pensée en anglais d'abord, et un token unique au lieu de quatre champs cachés. Changez en moins de 10 minutes.

GeeTestCurrent setup~10 minCaptchaLaDrop-in target

À quoi ressemble le changement de code

Avant — 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>
Après — 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>
Avant — vérification serveur GeeTest (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' })
Après — vérification serveur CaptchaLa (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' })

Étapes de migration

  1. 1

    Inscrivez-vous et récupérez votre App Key + Secret

    Créez un compte CaptchaLa gratuit — sans appel commercial, sans formulaire de contact. Ajoutez un site, copiez l'App Key (publique) et l'App Secret (côté serveur).

  2. 2

    Retirez le JS d'initialisation GeeTest

    Supprimez l'appel à initGeetest4 et son callback onSuccess. Retirez les quatre champs cachés (lot_number, captcha_output, pass_token, gen_time) que vous renseigniez.

  3. 3

    Ajoutez la balise du widget CaptchaLa

    Remplacez tout le bloc GeeTest par notre div + script. Aucune configuration JS nécessaire — le widget s'initialise lui-même à partir de data-app-key.

  4. 4

    Simplifiez la vérification serveur

    Remplacez la vérification GeeTest (avec son calcul HMAC du sign_token, son corps à quatre champs et son contrôle de chaîne result) par un simple POST JSON vers apiv1.captcha.la/v1/validate et un indicateur valid (data.valid).

  5. 5

    Déployez progressivement

    Changez un formulaire à la fois. Surveillez la conversion et le taux de challenge. Aucun minimum ni contrat : un déploiement par étapes est gratuit.

Questions fréquentes

CaptchaLa fonctionnera-t-il aussi bien en Chine continentale ?

Oui. Nous exploitons des points de présence natifs en Chine continentale — la même vérification à faible latence que les vrais utilisateurs obtiennent ailleurs. Pas de SDK différent, pas de facturation distincte.

Et l'expérience du curseur (slider) de GeeTest à laquelle mon équipe est habituée ?

CaptchaLa inclut le curseur comme l'un des types de challenge du système adaptatif — ce n'est pas le mode par défaut, mais il est disponible. La plupart des équipes constatent que le mode par défaut (invisible pour le faible risque + clic pour le risque plus élevé) convertit mieux qu'un curseur en premier.

Y a-t-il des différences de sensibilité du scoring de risque ?

Le modèle de risque de GeeTest est calibré pour les profils de trafic APAC. Celui de CaptchaLa est mondial. Si votre trafic est majoritairement APAC, attendez-vous à un comportement comparable. Hors APAC, vous pourriez constater une baisse significative des faux positifs.