做微信APP支付支付的人,初次调起微信支付,肯定有遇见“签名错误”的问题,我在做微信APP支付之初,就碰见了这个错误,现在回想起来,当时,各种找文档,帖子,然而,很多都说的含糊不清,甚至,抄别人的,整得人很无语,而,最要命的是,微信的“签名校验”居然还通过验证,没报错!?
真的令人难以置信!签名校验能通过,但,调的时候,你却告诉我“签名错误”!你是在逗我玩么?天呐,当时,真恨不得十万坨翔给贴上去,写的真是,太他么屎了!我相信,但凡亲身经历过的人,都有去找马化腾一问究竟的冲动,“你们这官方文档是哪个孙子写的,跟他么狗屎似的,你知道么?”
那么,问题究竟出在了哪里呢?最后,经过反复的查看,找帖子,资料,发现问题竟然出在了【API秘钥】上:
请注意:红色字【请设置新API密码】下的一行字“只允许输入数字和英文大小写字母的组合”!
问题,就在这里!
如果你设置的秘钥是随便找了个标示性的字符,做了md5的加密处理,生成的32个字符,那要么是大写字母+数字组成的32个字符,要么是小写字母+数字组成的32个字符!
但其实,这里是要你 【大写字符+小写字母+数字】组成的32个字符!!!而非上述的两种情况。
可是,上图中的提示,能让你一眼就明白它的意思么?能么?!【捂脸】这就是很多人都问候写这文案的人的他先人的原因!
是的,我最后,将这里的API密码重置成了“大写字符+小写字母+数字”的32位字符,试了一下,就OK了!
哎,不知道坑了多少人了,还不知道改,真特么是无语了,要不说阿里支付做的好呢!!
调取获得的结果可以进行调用官方给出的验证工具
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=20_1
这里并不提示你秘钥key错误
再次登上商户平台,找到设置秘钥的地方,看到了提示,32位的字符,要包括数字和大小写。那我第一次是md5生成的全部小写字符就不符合要求了,但是如果真的有这么个限制,为啥在设置秘钥的时候,不校验下呢?
还有一点是确定是使用的是APIV2的秘钥还是APIV3的秘钥,搞错了,工具也是能验证通过的,但接口不会通过