微信支付服务端需要对微信官方的统一下单接口发送请求获取prepayId作为app端调用支付的凭证,如果返回签名错误,首先排查代码层面的错误。
方法:使用微信官方的签名算法检验。
地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1
提示:其他浏览器有时候会强制跳到登录页面,推荐使用谷歌浏览器
XML来源在代码层面拼接好后 打印到控制台上获取。
注意:选项是MD5+XML
商户key:不是appid,而是api密钥。
检验通过,说明代码层面的算法没问题,代码层面的怀疑彻底解除,这下只有三个参数的问题。
微信支付只需要appid 商户号和api密钥 ,其他的一概不用。
Appid和商户号来源自申请通过的一封邮件
为了保密我只截取了左边半张图,这里的微信支付商户号是商户号,应用APPID就是我们用到的appid,以后随着时间邮件内容可能会发生变化,但这个两个肯定有。
接下来就是本文的重点了,我也是栽在这里。
API密钥:三个参数中最重要的一个,生成要各种繁琐的步骤,通过n次短信校验,最终才可以生成,具体参看api文档,我不多说,只讲重点。
首先: API密钥 长度必须32位 大小写和数字的组合,但不代表这样就可以使用,能通过微信的规则 同样不代表可以使用。
其次: 设置密钥的时候 要看左边的列表商户信息中的微信支付商户号id是否和邮件中的一样!!!
不一样设置上万次也没有用,一定要和后台中商户信息的微信支付商户号的id相同!!
最终: 接上面的 手动输入api密钥,微信这边可以通过,但不代表可以使用,服务端照样报错,记住 一定要使用线上密码生成工具,否则可以使用的概率和买彩票差不多。
推荐一个工具
地址:https://suijimimashengcheng.51240.com
和我选择一样即可,最后一个选项特殊符号不要勾选,长度选择32位,如果网址失效,百度找其他的生成工具是一样的。