关于微信支付的一些错误总结

微信支付

最近在一个项目中遇到了微信支付的一些问题,顺便写篇笔记记录一下。

1、errcode:48001 api unauthorized

这个问题属实很坑,刚刚收到这个错误的时候我百度了一下,网上很多网友都说是scope的原因,具体不再重复,参考链接:https://blog.csdn.net/xgocn/article/details/100082900

然后花了两天时间排查,直到我拿到前端传过来的code,通过微信官方的调试工具依然报错时才问前端你这code从那里获得的。前端说通过wx.login组件。

我们这个项目微信公众号、小程序、APP是统一的账号系统,但是不同的端口调用的接口不一样。wx.login属于小程序登录组件,获取到的code只能通过code2session接口获取openid。

至此问题得以解决。

当然如果是公众号授权的话,大家参考上述链接内容就可以解决问题了。小程序中获得code有两个组件,要注意区分。

2、微信total_fee下单时要精确到分。

我们经常用的金钱单位是元,因此商品的价格常常是类似10.01这样的格式,微信total_fee单位是分,在下单时我们需要乘以100,具体报的错误忘了,但必须注意这个细节。

而支付宝的金额单位是元。注意区分微信和支付宝。

3、JSAPI缺少参数total_fee。

发生这种问题首先要检查接口返回数据与官方是否一致,可以将相关数据打印输出。

其次是订单编号重复时也会在前端报这个错误。有时候用户对于一个订单发起了支付,但是并未支付,第二次再次发起支付的时候,订单中任何内容发生变更都会报订单重复的错误。

遇到订单重复的时候网友们建议的方法是修改订单号。

4、预支付ID

预支付ID的有效期为两个小时,预支付ID为空的时候往往会发生以下三种情形:

①金额为空

②订单编号重复

③订单编号为空

5、微信获取Openid的所有文档。

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_4

 

其他错误暂时没有遇到过,后续遇到了再补充。

波波
你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!