Hướng dẫn chuyển đổi

Chuyển từ GeeTest sang CaptchaLa

Định giá tự phục vụ, tài liệu ưu tiên tiếng Anh, và một token duy nhất thay vì bốn trường ẩn. Chuyển đổi trong chưa đến 10 phút.

GeeTestCurrent setup~10 minCaptchaLaDrop-in target

Thay đổi mã trông như thế nào

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

Các bước chuyển đổi

  1. 1

    Đăng ký & lấy App Key + Secret

    Tạo tài khoản CaptchaLa miễn phí — không cần gọi bán hàng, không cần biểu mẫu liên hệ. Thêm một site, sao chép App Key (công khai) và App Secret (phía máy chủ).

  2. 2

    Gỡ phần JS khởi tạo GeeTest

    Xóa lệnh gọi initGeetest4 và callback onSuccess của nó. Bỏ bốn input ẩn (lot_number, captcha_output, pass_token, gen_time) mà bạn từng điền.

  3. 3

    Thêm thẻ widget CaptchaLa

    Thay toàn bộ khối GeeTest bằng div + script của chúng tôi. Không cần cấu hình JS — widget tự khởi tạo từ data-app-key.

  4. 4

    Đơn giản hóa xác thực máy chủ

    Thay phần xác thực GeeTest (với tính toán HMAC sign_token, body bốn trường, và kiểm tra chuỗi result) bằng một lệnh POST JSON duy nhất tới apiv1.captcha.la/v1/validate và một cờ valid (data.valid).

  5. 5

    Triển khai dần dần

    Chuyển từng biểu mẫu một. Theo dõi tỷ lệ chuyển đổi và tỷ lệ thử thách. Không có mức tối thiểu hay hợp đồng, nên triển khai theo giai đoạn là miễn phí.

Câu hỏi thường gặp

CaptchaLa có hoạt động tốt tại Trung Quốc đại lục không?

Có. Chúng tôi vận hành các endpoint bản địa bên trong Trung Quốc đại lục — cùng trải nghiệm xác thực độ trễ thấp mà người dùng thật nhận được ở nơi khác. Không cần SDK khác, không có hóa đơn riêng.

Còn trải nghiệm thanh trượt của GeeTest mà đội tôi đã quen thì sao?

CaptchaLa có thanh trượt là một trong các loại thử thách trong hệ thống thích ứng — không phải mặc định, nhưng vẫn dùng được. Phần lớn các đội thấy mặc định (ẩn với rủi ro thấp + nhấp với rủi ro cao hơn) chuyển đổi tốt hơn so với ưu tiên thanh trượt.

Có khác biệt nào về độ nhạy chấm điểm rủi ro không?

Mô hình rủi ro của GeeTest được tinh chỉnh cho mẫu lưu lượng APAC. Của CaptchaLa thì toàn cầu. Nếu lưu lượng của bạn nặng về APAC, hãy kỳ vọng hành vi tương đương. Nếu ở ngoài APAC, bạn có thể thấy false positive giảm đáng kể.