Руководство по миграции

Переход с hCaptcha на CaptchaLa

Прямая замена менее чем за 10 минут. Та же форма — более быстрый виджет, без раундов классификации изображений, и ваш трафик остаётся вашим трафиком.

hhCaptchaCurrent setup~10 minCaptchaLaDrop-in target

Как выглядит изменение кода

До — hCaptcha
<div class="h-captcha" data-sitekey="YOUR_SITE_KEY"></div>
<script src="https://js.hcaptcha.com/1/api.js" async defer></script>
После — 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>
До — серверная проверка hCaptcha (Node)
const res = await fetch('https://api.hcaptcha.com/siteverify', {
  method: 'POST',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  body: new URLSearchParams({
    secret: process.env.HCAPTCHA_SECRET,
    response: req.body['h-captcha-response'],
  }),
})
const data = await res.json()
if (!data.success) return res.status(400).json({ error: 'bot' })
После — серверная проверка CaptchaLa (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' })

Шаги миграции

  1. 1

    Зарегистрируйтесь и получите App Key + Secret

    Создайте бесплатный аккаунт CaptchaLa, добавьте сайт и скопируйте App Key (публичный) и App Secret (серверный). Карта не требуется.

  2. 2

    Замените тег виджета

    Замените класс h-captcha на captchala, data-sitekey на data-app-key, а script src на URL нашего CDN. Структура остаётся идентичной.

  3. 3

    Обновите имя скрытого поля

    hCaptcha добавляет h-captcha-response; CaptchaLa добавляет captchala-token. Замените имя поля в обработчике формы, если вы обращаетесь к нему по имени.

  4. 4

    Обновите серверную проверку

    Смените эндпоинт на apiv1.captcha.la/v1/validate. Мы используем JSON (hCaptcha использует form-urlencoded), поэтому обновите Content-Type и тело. Флаг valid (data.valid) по-прежнему в ответе — логика ветвления остаётся.

  5. 5

    Разворачивайте постепенно

    Сначала подключите CaptchaLa на одной форме, измеряйте конверсию и частоту проверок несколько часов. Большинство команд сразу видят неизменное или улучшенное завершение, потому что раунды классификации изображений исчезли.

Частые вопросы

Что будет с моим аккаунтом hCaptcha?

Ничего — оставьте его как есть и перестаньте отправлять запросы. Нет ни контракта, ни шага с уведомлением. Аккаунт останется неактивным. Если хотите официально его закрыть, у hCaptcha есть самостоятельная опция удаления аккаунта.

Улучшатся ли Core Web Vitals?

Обычно да. Виджет hCaptcha обычно добавляет 400–600 мс к LCP на страницах с формами. Виджет CaptchaLa нацелен на <100ms. Точная разница зависит от остального бюджета вашей страницы, но на страницах с большим числом форм разница заметна.

А что с функциями hCaptcha Enterprise, которые я использую?

Большинство корпоративных функций (кастомные темы, продвинутая оценка риска, дашборды аналитики) имеют прямые аналоги в стандартном тарифе CaptchaLa. Страница миграции в документации перечисляет каждую функцию и её аналог в CaptchaLa.