jumper423/decaptcha

RuCaptcha Google Recaptcha V3

Opened this issue · 5 comments

Способ, описанный в документации https://github.com/jumper423/decaptcha/blob/master/docs/RuCaptchaReCaptchaV3-ru.md для обхода Recaptcha V3 не работает. Возвращается ошибка:

[message:protected] => ERROR_EMPTY_METHOD
 [string:Exception:private] => 
 [code:protected] => 0
 [file:protected] => /var/www/html/autocheck/vendor/jumper423/decaptcha/src/core/DeCaptchaBase.php
 [line:protected] => 184

Нашел ошибку

Вместо
RuCaptchaReCaptchaV3::ACTION_FIELD_ACTION => 'verify',
следует писать
RuCaptchaReCaptchaV3::ACTION_FIELD_ACTION_TEXT => 'verify',

@blood73 константы ACTION_FIELD_ACTION_TEXT не существует ведь. Как это могло помочь решить проблему?

@jumper423, вы правы. Проблему решило в версии 2.0.4. В последней версии это не работает

@blood73 в версии 2.0.4 класса RuCaptchaReCaptchaV3 не существует. Он есть только в последней.
Пришлите, пожалуйста, код который вызывает ошибку

@blood73 в версии 2.0.4 класса RuCaptchaReCaptchaV3 не существует. Он есть только в последней.
Пришлите, пожалуйста, код который вызывает ошибку

       $this->ru_captcha = new RuCaptchaReCaptchaV3([
            RuCaptchaReCaptchaV3::ACTION_FIELD_KEY => RECAPTCHA_API_KEY,
        ]);

        $this->captcha_params = [
            RuCaptchaReCaptchaV3::ACTION_FIELD_GOOGLEKEY => self::GOOGLE_KEY,
            RuCaptchaReCaptchaV3::ACTION_FIELD_ACTION => $action,
            RuCaptchaReCaptchaV3::ACTION_FIELD_MIN_SCORE => '0.5',
            RuCaptchaReCaptchaV3::ACTION_FIELD_PAGEURL => self::GIBDD_URL_CAPTCHA,
            RuCaptchaReCaptchaV3::ACTION_FIELD_METHOD => 'userrecaptcha',
        ];

      $this->ru_captcha->setCauseAnError(true);

       try {
            $this->ru_captcha->recognize($this->captcha_params);
            $this->captcha_code = $this->ru_captcha->getCode();
            if (!empty($this->captcha_code)) {
                $result = true;
            }
        } catch (\jumper423\decaptcha\core\DeCaptchaErrors $e) {
            fn_print_r($e->getMessage());
        }

Как я понимаю, проблема в ACTION_FIELD_ACTION, при проверке результата решения капчи подменяется параметр action, который должен быть get