学习到支付服务
This commit is contained in:
@@ -1,18 +1,35 @@
|
||||
package cn.mayiming.Consumer;
|
||||
|
||||
import cn.mayiming.Entity.PayTriggerMsgDTO;
|
||||
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||
import org.apache.rocketmq.spring.core.RocketMQListener;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@RocketMQMessageListener(
|
||||
topic = "pay_topic",
|
||||
consumerGroup = "pay-service-consumer",
|
||||
selectorExpression = "pay_success"
|
||||
selectorExpression = "*"
|
||||
)
|
||||
public class payConsumer implements RocketMQListener<String> {
|
||||
public class payConsumer implements RocketMQListener<PayTriggerMsgDTO> {
|
||||
|
||||
@Override
|
||||
public void onMessage(String s) {
|
||||
System.out.println("接收到消息"+s);
|
||||
public void onMessage(PayTriggerMsgDTO msg) {
|
||||
// 消费者接收到消息,模拟支付流程(本地仅生成支付链接,记录到日志/订单)
|
||||
try {
|
||||
System.out.println("========== 接收到支付触发消息 ==========");
|
||||
System.out.println("订单号:" + msg.getOrderNo());
|
||||
System.out.println("用户ID:" + msg.getUserId());
|
||||
System.out.println("支付金额:" + msg.getPayAmount());
|
||||
System.out.println("模拟支付链接:http://localhost:8080/order/mock/pay?orderNo=" + msg.getOrderNo());
|
||||
System.out.println("=======================================");
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
// 本地模拟:消息消费失败可记录日志,生产环境需配置重试
|
||||
System.err.println("消费支付触发消息失败,订单号:" + msg.getOrderNo() + ",原因:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package cn.mayiming.Entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class PayTriggerMsgDTO {
|
||||
private String orderNo; // 订单号(核心关联)
|
||||
private Long userId; // 用户ID
|
||||
private BigDecimal payAmount; // 支付金额
|
||||
private String businessId; // 幂等ID(透传)
|
||||
private Long goodsId; // 商品ID(用于关单恢复库存)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package cn.mayiming.Mapper;
|
||||
|
||||
public interface payMapper {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user