WeChat payment V3 asynchronous check failed
Here we receive parameters (message body) generally through the framework of the built-in request.
TP6: $this-> request-> param();
if you use the receive mode in here to convert the json attestation will fail.
We need to use the native receive method: file_get_contents(‘ PHP ://input ‘);
directly take the data after receiving the signature verification.
public function verifySign()
{
$timestamp = "Timestamp in header header";
$nonce = "random string in header header";
$signature = "signature in header header";
$certZs = "Platform certificate";// $data = $this->request->param();
$data = file_get_contents('php://input');
$message = "$timestamp\n$nonce\n$data\n";
//Verify signature
if (!$this->verify($message, $signature, $certZs)) {
throw new \Exception('Failed visa check', 123456);
}
}123456789101112131415161718