Migrasi dari reCAPTCHA ke CaptchaLa
Pengganti drop-in dalam kurang dari 10 menit. Pertahankan formulir Anda, cukup tukar penyedia verifikasinya. Bekerja dengan HTML murni, WordPress, Flarum, dan backend apa pun.
Seperti apa perubahan kodenya
<div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
<script src="https://www.google.com/recaptcha/api.js" async defer></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 res = await fetch('https://www.google.com/recaptcha/api/siteverify', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
secret: process.env.RECAPTCHA_SECRET,
response: req.body['g-recaptcha-response'],
}),
})
const data = await res.json()
if (!data.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 & ambil App Key + Secret Anda
Buat akun CaptchaLa gratis, tambahkan situs, lalu salin App Key (publik) dan App Secret (sisi server). Tanpa kartu kredit.
- 2
Tukar tag widget di formulir Anda
Ganti div dan script src reCAPTCHA dengan padanan CaptchaLa. Class tag berubah dari g-recaptcha menjadi captchala, data-sitekey menjadi data-app-key, dan URL script mengarah ke CDN kami.
- 3
Perbarui nama field pengiriman formulir
reCAPTCHA menyisipkan field tersembunyi bernama g-recaptcha-response. CaptchaLa memakai captchala-token. Jika handler formulir Anda membaca field berdasarkan nama, ganti namanya; jika tidak, input tersembunyi mengalir otomatis.
- 4
Perbarui verifikasi sisi server
Arahkan permintaan verifikasi ke apiv1.captcha.la/v1/validate dengan kredensial app di header (X-App-Key / X-App-Secret) dan pass_token dalam body JSON. Bentuk respons mengembalikan flag valid yang sama (data.valid) seperti reCAPTCHA, sehingga kode percabangan Anda tetap utuh.
- 5
Luncurkan secara bertahap
Kebanyakan tim merilis ke satu formulir dulu (biasanya yang lalu lintasnya paling rendah — pendaftaran newsletter atau kontak), mengamati konversi dan tingkat challenge selama beberapa jam, lalu memperluasnya. Tidak ada minimum dan tidak ada kontrak, jadi canary gratis.
Lebih cepat: gunakan plugin
WordPress + WooCommerce
Pasang plugin CaptchaLa dari direktori WordPress, tempel App Key + Secret Anda, dan plugin menangani login, registrasi, komentar, checkout WooCommerce, serta CF7/Gravity/WPForms dalam satu tempat.
View integration →Flarum
Pasang ekstensi CaptchaLa via Composer, aktifkan di admin, dan ia mencakup registrasi, login, reset kata sandi, dan balasan postingan.
View integration →Pertanyaan umum
Apakah saya harus memigrasi semua formulir sekaligus?
Tidak. Kedua sistem dapat berdampingan di situs yang sama — keduanya tidak berbagi state atau cookie. Migrasikan satu formulir dalam satu waktu.
Bagaimana dengan skor risiko reCAPTCHA Enterprise? Apakah skor bisa ditransfer?
Skor tidak bisa ditransfer (skor itu internal vendor), tetapi CaptchaLa mengembalikan skor risikonya sendiri dalam respons verifikasi. Rentang angka dan logika keputusannya terdokumentasi; tim biasanya memetakan ambang skor mereka yang ada (mis. 0.5) ke milik kami dalam waktu satu jam.
Apakah Google Site Verification atau integrasi Google lain saya akan rusak?
Tidak. reCAPTCHA terpisah dari Search Console / Site Verification / Analytics. Menghapus tag reCAPTCHA tidak berdampak pada layanan Google lainnya.
Apakah ada skrip migrasi untuk situs dengan banyak tag reCAPTCHA tertanam?
Kami tidak menyediakannya (find-and-replace cukup satu regex per repo, dan templating setiap basis kode berbeda). Cuplikan shell 10 baris yang dipakai kebanyakan tim ada di dokumentasi.