• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

RabbitMQ实现订单时设计思路、以和在订单过期临界点支付成功处理

武飞扬头像
拄杖忙学轻声码
帮助1

场景:
我们知道用 RabbitMQ 的延时队列可以实现用户下单后在 xxx 时间内未支付,需要自动关闭订单。但如果用户在订单即将过期的最后一秒支付成功、那么这笔订单算不算正常下单?要不要释放库存?

一、下单未支付超时自动关闭订单设计思路

1、以 30分钟 为例,订单表必须的字段

订单状态、订单支付状态、订单过期时间、库存是否释放、库存释放时间

【1】订单状态:已下单、待出库、运输中、派送中、已取消、已关闭等
【2】订单支付状态:已支付、未支付
【3】订单过期时间:此字段可返回给前端,用于倒计时的起点。取值为用户下单时候订单信息落库时间 30分钟,下单接口可使用异步线程同时把订单信息落库、丢入消息队列
【4】库存是否释放:是、否
【5】库存释放时间:此字段要晚于订单过期时间 1 到 2 分钟,避免订单过期后库存立刻释放而被其他订单冻结,用于临界点支付成功的缓冲时间 

二、用户在订单即将超时的最后一秒支付成功,这笔订单如何处理?

1、此问题需要开发和产品业务沟通,由产品决定算下单成功还是关闭订单

2、产品决定临界点支付成功,算正常下单成功
【1】更新订单状态(出库中)、扣减库存

3、产品决定临界点支付成功,算下单失败
【1】此时需要退款、更新订

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggjefc
系列文章
更多 icon
同类精品
更多 icon
继续加载