我目前负责开发一个公司小程序的拼团功能,把之前同事写的下单流程看了一遍。
确认他并没有考虑到一个并发情况:
1、用户支付后,系统等待微信支付的支付通知回调。
2、目前订单超时功能是用 Redis 过期通知做的,订单支付超时回调订单关闭的方法。
若两个方法同时触发,岂不是有并发的问题?
我目前给两个方法都加了 Redis 锁,锁订单——>判断订单状态——>执行业务
订单关闭也先查询了订单支付状态。
但是这样会出现用户支付后,微信没回调,Redis 键过期,把订单给取消,微信支付成功回调会把这笔钱退款。(我猜想的...目前还没出现这种情况)
感觉这样的交互体验并不理想,各位有做支付的是怎么设计或者处理的呢?能指点一二吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.