Переход с reCAPTCHA на CaptchaLa
Прямая замена менее чем за 10 минут. Оставьте свои формы, смените провайдера проверки. Работает с чистым HTML, WordPress, Flarum и любым бэкендом.
Как выглядит изменение кода
<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' })Шаги миграции
- 1
Зарегистрируйтесь и получите App Key + Secret
Создайте бесплатный аккаунт CaptchaLa, добавьте сайт и скопируйте App Key (публичный) и App Secret (серверный). Карта не требуется.
- 2
Замените тег виджета в форме
Замените div и script src от reCAPTCHA на эквиваленты CaptchaLa. Класс тега меняется с g-recaptcha на captchala, data-sitekey становится data-app-key, а URL скрипта указывает на наш CDN.
- 3
Обновите имя поля при отправке формы
reCAPTCHA добавляет скрытое поле с именем g-recaptcha-response. CaptchaLa использует captchala-token. Если ваш обработчик формы читает поле по имени, переименуйте константу; иначе скрытый input проходит автоматически.
- 4
Обновите серверную проверку
Направьте запрос проверки на apiv1.captcha.la/v1/validate с учётными данными приложения в заголовках (X-App-Key / X-App-Secret) и pass_token в теле JSON. Ответ возвращает тот же флаг valid (data.valid), что и reCAPTCHA, поэтому существующая логика ветвления остаётся.
- 5
Разворачивайте постепенно
Большинство команд сначала запускают одну форму (часто с наименьшим трафиком — подписку на рассылку или контактную), наблюдают за конверсией и частотой проверок несколько часов, затем расширяют. Минимума и контракта нет, так что канареечный запуск бесплатен.
Быстрее: используйте плагин
WordPress + WooCommerce
Установите плагин CaptchaLa из каталога WordPress, вставьте App Key + Secret, и плагин возьмёт на себя вход, регистрацию, комментарии, оформление заказа в WooCommerce и CF7/Gravity/WPForms в одном месте.
View integration →Flarum
Установите расширение CaptchaLa через Composer, включите его в админке, и оно покроет регистрацию, вход, сброс пароля и ответы на посты.
View integration →Частые вопросы
Нужно ли мигрировать все формы сразу?
Нет. Обе системы сосуществуют на одном сайте — они не делят состояние и cookie. Мигрируйте по одной форме за раз.
А что с оценками риска reCAPTCHA Enterprise? Переносятся ли они?
Оценки не переносятся (они внутренние для вендора), но CaptchaLa возвращает собственную оценку риска в ответе на проверку. Числовой диапазон и логика решений задокументированы; команды обычно сопоставляют свой существующий порог оценки (например, 0.5) с нашим за час.
Сломается ли моя Google Site Verification или другие интеграции с Google?
Нет. reCAPTCHA отделена от Search Console / Site Verification / Analytics. Удаление тега reCAPTCHA никак не влияет на другие сервисы Google.
Есть ли скрипт миграции для сайтов со множеством встроенных тегов reCAPTCHA?
Мы его не поставляем (замена — это один regex на репозиторий, а шаблонизация в каждом кодовой базе своя). Сниппет из 10 строк для shell, который используют большинство команд, есть в документации.