对接微信支付-坑

接上一篇,对接微信支付流程比较简单,但是有一些小坑需要注意,所以相比上一篇,这篇才是重点。

一、获取用户的openId:

微信获取用户的openId的文档是这个:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842,最开始我的想法是全部在后端实现,全部直接http请求。后来发现它的第一个地址是一个页面,必须要完整的打开它才行,而它的文档里面也有说:

所以在获取用户openId的时候,不能直接用简单的http请求,需要前端打开对应的页面,才能获取到code,然后才能获取用户的openId。

二、微信内H5调起支付:

微信内H5调起支付的文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6,里面已经有js的示例代码了。一般流程是后端生成需要的数据给前端,前端调用示例代码就能唤起微信支付了,但是因为微信公众号文档里面也有关于支付的,导致很多人以为在调用支付方法之前还要实现config去获取微信配置。其实是不需要的,直接调用支付方法就可以了。

三、签名问题:

这个是最多人吐槽的地方,在使用JSAPI支付的过程中,一共会有两次生成签名的地方:一次是调用统一下单API,需要生成签名;还有一次是微信内H5调起支付时,需要生成签名。这两次生成签名的方式要一致,这个问题在微信的签名校验工具里面是检验不出来的:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1(传说以前在文档中没有提到过,不过现在好了,文档已经明确写到了)。

签名方法如果是直接用微信支付的SDK,还需要注意一点就是,WXconfig对象的构造方法里面没有signType字段,signType是根据正式环境还是沙箱环境去确定的,至今我没搞懂SDK为什么要这样设计。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值