0
点赞
收藏
分享

微信扫一扫

B2C电商项目(第十三天、超时未支付订单处理、订单批量发货、确认收货与自动收货)


订单处理

课程内容:

通过 rabbitmq的延迟消息完成超时订单处理

完成批量发货功能,了解第三方物流系统

完成自动收货功能

一、超时未支付订单处理

1.1 需求分析

超过限定时间并未支付的订单,我们需要进行超时订单的处理:先调用微信支付api,查询该订单的支

付状态。如果未支付调用关闭订单的api,并修改订单状态为已关闭,并回滚库存数。如果该订单已经

支付,则做补偿操作(修改订单状态和记录)。

1.2 实现思路

如何获取超过限定时间的订单?我们可以使用延迟消息队列(死信队列)来实现。

所谓延迟消息队列,就是消息的生产者发送的消息并不会立刻被消费,而是在设定的时间之后才可以消

费。

我们可以在订单创建时发送一个延迟消息,消息为订单号,系统会在限定时间之后取出这个消息,然后

查询订单的支付状态,根据结果做出相应的处理。

1.3 rabbitmq延迟消息

使用RabbitMQ来实现延迟消息必须先了解RabbitMQ的两个概念:消息的TTL和死信Exchange,通过

这两者的组合来实现上述需求。

1.3.1 消息的TTL(Time To Live)

消息的TTL就是消息的存活时间。RabbitMQ可以对队列和消息分别设置TTL。对队列设置就是队列没有

消费者连着的保留时间࿰



举报

相关推荐

0 条评论