Чтобы внедрить 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 - ключ сервера