From caa1d7baa3aa9cbf45f7ba41fbcdccd1c4c17727 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 16 十月 2024 10:05:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java |   39 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 34 insertions(+), 5 deletions(-)

diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
index c5c808c..52f2e96 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
@@ -3,7 +3,9 @@
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
 import com.ruoyi.order.api.feignClient.OrderClient;
+import com.ruoyi.order.api.feignClient.ShoppingOrderClient;
 import com.ruoyi.payment.api.vo.PaymentOrder;
 import com.ruoyi.payment.api.vo.WxRefundNotifyResp;
 import com.ruoyi.payment.wx.enums.RefundEnum;
@@ -37,6 +39,12 @@
 
     @Resource
     private OrderClient orderClient;
+    
+    @Resource
+    private ChargingOrderClient chargingOrderClient;
+
+    @Resource
+    private ShoppingOrderClient shoppingOrderClient;
 
 
 
@@ -115,12 +123,13 @@
      */
     @PostMapping("pay/notify")
     @ApiOperation("订单回调")
-    public R<Map<String, Object>> payNotify(HttpServletRequest request) throws Exception {
+    public void payNotify(HttpServletRequest request) throws Exception {
         try {
             Map<String, Object> params = wxV3Pay.verifyNotify(request, new TypeReference<Map<String, Object>>() {});
             log.info("支付回调:{}", params);
             String outRefundNo = (String) params.get("transaction_id");
             String out_trade_no = params.get("out_trade_no").toString();
+            String attach = params.get("attach").toString();
             String substring = out_trade_no.substring(0, 2);
             switch (substring){
                 //购物订单
@@ -129,17 +138,19 @@
                     System.err.println("----收到购物回调");
                     break;
                 case "HY":
+                    orderClient.vipCallBack(out_trade_no,outRefundNo);
                     System.err.println("----收到会员回调");
                     break;
+                case "CD":
+                    chargingOrderClient.chargingOrderWXCallback(out_trade_no, outRefundNo, attach);
+                    System.err.println("----充电支付回调");
+                    break;
             }
-
-            return R.ok(params);
+            wxV3Pay.ack();
         } catch (Exception e) {
             log.error("支付回调异常:{}", e, e);
             wxV3Pay.ack(false, e.getMessage());
-            return R.fail("回调异常");
         }
-
     }
     
     /**
@@ -179,6 +190,24 @@
             // 时间不对的话,可以调用  WxTimeUtils.toRfc3339Date(success_time)转换一下
             String success_time = params.get("success_time").toString();
             if (tradeState.equals(RefundEnum.SUCCESS.name())) {
+                String substring = out_refund_no.substring(0, 3);
+                switch (substring){
+                    //充电订单
+                    case "CDF":
+                        chargingOrderClient.chargingOrderStartupFailureWxRefund(out_refund_no, refund_id, tradeState, success_time);
+                        System.err.println("----充电启动失败退款回调通知");
+                        break;
+                    case "GDF":
+                        shoppingOrderClient.cancelShoppingOrderWxRefund(out_refund_no, refund_id, tradeState, success_time);
+                        System.err.println("----商城订单取消退款回调通知");
+                        break;
+                    //充电订单
+                    case "GWF":
+                        chargingOrderClient.shoppingOrderWxRefund(out_refund_no, refund_id, tradeState, success_time);
+                        System.err.println("----管理后台取消购物订单退款回调通知");
+                        break;
+                }
+                
                 WxRefundNotifyResp resp = new WxRefundNotifyResp();
                 resp.setOut_trade_no(out_trade_no);
                 resp.setOut_refund_no(out_refund_no);

--
Gitblit v1.7.1