php 获取支付消息失败,微信支付 api v3 支付通知 异步 验签失败 PHP

微信支付v3 异步验签失败

此处我们接收参数(报文主体)一般是通过框架 自带的request接收。

例如TP6:$this->request->param();

这里如果使用此接收方式在进行json转换验签会失败。

我们需要用原生的接收方式:file_get_contents(‘php://input’);

接收到之后直接拿此数据进行签名验证。

附以下代码:

public?function?verifySign()

????{

????????$timestamp?=?"header头中的时间戳";

????????$nonce?=?"header头中的随机串";

????????$signature?=?"header头中的签名";

????????$certZs?=?"平台证书";//????????$data?=?$this->request->param();

????????$data?=?file_get_contents('php://input');

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

????????//校验签名

????????if?(!$this->verify($message,?$signature,?$certZs))?{

????????????throw?new?\Exception('验签失败',?123456);

????????}

????}123456789101112131415161718

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值