全部
常见问题
产品动态
精选推荐

微信支付签名错误解决方法

管理 管理 编辑 删除

1.V3签名错误

1.1服务端签名错误(如下单) 参数错误和方式错误无先后顺序

1.1.1 签名方式错误

当签名参数无误时,就是签名的方式有问题,可以使用以下方式检查

使用官方验签工具进行验签,地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/download/Product_5.zip

明文填写方式参考官方签名生成文档 ,地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay4_0.shtml

94285202306101727412452.png

注意红色方框内容,【\n】在验签工具明文中是换行的意思,不是字符串,注意一共有5个,所以POST请求在验签工具里面最后一行需要换一行,GET需要换两行,并且GET请求需要在URL末尾附加有’?'和对应的查询字符串
POST请求可参考以下截图

e2094202306101728257207.png

GET请求可参考以下截图,注意【?】为英文状态下的?

935a6202306101728359778.png

1.1.2 签名参数错误(含私钥等参数) 参数错误和方式错误无先后顺序

当签名方式无误时,就是签名的参数有问题,可以使用以下方式检查
使用官方postman脚本进行测试,地址:https://github.com/wechatpay-apiv3/wechatpay-postman-script
注意:需要先下载脚本后导入postman里进行配置

1dafb202306101728499680.png

严格按照官方步骤进行配置,注意这里的配置,Authorization的值就是{{auth}},不需要自己生成签名

13cfb202306101729006913.png

配置好之后先测试下载证书(官方已经配置好,直接可以调用)如果成功下载证书,说明私钥、商户号、证书序列号是没有问题的,根据请求方式选择【证书下载】或者【发放指定批次的代金券】替换一下参数和请求URL即可测试出错的接口

1.1.3 Authorization头部值错误

1.商户号mchid 与使用私钥不匹配或不存在(注意:千万不可以有空格)
2.证书序列号serial_no与当前私钥对应在商户平台查看的证书序列号不匹配(注意:如果不匹配可能会导致系统繁忙,请稍后重试)
3.随机字符串nonce_str与组成签名的明文中的随机字符串一致(注意:千万不可以有空格)
4.时间戳timestamp与组成签名的明文中的时间戳一致(注意:千万不可以有空格)
5.组成请求头时是一行数据,WECHATPAY2-SHA256-RSA2048 mchid=“1900009191”【中间是一个空格,不是换行】

5d51720230610172911764.png

6.无论是下单还是唤起,如果是服务商模式,均使用服务商的参数(私钥、商户号、证书序列号)唤起和下单一定需要使用相同的私钥进行签名

1.2唤起签名错误

1.2.1 签名参数错误

1.严格按照文档需要的参数进行签名,如小程序唤起支付

d5fb1202306101729233613.png

注意参与签名时不要有空格
2.私钥文件需要和下单时一样,如果是服务商模式,均使用服务商的
3.唤起的参数字段名大小写必须与文档中一致,注意签名方式为RSA
4.测试时以上均无误,则把前端参数写死后测试

1.2.2 签名方式错误(前后端签名方式需一致)

1.签名方式按照文档中的方式进行签名,可用签名验证工具进行验签,明文排放规则如下

04225202306101729374011.png

这里的【\n】在验签工具明文中是换行的意思,不是字符串注意一共有4个,明文最后一行需换行

d82b9202306101729481516.png

2.V2签名错误

2.1服务端签名错误(如下单)

使用官方签名工具验证签名,复制请求的XML请求串,使用api秘钥验签
签名方式按照加密的方式验证,例如MD5

75476202306101729584361.png

点击校验签名,就会得到验签的结果

6bcd3202306101730089837.png

使用官方签名工具生成签名,使用postman测试,无需任何配置,复制粘贴请求地址和请求参数,就可以校验参数和秘钥是否正确
注:需要使用证书的接口,可以自行在网上查询如何导入证书
地址:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1

f50cb202306101730194028.png

注意签名方式和字段签名方式需要保持一致,填写时不要有空格,注意大小写需要与文档一致
如果使用验签工具生成签名后请求接口依然提示签名错误,那就是API秘钥有问题,登录商户平台重置秘钥后再重试
秘钥key设置方式:https://kf.qq.com/faq/161220VnAvUb161220NJRbiM.html
如果是服务商模式,均使用服务商的秘钥

2.2唤起签名错误(前后端签名方式需一致)

唤起支付时需要按照文档要求生成签名,不是用下单成功后返回的签名,注意签名的参数大小写需要与文档一致

88ca6202306101730291361.png

可以使用验签工具生成签名值写死在前端进行测试,签名方式及秘钥key需要下单时一致
唤起时的签名错误可能有:
1.如参与签名字段的大小写或者不是文档规定使用的参数(有缺少或有多余的参数)
2.生成签名的秘钥key错误,注意一点是在商户平台设置的api秘钥,设置地址:
https://kf.qq.com/faq/161220VnAvUb161220NJRbiM.html
服务商模式下单和唤起都需要使用服务商的秘钥
3.前后端交互问题,可能前端传递的参数为空或错误
4.注意唤起的方法里的字段需要与文档中一致,不可以缺少或者多余

cbbaf202306101730417090.png

字段注意不要有空格,需要真实参数【appId必须是当前唤起主体的appId,例如小程序就必须是当前唤起支付的小程序appId,且和下单时的appId一致】

3.V3验证签名错误

在代码中验签失败的时候,可以使用官方验签工具进行验签,下载地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/download/Product_5.zip
验签是需要使用平台证书,不是使用商户证书,平台证书接口文档:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay5_1.shtml
获取到平台证书后需要解密,解密文档:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay4_2.shtml
明文和签名填写方式参考官方验证签名文档 ,文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay4_1.shtml
平台证书、明文、签名都得到之后,可以使用验签工具进行验签,文档中的/n换行在验签工具中是需要手动换行的,所以最后一行也是需要换行。如图

a7fe6202306101730571195.png

如有其他签名错误及解决方法欢迎补充

请登录后查看

CRMEB-慕白寒窗雪 最后编辑于2023-06-10 17:31:24

快捷回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest==1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

作者 管理员 企业

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}   {{itemc.ip_address}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
回复
回复
5399
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} {{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
加精
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服