微信H5支付 验签失败 问题
现在的微信H5支付貌似都是“APIv3接口规则”,所有请求需要使用证书签名。
在安装官方文档说明操作后,验证签名总是失败,一直找不到解决办法,发到这里,希望路过大神指点一下!
情况如下:
在按官方文档要求的,安装下载证书、设置商户“APIv3密钥”后,参照官方的文档的 开发指南–签名生成,最终生成如下签名验证参数:
(地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay4_0.shtml):
使用的postman来测试,返回验签失败:
简单说明下官方的签名步骤
1、首先构造的请求签名串如下(请求方法是GET,url也是固定的,时间戳,随机字串,body为空):
2、使用证书签名(官方文档的命令行实现如下):
官方也给出了执行签名操作的php的代码片段
总结一下就是:将上面的构造的签名串使用openssl_sign(签名串,返回值,密钥,加密方式)进行加密,返回给$raw_sign变量,然后再使用base64_encode进行编码后就是$sign了。
3、验证签名:构造签名信息如下(其中签名值signature就是上面编码后的$sign,其他都直接配置):
按照上面的参数配置好,按照固定格式,发送到接口地址https://api.mch.weixin.qq.com/v3/certificates
进行验证,如下:
另外,header头中除了Authorization
之外,还需要添加 Content-Type: application/json
Accept: application/json
,这两个值都是固定的。至此所有数据都已获得,使用postman测试结果:
上面所有步骤都是按照官方文档进行测试的,各个参数都检查无误了,证书都重新生成了,却始终都返回“验签失败”,问题到底出在哪里呢? 有做过这个H5支付的大神能帮分析一下吗?
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: