跳坑《一百八十六》支付签名校验失败(签名错误)

假如出现这个错误,可以仔细参考微信支付系列教程:http://www.wxapp-union.com/portal.php?mod=list&catid=19

微信支付签名校验地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1

  • 注意事项:
  • (1)如选择XML校验,XML需包含sign字段
  • (2)注意参数名需区分大小写,必须与文档的参数名大小写一致
     

Q:我调用 小程序的微信支付api,一直报签名验证错误,参与签名的参数有timeStamp、nonceStr、package、signType。使用微信支付签名校验工具生成的签名跟我自己服务器生成的签名是一样的,但还是报签名错误。 A:appId不需要传入支付api,但是需要参与签名。

以下为全网的讨论,包括本站曾经的一些贴内的讨论:

相关讨论:
MD5加密中文的结果不一致
跳坑《四十七》微信小程序支付(微信支付签名错误)
跳坑《一百二十三》微信支付(微信小程序支付)

相关讨论:
有关于小程序支付接口问题 通过第三方服务器统一下单获得prepay_id,然后在小程序发起支付的时候提示“支付验证签名失败”, appid,timeStamp,nonceStr,package,signType: ‘MD5’,paySign,一共有六个参数,签名是用前面五个参数生成的,和接口调试工具生成签名结果一致,请问一下这是神马情况

timeStamp 需要是string 类型,对应的秒数,如果取值是毫秒,需要 / 1000;

paySign签名前需要拼接API密钥 key=XXXX

相关讨论:
一直报微信支付签名错误 我之前微信公众号的支付都是成功的,用那一套代码做小程序的微信支付在统一下单时,就老是报微信支付签名错误了,三天了,实在找不到错误在哪了。有谁能够分享下心得吗,谢谢了!

已经好了,忘记填openid了,谢谢

相关讨论:
err_desc : “支付验证签名失败” err_code : “2” 发起支付时发生错误了。

(此图片来源于网络,如有侵权,请联系删除! )

参数都按要求传递了

sign没有加appId

相关讨论:
微信小程序支付失败 签名失败及签名错误的解析

以下希望对各位有所帮助

微信支付签名失败这个提示,是出于前台JSAPI调起返回的签名失败

微信支付签字错误这个提示,是出于微信支付统一下单API调起是返回的签名错误

小程序支付API

[AppleScript] 纯文本查看 复制代码 ?

01 02 03 04 05 06 07 08 09 10 11 wx.requestPayment({    ‘timeStamp’: ”,    ‘nonceStr’: ”,    ‘package’: ”,    ‘signType’: ‘MD5’,    ‘paySign’: ”,    ‘success’:function(res){    },    ‘fail’:function(res){    } })

这里请求的参数有 timeStamp,nonceStr,package,signType,paySign

跟公众号支付调起的方式少了个 appId

微信小程序也是用心良苦啊,其实我们在做 signType签名的时候,一定要在后台加上 appid

signType的加密方式是这样的,请看以下代码

string strTimeStamp = DateTime.Now.ToString(“yyyyMMddHHmmss”);

string strNonceStr = System.Guid.NewGuid().ToString().Replace(“-“, “”);

string strPackage = “prepay_id=” + callback.prepay_id; //这个是统一下单返回的 callback.prepay_id

Dictionary<string, string> dic = new Dictionary<string, string>();

dic[“package”] = strPackage;
dic[“appId”] = “您的小程序appId”; //签名时后台一定要加上这个
dic[“timeStamp”] = strTimeStamp;
dic[“nonceStr”] = strNonceStr;
dic[“signType”] = “MD5”;

string strQuery = KeeSoft.Code.HashTable.DictionaryToQuery(dic);//这里将 timeStamp,nonceStr,package,signType,appId 将这些参数进行ASCII码从小到大排序,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA

string strSign = KeeSoft.Code.DESEncrypt.WxMD5Encrypt(strQuery + “key=” + KeeSoft.WeChat.App.Config.Key).ToUpper();//将组成的URL键值对加上您的 商户号里的 key,再进行MD5加密,加密后转成大写

以上代码出自KeeSoft框架库

 

 

相关讨论:
支付相关。服务端二次签名需要的参数如下(java):
[AppleScript] 纯文本查看 复制代码 ?

1 2 3 4 5 6 7 String prepay_id = “你的prepay_id”; SortedMap<Object,Object> parameters = new TreeMap<Object,Object>(); parameters.put(“appId”, appid); parameters.put(“timeStamp”, timeStamp); parameters.put(“signType”, signType); parameters.put(“nonceStr”, nonce_str); parameters.put(“package”,”prepay_id=”+prepay_id);

注意参数大小写,否则会出现验证签名失败,支付问题折腾了一天。。。

相关讨论:
微信小程序支付的时候报“支付验证签名失败”
调用支付微信支付接口一扫支付码就报“支付验证签名失败”

(此图片来源于网络,如有侵权,请联系删除! )

 
校验签名的时候是正确的

(此图片来源于网络,如有侵权,请联系删除! )

 
这里是调用支付的代码,有没有大神踩过坑的,求解答,万分感谢!

(此图片来源于网络,如有侵权,请联系删除! )

 

基本都是参数问题导致的,一个参数大小写,一个是参数顺序,签名校验工具只能校验出具体的数值结果,但是微信支付要求很严格的

相关讨论:
微信小程序支付提示“支付验证签名失败”
目前在做小程序的支付功能,在支付的时候提示“支付验证签名失败”。实用签名校验工具也没有发现问题。因为我这里之前用微信公众号申请过商户,所以这里小程序和微信公众号绑定的都是同一个商户,那么这时候APIkey时候一致?

(此图片来源于网络,如有侵权,请联系删除! )

 

在签名工具哪里验证一下签名和自己md5加密的签名是否一致,如果不一致的情况,首先检查参数,然后检查md5加密是不是没有把字节转成utf-8;也可以看看这个http://www.wxapp-union.com/portal.php?mod=view&aid=1425

相关讨论:
微信支付提示支付验证签名失败
我在做微信公众号支付开发  统一下单的prepay_id我已经正常取到了,但是在H5页面调起微信支付后始终返回  支付验证签名失败 ,但是
  我在签名校验工具中
生成的签名和我的也一致  ,实在不知道什么问题了,求帮助啊

(此图片来源于网络,如有侵权,请联系删除! )

 

解决了,前端接收参数时,参数赋值的对应关系弄错了。。。低级错误啊。得出结论:总之这种错误肯定就是提交的参数和签名时的参数不一致的问题,还是要找参数的问题就ok了

新增案例: 

(此图片来源于网络,如有侵权,请联系删除! )

 

新增案例:
请问一个支付商户号能同时给公众号和小程序用吗? 
我在测试统一下单接口,用公众号的appId和key就能调用成功,
换成了小程序的appId和key就报错:
[AppleScript] 纯文本查看 复制代码 ?

1 2 3 4 <xml> <return_code><![CDATA[FAIL]]></return_code> <return_msg><![CDATA[签名错误]]></return_msg> </xml>

这里的key说的就是签名最后追加的AppSecret。
感觉是不是这个key的问题,如果填入正确公众号的appId和错误的key,同样也会报这个错。

见鬼,小程序的appId和key可以成功调用这个接口 var l=’https://api.weixin.qq.com/sns/jscode2session?appid=’+d.appid+’&secret=’+d.secret+’&js_code=’+res.code+’&grant_type=authorization_code’;
答:hjm 

注意,这里的密钥是支付平台中的客户密钥,不是公众号的AppSecret(应用密钥) http://blog.csdn.net/kunga0814/article/details/51697384

新增案例:签名老是错误

商户key是你微信支付配置的key

需要证书吗

具体设置忘记了,好像是需要操作证书,就是之前的app支付或者公众号支付一样的

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

【小程序源码网资源版权风险说明】:
本站为避免不必要的纷争,分享的所有资源中一切可能有版权风险的资源将全部转载自第三方网站或平台,站长只为大家提供相关资源的介绍和跳转引导。 因可能有疏忽大意,所以如有遗漏资源侵犯了您的合法权利,请联系站长删除。
【小程序源码网资源下载使用说明】:
本站所分享的一切QQ小程序源码,thinkphp整站源码,微信小程序源码,图文教程等资源仅供用户学习参考使用,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网毫无人看的介绍】:
本站又称Z站,原名贼娘网,开站于2018年,换过三任站长,目前站长是第四任站长,本站是一个主要分享免费开源小程序源码/网站源码/免费素材/教程资源的网站,主要小程序资源有用于学习的小程序源码,也有正版原创可商用的小程序源码,是一个公益博客型网站。
【小程序源码网原创源码版权申明】:
未经小程序源码网许可,任何人不得擅自使用本站原创首发源码进行商业行为(除本站VIP用户在期限内,版权无使用限制),否则将依法承担相应赔偿责任。
【小程序源码网转载文章版权申明】:
本站所转载的QQ小程序或微信小程序源码与其他资源仅供学习,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网站长最后的屁话】:
如有您认为本站有任何侵犯您合法权益的文章,或者您有什么疑问需求,欢迎联系站长QQ,站长24小时在线,备注公司名称和源码版权问题或者需要小程序定制开发等站长业务类型可急速处理,如果您只是交流小程序的一些开发问题或源码问题可以加入QQ群讨论,就不用加站长啦,对于白嫖党,QQ群才是处理问题的天堂,当然站长也欢迎大家骚扰~
小程序源码网 » 跳坑《一百八十六》支付签名校验失败(签名错误)
嘿,投喂下嘛!