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.
Bagaimana rupa perubahan kod
<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><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>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' })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
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
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
Tambah tag widget CaptchaLa
Gantikan keseluruhan blok GeeTest dengan div + skrip kami. Tiada konfigurasi JS diperlukan — widget memulakan sendiri dari data-app-key.
- 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
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.