RecaptchaV2EnterpriseTaskProxyless : решение каптчи Google Enterprise без прокси

Объект содержит данные о задаче на решение reCAPTCHA Enterprise от Google. Такая задача будет выполняться нашим сервисом с использованием наших собственных прокси-серверов.

 

Структура объекта

Параметр

Тип

Обязательный

Значение

type

String

да

RecaptchaV2EnterpriseTaskProxyless

websiteURL

String

да

Адрес страницы на которой решается каптча

websiteKey

String

да

Ключ-идентификатор reCAPTCHA на целевой странице.
<div class="g-recaptcha" data-sitekey="ВОТ_ЭТОТ"></div>
или <iframe title="reCAPTCHA" src="...;k=6LdIFr0ZAAAAAO3vz0O0OQrtAefzdJcWQM2TMYQH&amp;... , где 6LdIFr0ZAAAAAO3vz0O0OQrtAefzdJcWQM2TMYQH - websiteKey

enterprisePayload

String

нет

Некоторые реализации виджета reCAPTCHA Enterprise могут содержать дополнительное поле s в структуре, которая передаётся в метод grecaptcha.enterprise.render вместе с sitekey.

Например:

2JvUXHNTnZl1Jb6WEvbDyBMzrMTR7oQ78QRhBcG07rk9bpaAaE0LRq1ZeP5NYa0N из:

grecaptcha.enterprise.render("some-div-id", { sitekey: "6Lc_aCMTAAAAABx7u2N0D1XnVbI_v6ZdbM6rYf16", theme: "dark", s: "2JvUXHNTnZl1Jb6WEvbDyBMzrMTR7oQ78QRhBcG07rk9bpaAaE0LRq1ZeP5NYa0N...ugQA" });

Подробнее ниже.

apiDomain

String

нет

Адрес домена с которого загружать reCAPTCHA Enterprise. Например:

Не используйте параметр, если не знаете зачем он нужен.

Для enterprisePayload - необходимо заменять функцию grecaptcha.enterprise.render перед её вызовом на свою и забирать значение из её параметров. Функция существует после загрузки скрипта, а рендерится капча обычно сразу или по событию страницы, если капча отрендерится с текущим полем s на клиенте, то токен с большой вероятностью принят не будет.
Оригинальную функцию можно вызывать без поля s.

var __test_grc = undefined; var __test_enterprise = undefined; var __test_render = undefined; var __test_render_widget = undefined; var __test_render_args = undefined; // здесь будет лежать объект, с которым вызывается render. var __test_handler = { get: function(target, name, receiver) { if (name == 'enterprise') { return __test_enterprise ? __test_enterprise : (__test_enterprise = new Proxy(target[name], __test_handler)); } else if (name == 'render') { __test_render = target[name]; return (function(a, b) { __test_render_args = b; __test_render_widget = a; return __test_render(a, {sitekey: b.sitekey}); }); } else { return target[name]; } } }; Object.defineProperty(window, 'grecaptcha', { enumerable: true, configurable: false, get: function() { return __test_grc; }, set: function(value) { __test_grc = new Proxy(value, __test_handler); } });

 

Пример запроса

Адрес https://api.capmonster.cloud/createTask

{ "clientKey":"dce6bcbb1a728ea8d871de6d169a2057", "task": { "type":"RecaptchaV2EnterpriseTaskProxyless", "websiteURL":"https://mydomain.com/page-with-recaptcha-enterprise", "websiteKey":"6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd", "enterprisePayload": { "s": "SOME_ADDITIONAL_TOKEN" } } }

 

Пример ответа

Получение результата

Используйте метод getTaskResult чтобы получить решение ReCaptcha2. В зависимости от загрузки системы вы получите ответ через время в диапазоне от 10 с до 80 с.

Свойство

Тип

Описание

gRecaptchaResponse

String

Хеш который необходимо подставить в форму с reCAPTCHA Enterprise в <textarea id="g-recaptcha-response" ..></textarea> . Имеет длину от 500 до 2190 байт.

Пример: