Panduan migrasi

Migrasi dari GeeTest ke CaptchaLa

Harga mandiri, dokumentasi mengutamakan bahasa Inggris, dan token tunggal alih-alih empat field tersembunyi. Beralih dalam kurang dari 10 menit.

GeeTestCurrent setup~10 minCaptchaLaDrop-in target

Seperti apa perubahan kodenya

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' })

Langkah migrasi

  1. 1

    Daftar & ambil App Key + Secret Anda

    Buat akun CaptchaLa gratis — tanpa panggilan sales, tanpa formulir kontak. Tambahkan situs, salin App Key (publik) dan App Secret (sisi server).

  2. 2

    Hapus JS inisialisasi GeeTest

    Hapus pemanggilan initGeetest4 dan callback onSuccess-nya. Buang empat input tersembunyi (lot_number, captcha_output, pass_token, gen_time) yang Anda isi.

  3. 3

    Tambahkan tag widget CaptchaLa

    Ganti seluruh blok GeeTest dengan div + script kami. Tidak perlu konfigurasi JS — widget menginisialisasi diri dari data-app-key.

  4. 4

    Sederhanakan verifikasi server

    Ganti verifikasi GeeTest (dengan komputasi HMAC sign_token, body empat field, dan pemeriksaan string result) dengan satu POST JSON ke apiv1.captcha.la/v1/validate dan satu flag valid (data.valid).

  5. 5

    Luncurkan secara bertahap

    Beralih satu formulir dalam satu waktu. Amati konversi dan tingkat challenge. Tidak ada minimum atau kontrak, jadi peluncuran bertahap gratis.

Pertanyaan umum

Apakah CaptchaLa bekerja sama baiknya di Tiongkok daratan?

Ya. Kami mengoperasikan endpoint native di dalam Tiongkok daratan — verifikasi latensi rendah yang sama seperti yang didapat pengguna nyata di tempat lain. Tanpa SDK berbeda, tanpa penagihan terpisah.

Bagaimana dengan UX slider GeeTest yang sudah biasa dipakai tim saya?

CaptchaLa menyertakan slider sebagai salah satu jenis challenge dalam sistem adaptif — itu bukan default, tetapi tersedia. Kebanyakan tim mendapati default-nya (tak terlihat untuk risiko rendah + klik untuk risiko lebih tinggi) berkonversi lebih baik daripada slider-first.

Apakah ada perbedaan sensitivitas skor risiko?

Model risiko GeeTest disetel untuk pola lalu lintas APAC. Milik CaptchaLa bersifat global. Jika lalu lintas Anda dominan APAC, harapkan perilaku yang sebanding. Jika di luar APAC, Anda mungkin melihat penurunan signifikan pada false positive.