# Module6Part1 **Repository Path**: john_hi/module6-part1 ## Basic Information - **Project Name**: Module6Part1 - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-07 - **Last Updated**: 2021-03-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工程简介 基于RabbitMQ的TTL以及死信队列,使用SpringBoot实现延迟付款,手动补偿操作。 1、用户下单后展示等待付款页面 2、在页面上点击付款的按钮,如果不超时,则跳转到付款成功页面 3、如果超时,则跳转到用户历史账单中查看因付款超时而取消的订单。 # 实现方案 1.在下单时候往orders表中记录订单的同时,往rabbitmq发送一条ttl的消息, 消息带有订单编号。ttl时间到后,消息会发往死信队列。 2.在特定的时间内用户进行支付,或者不支付操作。如果用户进行支付,则修改订单状态为为支付成功, 如果不支付,状态不做修改 3.程序消费死信队列的消息,如果发现订单状态为已支付,则不做处理,如果订单状态为未支付,则修改订单状态为支付超时。