A-A+

记录小程序-微信支付分-前后端交互导致的bug

2021年12月09日 小程序, 编程, 网站建设 暂无评论 阅读 4,157 views 次

场景:

客户使用小程序扫码开启订单,使用的是微信支付分。

 

系统流程:

1、客户扫码,小程序前端向后端发起创建微信支付分请求;

2、后端接到请求后,向微信发起请求创建微信支付分订单请求,获得‘微信支付分验证信息’,并生成一个本系统‘预订单编号’一起返回给前端;(此时微信分订单状态为created未开始,本系统订单未创建)

3、小程序前端拿着‘微信支付分验证信息’调用微信用户授权组件,用户授权成功,则微信支付分订单状态从created变为doing进行中。再拿着‘预订单编号’向后端请求开始订单。

4、后端收到带‘预订单编号’的开始订单请求后,开始进行验证检测,检测通过就创建订单。

 

BUG产生流程:

客户多次扫码,在微信支付分授权页面手机操作返回上一页,然后继续进入授权页,导致c端向我请求创建微信支付分订单接口假定3次,时间先后分别是a微信分订单、b微信分订单、c微信分订单,
对应的,我分别返回了A、B、C三组微信分授权数据和3个订单编号01、02、03。

C端拿着微信分授权数据A向微信请求,微信分订单开始了。却拿着订单编号03向后端申请订单开始。

正确的应该是A--01或 B--02 或 C--03,现在却是C--01或A--03。导致小程序订单和微信支付分的订单并不是同一个。由此产生bug。

 

解决办法:

前端要进行匹配验证。

标签:

给我留言