Error en la verificación asíncrona de WeChat Pay v3
Aquí recibimos los parámetros (el cuerpo del mensaje) generalmente a través de la solicitud que viene con el framework.
Por ejemplo, TP6: $ this-> request-> param ();
Aquí, si usa este método de recepción, la verificación de conversión json fallará.
Necesitamos usar el método de recepción nativo: file_get_contents ('php: // input');
después de recibirlo, tome directamente estos datos para verificar la firma.
Adjunta el siguiente código:
función pública verifySign () { $ timestamp = "marca de tiempo en el encabezado"; $ nonce = "cadena aleatoria en el encabezado"; $ firma = "firma en el encabezado"; $ certZs = "Certificado de plataforma"; / / $ data = $ this-> request-> param (); $ data = file_get_contents ('php: // input'); $ message = "$ timestamp \ n $ nonce \ n $ data \ n"; // Escuela Verifica la firma si (! $ this-> verify ($ mensaje, $ firma, $ certZs)) { lanzar nueva \ Exception ('verificación fallida', 123456); } } 123456789101112131415161718