Guia de migração

Migre do GeeTest para o CaptchaLa

Preço self-service, documentação em inglês primeiro e um único token em vez de quatro campos ocultos. Troque em menos de 10 minutos.

GeeTestCurrent setup~10 minCaptchaLaDrop-in target

Como fica a mudança de código

Antes — 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>
Depois — 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>
Antes — verificação no servidor do 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' })
Depois — verificação no servidor do 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' })

Passos da migração

  1. 1

    Cadastre-se e pegue sua App Key + Secret

    Crie uma conta gratuita no CaptchaLa — sem chamada de vendas, sem formulário de contato. Adicione um site, copie a App Key (pública) e o App Secret (lado do servidor).

  2. 2

    Remova o JS de inicialização do GeeTest

    Apague a invocação initGeetest4 e seu callback onSuccess. Remova os quatro inputs ocultos (lot_number, captcha_output, pass_token, gen_time) que você populava.

  3. 3

    Adicione a tag do widget do CaptchaLa

    Substitua todo o bloco do GeeTest pela nossa div + script. Nenhuma configuração de JS necessária — o widget se autoinicializa a partir do data-app-key.

  4. 4

    Simplifique a verificação no servidor

    Substitua a verificação do GeeTest (com seu cálculo de sign_token via HMAC, corpo de quatro campos e checagem de string de resultado) por um único POST JSON para apiv1.captcha.la/v1/validate e uma flag valid (data.valid).

  5. 5

    Faça o rollout gradualmente

    Troque um formulário de cada vez. Observe a conversão e a taxa de desafio. Não há mínimo nem contrato, então um rollout em etapas é gratuito.

Perguntas frequentes

O CaptchaLa funciona igualmente bem na China continental?

Sim. Operamos endpoints nativos dentro da China continental — a mesma verificação de baixa latência que usuários reais recebem em outros lugares. Sem SDK diferente, sem cobrança separada.

E a UX de slider do GeeTest a que minha equipe está acostumada?

O CaptchaLa inclui o slider como um dos tipos de desafio no sistema adaptativo — não é o padrão, mas está disponível. A maioria das equipes descobre que o padrão (invisível para baixo risco + clique para risco maior) converte melhor do que slider-first.

Há diferenças na sensibilidade do scoring de risco?

O modelo de risco do GeeTest é ajustado para padrões de tráfego da APAC. O do CaptchaLa é global. Se seu tráfego é majoritariamente APAC, espere comportamento comparável. Se você está fora da APAC, pode ver uma queda significativa em falsos positivos.