From 7f0f418c272bdaafd8c067a3559f9c38b99a6778 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期一, 13 四月 2026 15:24:08 +0800
Subject: [PATCH] feat:原微信支付切换为第三方

---
 UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 73 insertions(+), 0 deletions(-)

diff --git a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 31f644a..7ae7422 100644
--- a/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -118,6 +118,9 @@
     private PayMoneyUtil payMoneyUtil;
 
     @Autowired
+    private CbyzxOrderPayHelper cbyzxOrderPayHelper;
+
+    @Autowired
     private IPaymentRecordService paymentRecordService;
 
     @Autowired
@@ -1798,6 +1801,69 @@
         }
     }
 
+    /**
+     * 创博优完成订单支付回调。
+     * out_trade_no 为平台订单号,用于反解订单id和订单类型;
+     * trade_no 为创博优支付流水号,用于标记真实支付流水;
+     * trade_status=TRADE_SUCCESS 才认为支付成功。
+     */
+    @ResponseBody
+    @PostMapping("/base/cbyzxPayOrderTaxi")
+    public Map<String, Object> cbyzxPayOrderTaxi(HttpServletRequest request) {
+        try {
+            JSONObject payload = cbyzxOrderPayHelper.parseCallbackRequest(request);
+            log.info("创博优完成订单支付回调,notify_type={}, out_trade_no={}, trade_no={}, trade_status={}",
+                    cbyzxOrderPayHelper.extractNotifyType(payload),
+                    cbyzxOrderPayHelper.extractOutRequestNo(payload),
+                    cbyzxOrderPayHelper.extractThirdPartyOrderNo(payload),
+                    payload == null ? null : payload.getString("trade_status"));
+            if (payload == null) {
+                return buildCbyzxCallbackResponse(1, "invalid request");
+            }
+            if (!cbyzxOrderPayHelper.isPaySuccess(payload)) {
+                return buildCbyzxCallbackResponse(1, cbyzxOrderPayHelper.extractMessage(payload));
+            }
+
+            String outRequestNo = cbyzxOrderPayHelper.extractOutRequestNo(payload);
+            if (StringUtils.isBlank(outRequestNo)) {
+                return buildCbyzxCallbackResponse(1, "missing outRequestNo");
+            }
+
+            String[] split = outRequestNo.split("_");
+            if (split.length < 2) {
+                return buildCbyzxCallbackResponse(1, "invalid outRequestNo");
+            }
+            Integer id = Integer.valueOf(split[0]);
+            Integer type = Integer.valueOf(split[1]);
+            String recordCode = StringUtils.defaultIfBlank(cbyzxOrderPayHelper.extractRecordCode(payload), outRequestNo);
+            String orderId = StringUtils.defaultIfBlank(cbyzxOrderPayHelper.extractThirdPartyOrderNo(payload), recordCode);
+
+            switch (type) {
+                case 1:
+                    orderPrivateCarService.payOrderPrivateCarCallback(id, orderId, 1, recordCode);
+                    break;
+                case 2:
+                    orderTaxiService.payOrderTaxiCallback(id, orderId, 1, 0, recordCode);
+                    break;
+                case 3:
+                    orderCrossCityService.payOrderCrossCityCallback(id, orderId, 1, recordCode);
+                    break;
+                case 4:
+                    orderLogisticsService.payOrderLogisticsCallback(id, orderId, 1);
+                    break;
+                case 5:
+                    orderLogisticsService.payOrderLogisticsCallback(id, orderId, 1);
+                    break;
+                default:
+                    return buildCbyzxCallbackResponse(1, "unsupported orderType");
+            }
+            return buildCbyzxCallbackResponse(0, "success");
+        } catch (Exception e) {
+            log.error("创博优完成订单支付回调处理失败", e);
+            return buildCbyzxCallbackResponse(1, "fail");
+        }
+    }
+
 
     /**
      * 完成订单支付宝支付回调
@@ -1845,6 +1911,13 @@
         }
     }
 
+    private Map<String, Object> buildCbyzxCallbackResponse(Integer code, String msg) {
+        Map<String, Object> result = new HashMap<>();
+        result.put("code", code);
+        result.put("msg", msg);
+        return result;
+    }
+
 
     /**
      * 小件物流差价微信支付回调

--
Gitblit v1.7.1