Я внес некоторые изменения в ReCaptcha \ RequestMethod \ Post.php из Google API
class Post implements RequestMethod { /** * URL to which requests are POSTed. * @const string */ const SITE_VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify'; /** * Submit the POST request with the specified parameters. * * @param RequestParameters $params Request parameters * @return string Body of the reCAPTCHA response */ public function submit(RequestParameters $params) { /** * PHP 5.6.0 changed the way you specify the peer name for SSL context options. * Using "CN_name" will still work, but it will raise deprecated errors. */ $cafile = dirname(__DIR__) . '/RequestMethod/ca-bundle.crt'; $peer_key = version_compare(PHP_VERSION, '5.6.0', '<') ? 'CN_name' : 'peer_name'; $options = array( 'ssl' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => $params->toQueryString(), // Force the peer to validate (not needed in 5.6.0+, but still works 'cafile' => $cafile, 'verify_peer' => true, 'verify_peer_name' => true, // Force the peer validation to use www.google.com $peer_key => 'www.google.com', ), ); $context = stream_context_create($options); return file_get_contents(self::SITE_VERIFY_URL, false, $context); } }
Я добавил следующие строки в массив и переименовал его из http в ssl
'cafile' => $cafile 'verify_peer_name' => true
Теперь ошибка в моем следующем вопросе исчезла. ссылка на вопрос
Новая ошибка: ["missing-input-response", "missing-input-secret"]
Когда я отлаживаю параметры $ params из метода submit, существует ответ и секретный ключ.
Спасибо за помощь 🙂