微信支付(公众号支付)踩坑之路

业务场景:

h5页面生成二维码,用户使用微信扫描二维码进行支付

代码流程:

a.前端点击支付调用后端下单接口 =>

b.下单接口生成订单并返回订单号 =>

c.下单接口里面直接使用订单号去调用自己业务的统一下单接口(本来应该是返回前端,下单成功前端再回调统一支付接口) =>

d.判断是微信支付(我的所有支付都放一个接口,使用types区分支付类型),调起微信的统一下单 =>

e.调用成功之后(返回的 result.result_code !== 'FAIL')调用签名方法,返回前端调起微信支付需要的参数

坑:

1、openid与商户appid不匹配

我的解决方案:appid错误,更换商户对应正确的appid

2、调用支付JSAPI缺少参数:total_fee

我的解决方案:AppID或者AppSecret不对,这个报错比较坑,检查一下订单编号是不是重复或者没有

3、最大的坑:::签名错误问题

  首先说说微信有两个地方需要进行签名生成(sign),

     (1) 微信统一下单的时候  d   (微信统一下单接口文档

           统一下单的时候会根据传入的参数进行sign生成,这个把所有参数按照文档写好就行,唯一要注意的中文编码问题

     (2) 调用统一下单之后给前端返回微信支付需要的参数的时候  e  (微信内H5调起支付)

           在这里也会调用你传入的参数进行sign生成,,但是一定一定一定要注意,,这里的参数是大小写和参数写入的顺序都是固定的,一定要严格的看着这些参数从传入到json对象转为字符串连接之后大小写都是按照文档来的(我的坑就在这里,转成字符串的时候把大写都变为了小写,导致最后生成的sign错误,这里有微信支付接口签名校验工具可以使用。如果这里面生成的sign和程序生成的不一样,那就去检查一下大小写和参数顺序)

这里提供一个解决方案比较详细链接进行参考:

http://www.alixixi.com/biancheng/a/2019030898593.shtml

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值