From ebc8a82dba933c3da335081e0b69bf3417e4c991 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 22 十一月 2025 14:38:54 +0800
Subject: [PATCH] 斗拱

---
 DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/huifu/biz/DouGongPayUtil.java                      |    4 +-
 DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java |   49 ++++++++++++++++++++++++
 DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java                        |   43 +++++++++++++++++++++
 3 files changed, 94 insertions(+), 2 deletions(-)

diff --git a/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java b/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java
index fb9cff9..b45e660 100644
--- a/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java
+++ b/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java
@@ -104,6 +104,49 @@
         }
     }
 
+    @ResponseBody
+    @PostMapping("/DGReassignZfb")
+    public void DGReassignZfb(HttpServletRequest request, HttpServletResponse response){
+        try {
+            String sign =request.getParameter("sign");
+            String resp_data = request.getParameter("resp_data");
+            System.out.println(sign);
+            System.out.println(resp_data);
+            resp_data =  resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
+            boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+//            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+
+
+            if(verify){
+                JSONObject jsonObject = JSONObject.parseObject(resp_data);
+                String order_id = jsonObject.get("out_trans_id").toString();
+                String out_trade_no = jsonObject.get("req_seq_id").toString();
+                String trans_stat = jsonObject.get("trans_stat").toString();
+                if("S".equals(trans_stat)){
+                    // TODO 司机云闪付 改派微信回调支付充值
+//                    String[] s = id.split("_");
+//                    if(Integer.valueOf(s[1]) == 3) {//跨城订单
+//                        System.out.println("跨城订单");
+//                        String[] split1 = s[0].split(",");
+//                        List<Reassign> reassigns = reassignService.selectBatchIds(Arrays.asList(split1));
+//                        cloudPay(reassigns.get(0).getOriginalDriverId(),map.get("total_fee"),map.get("transaction_id"),1);
+//                    }else {
+//                        Reassign reassign = reassignService.selectById(s[0]);
+//                        cloudPay(reassign.getOriginalDriverId(),map.get("total_fee"),map.get("transaction_id"),1);
+//                    }
+                    PrintWriter out = response.getWriter();
+                    out.write(200);
+                    out.flush();
+                    out.close();
+                    String[] split = out_trade_no.split("_");
+                    reassignService.payReassign(split[0], order_id, 2);
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
 
 
 
diff --git a/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java b/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
index 2453413..858771d 100644
--- a/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
+++ b/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
@@ -327,6 +327,55 @@
             e.printStackTrace();
         }
     }
+    /**
+     * 完成订单微信支付 斗拱
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/DGPayCrossCityZfb")
+    public void DGPayCrossCityZfb(HttpServletRequest request, HttpServletResponse response){
+        try {
+
+            String sign =request.getParameter("sign");
+            String resp_data = request.getParameter("resp_data");
+            System.out.println(sign);
+            System.out.println(resp_data);
+            resp_data =  resp_data.replaceAll("& #40;", "(").replaceAll("& #41;",")");
+            boolean verify = RsaUtils.verify(resp_data, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsWrruP9JBxrUd8uEX5Z8y7pg/UIr5RNHSgDnHqNI1hbi2MfTzB5vZ275wSFFaLDD9BesgDWqsUepPS/opROlDCg9y6WYH8mkN23NmHL9F8kT48OMmH722am+Hp0XVMMwXqA0oNt4f7oW6kDemjZW8/RT4vIE7cyxoxSsVRvjqSpx9wDgFLPWh3o0pHQaoxLyeUsGBATHFrxEDlosBvsuXjMcgjPKXALrcemzKOhBmBkLgyxNVmh61ZK+FNXd+/X4PeZlnWf54NRQAUKe1308E6IIaszo+CjneKuhj1m/X4f7AIvxAqlhuCV5E/DfKRmGopxaWqdtE960Y/H4SmBh2wIDAQAB", sign);
+//            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+            if(verify){
+                JSONObject jsonObject = JSONObject.parseObject(resp_data);
+                String transaction_id = jsonObject.get("out_trans_id").toString();
+                String out_trade_no = jsonObject.get("req_seq_id").toString();
+                String trans_stat = jsonObject.get("trans_stat").toString();
+                if("S".equals(trans_stat)){
+                    System.out.println("完成订单微信支付回调"+jsonObject);
+                    PrintWriter out = response.getWriter();
+                    out.write(200);
+                    out.flush();
+                    out.close();
+
+                    String[] split = out_trade_no.split("_");
+                    Integer id = Integer.valueOf(split[0]);
+                    Integer type = Integer.valueOf(split[1]);
+                    // TODO 司机云闪付 跨城出行微信回调支付充值
+//                    OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id);
+//                    if(Objects.isNull(orderCrossCity)){
+//                        System.out.println("该订单不存在");
+//                        throw new RuntimeException("该订单不存在");
+//                    }
+//                    cloudPay(orderCrossCity.getDriverId(),map.get("total_fee"),map.get("transaction_id"),1);
+                    switch (type){
+                        case 3:
+                            orderCrossCityService.payOrderCrossCityCallback(id, transaction_id, 2);
+                            break;
+                    }
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
 
 
     /**
diff --git a/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/huifu/biz/DouGongPayUtil.java b/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/huifu/biz/DouGongPayUtil.java
index 28585d6..7d17a34 100644
--- a/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/huifu/biz/DouGongPayUtil.java
+++ b/DriverJYXTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/huifu/biz/DouGongPayUtil.java
@@ -172,11 +172,11 @@
         switch (callType) {
             case 1:
                 // 订单支付
-                notifyUrl = callbackPath + "/base/wxPayCrossCity";
+                notifyUrl = callbackPath + "/base/DGPayCrossCityZfb";
                 break;
             case 2:
                 // 改派
-                notifyUrl = callbackPath +"/base/wxReassign";
+                notifyUrl = callbackPath +"/base/DGReassignZfb";
                 break;
         }
         String a = "{\n" +

--
Gitblit v1.7.1