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