最近最接微信服务商的电商收付通功能,之前对接了微信常规的支付及收款功能等等,按道理做这个收付通功能问题不会很大,但因为自己的疏略,导致浪费了自己的大量精力,是被自己蠢哭的那种节奏。在说解决问题前,先吐槽下微信的在线技术人工,解答问题很专业,能一针见血。但是我从机器人转入人工的过程耗费了2个小时。在排队过程只有14个人,太久太久了。
以下是微信支付签名失败的问题,主要有两个自身的问题:
1、换行问题,首先看官方文档给的案例
然后我java代码的写法
官方文档上面要求签名的数据需要换行。我在开发过程中,直接将\n复制到了代码上,最后被转义成了字符串,而不是换行符。真正的写法如下截图:
问题2: 签名的随机字符串和 timeStamp与传给微信的不一致,导致签名失败
错误的写法:
红框圈中的是关键错误代码,传出去的随机字符串和时间戳与自己当前签名使用的不一致
以下是正确的写法:
仔细对比下错误的截图。
以上是我解决微信签名错误的过程,主要是自己粗心大意。这里分享下,给以后遇到这种问题的朋友。