Чтобы внедрить Yandex SmartCaptcha (капчу) на сайт необходимо:
Зарегистрировать капчу, получить ключ клиента и ключ сервера
Подключить на странице скрипт яндекс капчи
<script src="https://smartcaptcha.yandexcloud.net/captcha.js" defer></script>
Вставить блок, где должна появиться капча, заменив XXX на ключ клиента
<div class="smart-captcha" data-sitekey="XXX"></div>
Проверка ключа осуществляется путем отправки на сайт smartcaptcha.yandexcloud.net/validate, запроса, с GET переменными:
$response = json_decode(file_get_contents("https://smartcaptcha.yandexcloud.net/validate?secret=YYY&token=".$_POST['smart-token']."&ip=".$_SERVER['REMOTE_ADDR']), true);
if($response['status'] !== "ok"){
return false;
}
ИЛИ
$ch=curl_init();
$args=http_build_query([
"secret" => "YYY",
"token" => $_POST["smart-token"],
"ip" => $_SERVER['REMOTE_ADDR'],
]);
curl_setopt($ch, CURLOPT_URL, "https://smartcaptcha.yandexcloud.net/validate?$args");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
$server_output = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode!==200){
return false;
}
$resp=json_decode($server_output);
if($resp->status !== "ok"){
return false;
}
где YYY - ключ сервера