jumper423 / decaptcha

Package created to standardize all services for solving captcha. Each service has its own features and now You will have to look at the documentation for the specific service to do everything right. The package covers the entire functionality services. If You will be something lacking or suggestions, I'll be glad to hear them. RuCaptcha, 2Captcha, Anti Captcha, Captcha24, Pixodrom, R.I.P. Captcha
Apache License 2.0
65 stars 17 forks source link

RuCaptcha Google Recaptcha V3 #12

Open blood73 opened 5 years ago

blood73 commented 5 years ago

Способ, описанный в документации 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
blood73 commented 5 years ago

Нашел ошибку

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

jumper423 commented 5 years ago

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

blood73 commented 5 years ago

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

jumper423 commented 5 years ago

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

blood73 commented 5 years ago

@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