后端开发 \ PHP \ 微信支付-服务端-bug排查记录

微信支付-服务端-bug排查记录

总点击204
简介:微信支付服务端需要对微信官方的统一下单接口发送请求获取prepayId作为app端调用支付的凭证,如果返回签名错误,首先排查代码层面的错误。

微信支付服务端需要对微信官方的统一下单接口发送请求获取prepayId作为app端调用支付的凭证,如果返回签名错误,首先排查代码层面的错误。

方法:使用微信官方的签名算法检验。

地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1

提示:其他浏览器有时候会强制跳到登录页面,推荐使用谷歌浏览器

微信支付-服务端-bug排查记录

XML来源在代码层面拼接好后 打印到控制台上获取。

注意:选项是MD5+XML

商户key:不是appid,而是api密钥

检验通过,说明代码层面的算法没问题,代码层面的怀疑彻底解除,这下只有三个参数的问题。

微信支付只需要appid 商户号和api密钥 ,其他的一概不用。

Appid商户号来源自申请通过的一封邮件

微信支付-服务端-bug排查记录

为了保密我只截取了左边半张图,这里的微信支付商户号是商户号,应用APPID就是我们用到的appid,以后随着时间邮件内容可能会发生变化,但这个两个肯定有。

接下来就是本文的重点了,我也是栽在这里。

API密钥:三个参数中最重要的一个,生成要各种繁琐的步骤,通过n次短信校验,最终才可以生成,具体参看api文档,我不多说,只讲重点。

首先: API密钥 长度必须32位 大小写和数字的组合,但不代表这样就可以使用,能通过微信的规则 同样不代表可以使用。

其次: 设置密钥的时候 要看左边的列表商户信息中的微信支付商户号id是否和邮件中的一样!!!

不一样设置上万次也没有用,一定要和后台中商户信息的微信支付商户号的id相同!!

微信支付-服务端-bug排查记录

最终: 接上面的 手动输入api密钥,微信这边可以通过,但不代表可以使用,服务端照样报错,记住 一定要使用线上密码生成工具,否则可以使用的概率和买彩票差不多。

推荐一个工具

地址:https://suijimimashengcheng.51240.com

和我选择一样即可,最后一个选项特殊符号不要勾选,长度选择32位,如果网址失效,百度找其他的生成工具是一样的。

意见反馈 常见问题 官方微信 返回顶部