Как подключить капчу
Три шага: создать виджет, встроить скрипт, проверить токен на своём сервере.
Создайте виджет
Зарегистрируйтесь, откройте панель и настройте вид: цвета, прозрачность, размер (по роли), пульсацию, качество и надпись. Там же — живая капча для проверки.
Встройте скрипт
Один тег на странице. Капча откроется во фрейме, при решении вызовет ваш обработчик с токеном.
Проверьте токен
Сервер сайта вызывает /api/v1/verify с вашим секретным ключом и получает вердикт.
1. Разметка и подключение
<div id="captcha"></div>
<script>
function onCaptchaSolved(token) {
// отправляем токен на свой сервер для проверки
fetch('/my-backend/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ token })
});
}
</script>
<script src="http://jkcaptcha.we4.online/js/captcha/widget.js"
data-key='jcv4w_КЛЮЧ_ВИДЖЕТА'
data-target="#captcha"
data-callback="onCaptchaSolved"></script>
Атрибуты: data-key — публичный ключ виджета (из панели), data-target — селектор контейнера, data-callback — имя глобальной функции, которая получит токен. Если callback не указан, на контейнере возникнет событие jvc4-solved с detail.token.
2. Проверка токена на сервере
C# / ASP.NET
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-Api-Key", "jcv4_ВАШ_СЕКРЕТНЫЙ_КЛЮЧ");
var r = await http.GetFromJsonAsync<VerifyResponse>(
"http://jkcaptcha.we4.online/api/v1/verify?token=" + Uri.EscapeDataString(token));
if (r is { valid: true }) { /* человек */ }
record VerifyResponse(bool valid);
Node.js
const r = await fetch(
"http://jkcaptcha.we4.online/api/v1/verify?token=" + encodeURIComponent(token),
{ headers: { "X-Api-Key": "jcv4_ВАШ_СЕКРЕТНЫЙ_КЛЮЧ" } }
);
const { valid } = await r.json();
if (valid) { /* человек */ }
PHP
$ch = curl_init("http://jkcaptcha.we4.online/api/v1/verify?token=" . urlencode($token));
curl_setopt($ch, CURLOPT_HTTPHEADER, ["X-Api-Key: jcv4_ВАШ_СЕКРЕТНЫЙ_КЛЮЧ"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = json_decode(curl_exec($ch), true);
if (!empty($res["valid"])) { /* человек */ }
3. Пассивная проверка без капчи
Если не хотите показывать капчу всем, спросите у сервиса вердикт по пассивным сигналам страницы:
POST http://jkcaptcha.we4.online/api/v1/risk
X-Api-Key: jcv4_ВАШ_СЕКРЕТНЫЙ_КЛЮЧ
{ "webDriver": false, "hw": 8, "screenW": 1920, "lang": "ru", "elapsedMs": 4000, "moves": 120 }
→ { "score": 0, "verdict": "human", "flags": [] }
Вердикты: human (капчу можно не показывать), suspicious, bot. Подробности — в справочнике API.
Лимиты и тайминги
- Кадры: до 40 запросов/сек (клиент опрашивает ~30/с, при отсутствии изменений приходит 204).
- Ввод: до 40/сек; попытка решения (отпускание) — не чаще 1 раза в секунду.
- Капча = сессия: на решение даётся от 30 до 60 секунд, затем сессия завершается, и клиент автоматически создаёт новую.
- Одна страница получает одну и ту же капчу, пока она не решена. По истечении времени ожидания (300 секунд) сервер принудительно закрывает сессии страницы и отвечает
410— клиент показывает «Сессия принудительно завершена, попробуйте снова» и останавливается. - Токен после решения действителен 300 секунд.