Ne reCAPTCHA 给我一个 403 错误


Ne reCAPTCHA giving me a 403 error

>最近一位客户告诉我,他网站的reCAPTCHA不再工作。经过调查,我发现谷歌改变了它。我使用 2014 年 11 月 19 日的新文档升级了他们的网站,但它总是给我一个 403 错误。 我尝试只提交密钥,结果返回了一个带有 false 和错误的 JSON 结果。我通过仅从 g-recaptcha-response 字段提交响应来做同样的事情,它还返回了一个带有错误的 JSON 结果。 一旦我使用http_build_query将它们都放入一个字符串中,我就会从Google那里得到403禁止。

我正在使用新的 http://www.google.com/recaptcha/api/siteverify 网址。 我使用以下代码使用 PHP cURL 提交它:

    $post_data = array('response'=>$response, 'secret'=>$privatekey);
    $curlPost = http_build_query($post_data, '', '&');
    $ch = curl_init();
    //Set the URL of the page or file to download.
    $url = 'http://www.google.com/recaptcha/api/siteverify';
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
    $data_json = curl_exec($ch);

任何帮助将不胜感激。

你必须使用 https,所以正确的网址是:

$url = 'https://www.google.com/recaptcha/api/siteverify';

这应该可以修复 403 错误。

只是删除此信息,如遇到的那样,原因是:从 v5.0 开始的验证码 gem 已将使用的站点验证主机从 google.com 更改为 recaptcha.net
代码存储库

因此可能需要在固件中进行配置。