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

这篇具有很好参考价值的文章主要介绍了微信支付签名错误解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.V3签名错误

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

1.1.1 签名方式错误

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

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

明文填写方式参考官方签名生成文档 ,地址:签名生成-接口规则 | 微信支付商户平台文档中心

微信支付签名,微信

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

微信支付签名,微信

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

微信支付签名,微信

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

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

微信支付签名,微信

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

微信支付签名,微信

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

1.1.3 Authorization头部值错误

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

微信支付签名,微信

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

1.2唤起签名错误

1.2.1 签名参数错误

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

微信支付签名,微信

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

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

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

微信支付签名,微信

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

微信支付签名,微信

2.V2签名错误

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

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

微信支付签名,微信

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

微信支付签名,微信

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

微信支付签名,微信

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

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

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

微信支付签名,微信

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

微信支付签名,微信

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

3.V3验证签名错误

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

微信支付签名,微信

如有其他签名错误及解决方法欢迎补充文章来源地址https://www.toymoban.com/news/detail-704949.html

到了这里,关于微信支付签名错误解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp微信小程序JSAPI支付前端生成签名,并调起微信支付

    签名方式使用的是SHA256withRSA 插件 npm install jsrsasign 使用

    2024年01月17日
    浏览(71)
  • 【微信小程序支付计算签名值-前端】

    1、后端通过JSAPI下单接口获取到发起支付的必要参数prepay_id,前端取到prepay_id就可以调用wx.requestPayment发起支付。调起支付的参数需要按照签名规则进行签名计算。微信支付文档 2、前端得到prepay_id后就可以按照规则计算签名了。 2.1 构造签名串,签名串一共有四行,每一行为

    2024年02月16日
    浏览(51)
  • c# .net framework 实现微信支付v3 h5支付 签名 验签

    接口文档:微信支付-开发者文档 (qq.com)    遇到的问题有   1、签名老验证不过去 :      生成的签名老验证不过    n 不要加转义符   2、 发送的请求老是400  使用工具请求正常。代码不行。   UserAgent = \\\"m.cnblogs.com/WebRequest\\\";    不要留空就行 网址可填自己的

    2024年02月05日
    浏览(45)
  • Windows 更新 升级 8007003错误 800tb109错误 文件没有正确签名 很难确定你的电脑能否运行win10【解决方法】

    在看了网上一大堆的的方案,什么删注册表(WindowsSelfHost),删更新文件(SoftwareDistribution),删软件包签名(catroot、catroot2)都没用的,欢迎你来对地方了!! 【先讲讲自己的经历,只是吐槽下自己曲折并提供一点点经验,避免大家走弯路,不想看的请直奔解决方案】 一年

    2024年02月10日
    浏览(70)
  • 微信小程序开发实战10_2 小程序支付请求签名

    为了保证支付接口使用的安全,微信支付平台在支付API中使用了一些用于接口安全调用的技术。在调用时接口需要使用商户私钥进行接口调用的签名,获取到微信支付平台的应答之后也需要对应答进行签名验证。微信的应答签名使用平台证书来进行签名验证,因此在调用支付

    2024年02月11日
    浏览(43)
  • 支付宝支付时提示:RSA签名遭遇异常,请检查私钥格式是否正确。不正确的长度。【解决方案】

    我的c# .net框架,直接说解决方案吧! 小程序文档 - 支付宝文档中心 支付宝开放平台密钥工具可以生成应用公钥、应用私钥、CSR 文件,并提供密钥匹配、格式转换、签名、同步验签、异步验签等功能。  2.2.1、找到之前生成时的文件位置  2.2.2、从项目的代码中找 感谢阿杰,

    2024年02月11日
    浏览(72)
  • 微信小程序【渲染层网络层错误】解决方法

    利用微信小程序开发平台进行编写过程中,关于image组件使用,会出现图片无法加载问题,原本一个简单的问题却找了各种方法没有解决。此次问题出现使用的开发平台调试基础库版本为2.30.1,因为之前博主使用的方法是修改调试基础库的版本,但是发现也没有用。 添加的是

    2024年02月11日
    浏览(98)
  • 微信jssdk 签名获取方法

    using Google.Protobuf.WellKnownTypes; using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Text; using UnityEngine; using UnityEngine.Networking; using UnityEngine.Networking.Types; public class JsSdkTicket : MonoBehaviour {     [DllImport(\\\"__Interna

    2024年02月12日
    浏览(29)
  • 微信小程序调用本地http接口设置以及django 遇到的csrf 403错误解决方法

    1) 如果微信小程序需要和本地localhost端口进行通信联调。首先需要设置微信小程序为 ”不校验合法域名…“设置,这样就可以跳过域名安全检测,不然会出现网站不在安全名单内: 2)此时调用之后,后端会出现如下错误: 这是因为:在微信小程序端对Django后台进行POST请求

    2024年02月07日
    浏览(59)
  • 微信小程序[ app.json 文件内容错误] app.json: app.json 未找到解决方法

    第一次导入项目运行,经常会报app.json找不到 这是因为project.config.json文件被微信开发者工具修改,缺少代码:“miniprogramRoot”: \\\".dist/dev/mp-weixin/\\\"   在开发者工具中找到dist文件夹下/dev/mp-weixin/project.config.json,复制到项目根目录中 重新编译运行,报错即可解决  

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包