Panduan migrasi

Migrasi dari GeeTest ke CaptchaLa

Harga layan diri, dokumentasi mengutamakan bahasa Inggeris, dan satu token bukannya empat medan tersembunyi. Tukar dalam masa kurang 10 minit.

GeeTestCurrent setup~10 minCaptchaLaDrop-in target

Bagaimana rupa perubahan kod

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 & dapatkan App Key + Secret anda

    Cipta akaun CaptchaLa percuma — tiada panggilan jualan, tiada borang hubungan. Tambah satu tapak, salin App Key (awam) dan App Secret (sisi pelayan).

  2. 2

    Buang JS pengawalan GeeTest

    Padamkan seruan initGeetest4 dan callback onSuccess-nya. Buang empat input tersembunyi (lot_number, captcha_output, pass_token, gen_time) yang anda isi.

  3. 3

    Tambah tag widget CaptchaLa

    Gantikan keseluruhan blok GeeTest dengan div + skrip kami. Tiada konfigurasi JS diperlukan — widget memulakan sendiri dari data-app-key.

  4. 4

    Permudahkan pengesahan pelayan

    Gantikan pengesahan GeeTest (dengan pengiraan HMAC sign_token, badan empat medan, dan semakan rentetan hasilnya) dengan satu POST JSON ke apiv1.captcha.la/v1/validate dan satu bendera valid (data.valid).

  5. 5

    Lancarkan secara berperingkat

    Tukar satu borang pada satu masa. Pantau penukaran dan kadar cabaran. Tiada minimum atau kontrak, jadi pelancaran berperingkat adalah percuma.

Soalan lazim

Adakah CaptchaLa berfungsi sebaik di tanah besar China?

Ya. Kami mengendalikan endpoint asli di dalam tanah besar China — pengesahan kependaman rendah yang sama yang diperoleh pengguna sebenar di tempat lain. Tiada SDK berbeza, tiada pengebilan berasingan.

Bagaimana pula dengan UX peluncur GeeTest yang biasa digunakan pasukan saya?

CaptchaLa menyertakan peluncur sebagai salah satu jenis cabaran dalam sistem adaptif — ia bukan lalai, tetapi ia tersedia. Kebanyakan pasukan mendapati lalai (halimunan untuk risiko rendah + klik untuk risiko lebih tinggi) menukar lebih baik daripada peluncur dahulu.

Adakah perbezaan dalam kepekaan pemarkahan risiko?

Model risiko GeeTest ditala untuk corak trafik APAC. Model CaptchaLa adalah global. Jika trafik anda banyak APAC, jangkakan tingkah laku setanding. Jika anda di luar APAC, anda mungkin melihat penurunan ketara dalam positif palsu.