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

Переход с Arkose FunCAPTCHA на CaptchaLa

Избавьтесь от веса SDK, завершите корпоративный контракт, сохраните адаптивную защиту от ботов. Миграция — это одна замена скрипта и одна смена эндпоинта проверки.

AArkose / FunCAPTCHACurrent setup~10 minCaptchaLaDrop-in target

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

До — Arkose / FunCAPTCHA
<script src="https://YOUR_PUBLIC_KEY.arkoselabs.com/v2/YOUR_PUBLIC_KEY/api.js" data-callback="onSuccess" async defer></script>
<script>
  function onSuccess(token) {
    document.getElementById('arkose-token').value = token
  }
</script>
<input type="hidden" id="arkose-token" name="arkose-token" />
После — 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>
До — серверная проверка Arkose (Node)
const res = await fetch('https://verify-api.arkoselabs.com/api/v4/verify/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  body: new URLSearchParams({
    private_key: process.env.ARKOSE_PRIVATE_KEY,
    session_token: req.body['arkose-token'],
  }),
})
const data = await res.json()
if (data.session_details?.solved !== true) 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. В отличие от Arkose, нет ни PoC, ни закупок — цены опубликованы и доступны самостоятельно. Бесплатный тариф покрывает начальное тестирование.

  2. 2

    Удалите SDK Arkose и обвязку колбэков

    Удалите тег скрипта Arkose, функцию-колбэк и скрытый input, который вы заполняете из колбэка. CaptchaLa использует простой плейсхолдер div — без обвязки колбэков.

  3. 3

    Добавьте виджет CaptchaLa

    Вставьте наш div и тег script туда, где был виджет Arkose. Скрытое поле токена заполняется автоматически как captchala-token; вам не нужно управлять им вручную.

  4. 4

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

    Замените проверку session_details.solved от Arkose нашим флагом valid (data.valid). Эндпоинт меняется на apiv1.captcha.la/v1/validate. Тело становится JSON вместо form-urlencoded.

  5. 5

    Спланируйте завершение контракта

    Контракты Arkose обычно годовые с автопродлением. Отметьте окно отмены в своём контракте и уведомите юридический отдел/закупки. Большинство команд во время сворачивания держат обе системы параллельно 30 дней.

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

Потеряю ли я точность обнаружения ботов при переходе?

Для большинства нагрузок — без заметной разницы. По умолчанию проверки Arkose намеренно сложнее наших, но популяция ботов, которую ловят они, и популяция, которую ловим мы, сильно пересекаются для типичного продуктового трафика. Если вы на масштабе Roblox / Microsoft с известными противниками, ответ сложнее — сначала поговорите с нами.

Как справиться с наложением контрактов?

Запускайте обе системы параллельно во время сворачивания. Форма A остаётся на Arkose; форма B переходит на CaptchaLa. Сравните конверсию + долю ботов. Большинство команд видят, что доля ботов остаётся неизменной, а доля трения для пользователей падает. Затем выводите Arkose из эксплуатации при продлении контракта.

А что с телеметрией риска / дашбордами аналитики Arkose?

У CaptchaLa есть собственный дашборд с сопоставимой телеметрией — частота проверок, доля успеха, распределение оценок риска, разбивка по гео. Вид будет привычным, если вы переходите с Arkose Insights.