WeChat payment api v3 notificação de pagamento verificação assíncrona falha PHP

Falha na verificação assíncrona do WeChat Pay v3

Aqui recebemos os parâmetros (o corpo da mensagem) geralmente por meio da solicitação que vem com o framework.
Por exemplo, TP6: $ this-> request-> param ();
Aqui, se você usar este método de recebimento, a verificação de conversão json falhará.

Precisamos usar o método de recebimento nativo: file_get_contents ('php: // input');
após recebê-lo, leve esses dados diretamente para verificação de assinatura.
Anexe o seguinte código:

public function verifySign () 
    { 
        $ timestamp = "timestamp no cabeçalho"; 
        $ nonce = "string aleatória no cabeçalho"; 
        $ assinatura = "assinatura no cabeçalho"; 
        $ certZs = "Certificado da plataforma"; / / $ data = $ this-> request-> param (); 
        $ data = file_get_contents ('php: // input'); 

        $ message = "$ timestamp \ n $ nonce \ n $ data \ n"; 

        // Escola Verifique a assinatura 

        se (! $ this-> verify ($ message, $ signature, $ certZs)) { 
            throw new \ Exception ('verificação falhou', 123456); 
        } 
    } 123456789101112131415161718

Acho que você gosta

Origin blog.csdn.net/ny18002122997/article/details/112915293
Recomendado
Clasificación