2017-06-22 388 views
0

我目前正在使用HTML和PHP實現reCaptcha。客戶端解決方案沒有任何問題。但服務器端驗證失敗。reCaptcha:錯誤代碼「invalid-keys」

因此,這裏是我的服務器端代碼:

$data = array(
    "secret" => "MY_SECRET_KEY", 
    "response" => $captcha_response, 
    "remoteip" => $_SERVER['REMOTE_ADDR'] 
); 
$opts = [ 
    "http" => [ 
     "method" => "POST", 
     "header" => "Accept-language: en", 
     "content" => http_build_query($data) 
    ] 
]; 

$context = stream_context_create($opts); 

$data = json_decode(file_get_contents('https://www.google.com/recaptcha/api/siteverify', false, $context), true); 

所以現在當我傾倒的結果我得到以下輸出:

array(4) { 
    ["success"]=> 
    bool(false) 
    ["challenge_ts"]=> 
    string(20) "2017-06-22T13:14:50Z" 
    ["hostname"]=> 
    string(9) "localhost" 
    ["error-codes"]=> 
    array(1) { 
    [0]=> 
    string(12) "invalid-keys" 
    } 
} 

我敢肯定的是,響應代碼將完全地發到PHP腳本。

我也在API文檔中搜索,但只找到這些error codes和沒有任何符合invalid-keys

我錯了什麼?

+0

它會給出錯誤'invalid-keys'或'無效的網站密鑰' – Narayan

+0

感謝您的評論@Narayan。我得到'無效密鑰'。這是我從Google獲得的回覆中的原始轉儲。 –

回答

1

很愚蠢。我從admin console處拿到錯誤項目的密鑰。錯誤的項目不是白名單localhost,我需要。此外網站的密鑰和密鑰不匹配,這就拋出了錯誤。

0

我可以確認,錯誤代碼invalid-keys僅當使用現有的,但不正確的帳戶或項目密鑰時纔會返回。

如果密鑰無效或格式錯誤,將返回錯誤代碼invalid-input-secret

在我們的例子中,我們的Wordpress生產環境有一個插件,它定義了一個我們正在使用的來自不同帳戶的不正確密鑰的常量。