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

---
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java |   47 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
index 75d5bac..0fa1ddd 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -65,6 +65,9 @@
     private PayMoneyUtil payMoneyUtil;
 
     @Autowired
+    private CbyzxOrderPayHelper cbyzxOrderPayHelper;
+
+    @Autowired
     private IOrderTaxiService orderTaxiService;
 
     @Autowired
@@ -153,9 +156,16 @@
         if (null != reassign.getPayType()) {
             if (reassign.getPayType() == 1) {//微信支付
                 reassign.setState(1);
-
-                resultUtil = payMoneyUtil.weixinpay("改派订单", "", reassign.getId() + "_" + reassign.getOrderType() + "_" + UUIDUtil.getRandomCode(5), "0", "/base/wxReassign", "APP", "");
-                paymentRecordService.saveData(1, uid, 2, reassign.getOrderId(), reassign.getOrderType(), 1, 0.0, "", 1);//添加预支付数据
+                if(ToolUtil.isEmpty(driver.getAppletsOpenId())){
+                    return ResultUtil.error("司机未绑定微信小程序openid,无法发起微信支付");
+                }
+                String outTradeNo = buildCbyzxReassignOutTradeNo(reassign.getId(), reassign.getOrderType());
+                JSONObject response = cbyzxOrderPayHelper.createOrder(uid, driver.getAppletsOpenId(), outTradeNo, aDouble);
+                if(!cbyzxOrderPayHelper.isCreateSuccess(response)){
+                    return ResultUtil.error(cbyzxOrderPayHelper.extractMessage(response), response);
+                }
+                resultUtil = ResultUtil.success(response);
+                paymentRecordService.saveData(1, uid, 2, reassign.getOrderId(), reassign.getOrderType(), 1, aDouble, outTradeNo, 1);//添加预支付数据
             }
             if (reassign.getPayType() == 2) {//支付宝
                 reassign.setState(1);
@@ -446,10 +456,17 @@
         if (null != reassign.getPayType()) {
             if (reassign.getPayType() == 1) {//微信支付
                 String[] split1 = ids.split(",");
-
-                resultUtil = payMoneyUtil.weixinpay("改派订单", "", ids + "_3_" + UUIDUtil.getRandomCode(5), totalMoney.toString(), "/base/wxReassign", "APP", "");
+                if(ToolUtil.isEmpty(driver.getAppletsOpenId())){
+                    return ResultUtil.error("司机未绑定微信小程序openid,无法发起微信支付");
+                }
+                String outTradeNo = buildCbyzxBatchReassignOutTradeNo(ids);
+                JSONObject response = cbyzxOrderPayHelper.createOrder(uid, driver.getAppletsOpenId(), outTradeNo, totalMoney);
+                if(!cbyzxOrderPayHelper.isCreateSuccess(response)){
+                    return ResultUtil.error(cbyzxOrderPayHelper.extractMessage(response), response);
+                }
+                resultUtil = ResultUtil.success(response);
                 for (String id : split1) {
-                    paymentRecordService.saveData(1, uid, 2, Integer.valueOf(id), 3, 1, aDouble, "", 1);//添加预支付数据
+                    paymentRecordService.saveData(1, uid, 2, Integer.valueOf(id), 3, 1, aDouble, outTradeNo, 1);//添加预支付数据
                 }
             }
             if (reassign.getPayType() == 2) {//支付宝
@@ -532,6 +549,20 @@
         return reassignMapper.queryList(uid, pageNum, size);
     }
 
+    /**
+     * 创博优单条改派支付单号,保留原有 reassignId_orderType 结构用于回调复用旧逻辑。
+     */
+    private String buildCbyzxReassignOutTradeNo(Integer reassignId, Integer orderType) {
+        return "reassign_" + reassignId + "_" + orderType + "_" + UUIDUtil.getRandomCode(5);
+    }
+
+    /**
+     * 创博优批量跨城改派支付单号,使用前缀避免与跨城完成订单支付冲突。
+     */
+    private String buildCbyzxBatchReassignOutTradeNo(String reassignIds) {
+        return "reassignBatch_" + reassignIds + "_3_" + UUIDUtil.getRandomCode(5);
+    }
+
 
     public static List<Integer> orderIds = new ArrayList<>();
 
@@ -541,8 +572,8 @@
 
     /**
      * 改派支付完成后的操作
-     * @param id            改派单id
-     * @param order_id      工行支付订单
+     * @param id            改派回调中的平台业务单号,格式仍按 reassignId_orderType_random 解析
+     * @param order_id      第三方支付流水号
      * @param type          1=微信,2=支付宝,4=云闪付
      * @throws Exception
      */

--
Gitblit v1.7.1