https://tretyakov.net/post/podklyuchaem-recaptcha-2-k-formam-1s-bitriks/
Шаг 1.
Регистрируем домен на сайте https://www.google.com/recaptcha/admin/ и получаем 2 ключа (ключ сайта и секретный ключ).
Шаг 2.
В header.php вашего шаблона добавляем:
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
Шаг 3.
Заходим в шаблон формы, ищем где подключается стандартная капча и меняем все на:
<div class="g-recaptcha" id="g-recaptcha" data-sitekey="6LexQ88UAAAAAGPs1eC9GFv0thZ7bH56456456YbEU"></div>
"sitekey" — это ключ сайта полученный при регистрации.
Шаг 4.
Теперь в файл init.php добавляем код (не забудьте заменить секретный ключ, на тот который получили при регистрации):
function my_onBeforeResultAdd($WEB_FORM_ID, &$arFields, &$arrVALUES)
{
global $APPLICATION;
if ($_REQUEST['g-recaptcha-response']) {
$httpClient = new \Bitrix\Main\Web\HttpClient;
$result = $httpClient->post(
'https://www.google.com/recaptcha/api/siteverify',
array(
'secret' => '6LexQ88UAsAAAAOl0oOlZaqddfedsrwt5Re2K3KO2V',
'response' => $_REQUEST['g-recaptcha-response'],
'remoteip' => $_SERVER['HTTP_X_REAL_IP']
)
);
$result = json_decode($result, true);
if ($result['success'] !== true) {
$APPLICATION->throwException("Вы не прошли проверку");
return false;
}
} else {
$APPLICATION->ThrowException('Вы не прошли проверку');
return false;
}
}
AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');