JAVA全系列 教程
3762个小节阅读:7091.9k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
在订单服务模块添加延迟消息的消费者
xxxxxxxxxx
/**
* 延迟队列消费者,检查订单状态
*/
@Service
@RocketMQMessageListener(topic = "check_orders_queue",consumerGroup = "check_orders_queue")
public class CheckOrdersListener implements RocketMQListener<String> {
@Autowired
private OrdersService ordersService;
@Override
public void onMessage(String orderId) {
// 查询订单
Orders orders = ordersService.findById(orderId);
// 如果此时订单状态还是未支付,则将状态改为交易关闭
if (orders.getStatus() == 1){
orders.setStatus(6);
ordersService.update(orders);
}
}
}
修改生成二维码方法,未支付订单才会生成二维码
xxxxxxxxxx
@Override
public String pcPay(Orders orders) {
/**
* 判断订单状态,未支付才会生成二维码
*/
if (orders.getStatus() != 1){
throw new BusException(CodeEnum.ORDER_STATUS_ERROR);
}
// 1.创建请求对象
AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
// 2.设置请求内容
request.setNotifyUrl(zfbPayConfig.getNotifyUrl()+zfbPayConfig.getPcNotify());
JSONObject bizContent = new JSONObject();
bizContent.put("out_trade_no",orders.getId()); // 订单编号
bizContent.put("total_amount",orders.getPayment()); // 订单金额
bizContent.put("subject",orders.getCartGoods().get(0).getGoodsName()); // 订单标题
request.setBizContent(bizContent.toString());
try {
// 3.发送请求
AlipayTradePrecreateResponse response = alipayClient.execute(request);
// 4.返回二维码
return response.getQrCode();
} catch (AlipayApiException e) {
e.printStackTrace();
throw new BusException(CodeEnum.QR_CODE_ERROR);
}
}