ps:接着之前的完成了微信授权获取用户的基础信息外
微信支付也需要快速完成,支付的确很多坑,大多数是不认真阅读开发文档导致
stemp1 :发起预支付api
此处遇到的坑是,由于需求中的信息,例如公众号下对应一个商户号,但是需求文档中给的商户号是错误的,不是这个公众号对应下的商户号,
直接被返回 公众号与商户号不一致!!!,此时经历了寻找好几个部门的人,终于找到了对应的商户号!然而已经懵逼了好久....
View Code
stemp2 预支付主要函数,主要是进行签名,参数一定到正确,如下:
View Code
经常报签名错误的原因有一下几个:http://jingyan.baidu.com/article/59703552c3c9808fc1074072.html 百度说得很多了
但是我们真的遇到了
1 key真的不对!公众平台的密钥和商户号的密钥是不一样的!!!微信支付审核成功之后会收到一封邮件,邮件中有appid 商户号,商户后台登录上号和密码,登录到商户后台:账户设置-安全设置-切换到API安全,下载证书,下面有一个api密匙,进去填写一个字符串 ,保存,后续两次签名都是用的这个手动设置的key!!!后来重新生成一个了;
2 openid要正确
3 金额分要注意,单位是用分的
4 仔细阅读文档后,就很少出错了
以下解释发起微信支付成功后的数据,返回响应wx的json给前台
后台如下:
View Code
前台如下:
View Code
stemp3 回调
刚开始的时候回调地址需要在公众号那边直接填写的,不填写永远也收不到回调
View Code
到这里,微信jsapi支付就基本上完成。扫码支付需要使用到证书,其应用场景更多,将在后面的文中补上