浏览代码

更新!

TRX 1 年之前
父节点
当前提交
1c94d1db07

+ 16 - 12
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/ExpenseFlowServiceImpl.java

@@ -443,11 +443,14 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
      */
     public void handleWxSurePaymentTypeOrderPayCallSuccess(WeChatMiniAppPayRet ret) {
         String orderNo = ret.getOutTradeNo();
+
+        String status = "";
         ExpenseFlow expenseFlow = expenseFlowDao.findTopByPaymentNo(orderNo);
         if (ObjectUtils.isNotEmpty(expenseFlow)) {
             // 支付结果状态
             switch (ret.getTradeState()) {
                 case "SUCCESS" -> {
+                    status = RechargeOrderStatus.Success.name();
                     log.info("收到的消息Success:{}", JsonUtil.toJson(ret));
                     expenseFlow.setOrderState(OrderState.HAVE_PAID);
                     expenseFlow.setPayRemark(ret.getTradeStateDesc());
@@ -466,26 +469,16 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
                         expenseFlow.setPayRemark(String.format("调用支付中心失败: {}", content.getMsg()));
                     }
                     expenseFlowDao.save(expenseFlow);
-
-                    // 发送消息
-                    SendMessageModel sendMessageModel = new SendMessageModel();
-                    sendMessageModel.setMessage(JsonUtil.toJson(Map.of("status", RechargeOrderStatus.Success.name(),
-                            "orderNo", expenseFlow.getPaymentNo())));
-
-                    String userId = expenseFlow.getUserId();
-                    String topic = String.format("/wechat/pay/%s", userId);
-                    sendMessageModel.setTopic(topic);
-                    sendMessageModel.setUserId(userId);
-                    log.info("mq topic : {}", topic);
-                    mqttService.sendMessage(sendMessageModel);
                 }
                 case "PAYERROR", "REFUND" -> {
+                    status = RechargeOrderStatus.Fail.name();
                     expenseFlow.setOrderState(OrderState.PAID_ERROR);
                     expenseFlow.setPayRemark(ret.getTradeStateDesc());
                     expenseFlow.setIsPaySuccess(Boolean.FALSE);
                     expenseFlowDao.save(expenseFlow);
                 }
                 case "CLOSED" -> {
+                    status = RechargeOrderStatus.Cancel.name();
                     expenseFlow.setOrderState(OrderState.CLOSED);
                     expenseFlow.setPayRemark(ret.getTradeStateDesc());
                     expenseFlow.setIsPaySuccess(Boolean.FALSE);
@@ -495,6 +488,17 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
         } else {
             log.error("wxSurePaymentTypeOrderPayCallSuccess 订单为空: {}", orderNo);
         }
+
+        // 发送消息
+        SendMessageModel sendMessageModel = new SendMessageModel();
+        sendMessageModel.setMessage(JsonUtil.toJson(Map.of("status", status,
+                "paymentNo", expenseFlow.getPaymentNo())));
+        String userId = expenseFlow.getUserId();
+        String topic = String.format("/wechat/pay/%s", userId);
+        sendMessageModel.setTopic(topic);
+        sendMessageModel.setUserId(userId);
+        log.info("mq topic : {}", topic);
+        mqttService.sendMessage(sendMessageModel);
     }
 
     /**