2017-06-22 4 views
0

I met actuellement en œuvre la reCaptcha un formulaire HTML et PHP. La solution côté client fonctionne sans aucun problème. Mais le côté serveur échoue avec la validation.reCaptcha: "clés invalides"-code d'erreur

Alors, voici mon code côté serveur:

$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); 

Alors maintenant, quand je vide le résultat que je reçois la sortie suivante:

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" 
    } 
} 

Je suis sûr que le code de réponse envoie completly au script PHP.

J'ai cherché aussi dans la documentation de l'API, mais ne trouvent que ces error codes et rien ne correspond à invalid-keys.

Qu'est-ce que je tort?

+0

il donne l'erreur 'non valide keys' ou' Site incorrect key' – Narayan

+0

Merci pour votre commentaire @Narayan. J'obtiens 'invalid-keys'. Ceci est une décharge originale de la réponse que je reçois de Google. –

Répondre

1

Donc stupide. J'ai pris la clé secrète du mauvais projet du admin console. Le mauvais projet n'est pas listé blanc localhost, dont j'avais besoin. De plus, la clé du site Web et la clé secrète ne correspondaient pas, ce qui a provoqué l'erreur.

0

Je peux confirmer, le code d'erreur invalid-keys ne retourne que lorsqu'un existant, mais compte incorrect ou clé secrète du projet est utilisé.

Si la clé secrète est invalide ou malformé, un code d'erreur invalid-input-secret sera retourné.

Dans notre cas, notre environnement de production Wordpress avait un plug-in qui a défini une constante nous utilisions avec une clé secrète incorrecte d'un autre compte.