状态为cancel的订单在接到微信支付成功后更改订单状态为支付状态

状态为cancel的订单在接到微信支付成功后更改订单状态为支付状态

当用户取消订单 或者倒计时结束更改订单状态为cancel状态时 如果该订单使用了优惠券 且优惠券未过期 应该释放该优惠券 让用户可以再次使用 这种情况下状态为cancel的订单在接到微信支付成功后更改订单状态为支付状态 是否应该考虑优惠券再次更新为已使用状态

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
luckystar728 2021-05-03 11:54:17

延迟消息队列的延迟时间可以设置成比订单过期时间稍微长点,长5分钟或者10分钟,微信支付成功通知在这个时间内回调回来就不会有这个问题了。


另外,不用延迟消息队列也没什么问题,因为订单里已经存在expireTime字段了,能保证订单过期失效的逻辑,延迟消息队列只是为了保证数据库的数据的完整性,个人觉得消息队列的延迟时间设置稍微长点也是合理的。

  • 那这段时间的前端的订单状态可能展示不正确,本已过期的订单却还是返回待支付状态

    2021-11-04 23:58:18
luckystar728 2021-05-03 11:49:57

延迟消息队列的延迟时间可以设置成比订单过期时间稍微长点,长5分钟或者10分钟,微信支付成功通知在这个时间内回调回来就不会有这个问题了

7七月 2020-04-26 16:14:15

我没有明白,优惠券支付超时就是没有支付,为什么有微信支付的回调?什么意思?

  • 提问者 Kely_Developer #1
    用户在订单超时前几秒下单 下单成功后下预订单 下预订单成功后完成支付 如果自己的服务器在还没接到微信服务器支付成功的通知的一瞬间订单到期了 这时候执行释放库存和已使用的优惠券 在这之后接到了微信服务器的支付成功的通知 这种情况下应该考虑把库存和优惠券重新扣除吧
    2020-04-26 16:25:40
  • 7七月 回复 提问者 Kely_Developer #2
    我没有理解,订单超时前几秒 下单?如果都有订单了 都考虑超时了,怎么又下单?
    2020-04-26 21:17:29
  • 提问者 Kely_Developer 回复 7七月 #3
    是我表述有误 是订单要超时的前几秒 客户端完成支付 微信服务器还没有通知自己服务器 订单有效期到了 订单状态变成取消同时归还库存和优惠券 这时接到服务器接到微信服务器的支付成功的通知 把订单状态从取消变为已支付 库存和使用的优惠券需要再次被扣除
    2020-04-26 21:35:13
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师