La vérification asynchrone de WeChat Pay v3 a échoué
Ici, nous recevons les paramètres (le corps du message) généralement via la requête fournie avec le framework.
Par exemple, TP6: $ this-> request-> param ();
Ici, si vous utilisez cette méthode de réception, la vérification de la conversion json échouera.
Nous devons utiliser la méthode de réception native: file_get_contents ('php: // input');
après l'avoir reçue, prenez directement ces données pour la vérification de la signature.
Joindre le code suivant:
public function verifySign () { $ timestamp = "horodatage dans l'en-tête"; $ nonce = "chaîne aléatoire dans l'en-tête"; $ signature = "signature dans l'en-tête"; $ certZs = "Certificat de plateforme"; / / $ data = $ this-> request-> param (); $ data = file_get_contents ('php: // input'); $ message = "$ timestamp \ n $ nonce \ n $ data \ n"; // École Vérifiez la signature si (! $ this-> verify ($ message, $ signature, $ certZs)) { throw new \ Exception ('verification failed', 123456); } } 123456789101112131415161718