From 22365a84b9e181c2fc2d9084c90024a2728d200e Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 30 Jun 2026 17:02:03 +0800
Subject: [PATCH] feat(order): 添加XT支付功能和确认收款功能
---
src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallOrderController.java | 45 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 44 insertions(+), 1 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallOrderController.java
index 1c27fb6..2cf681e 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallOrderController.java
@@ -176,6 +176,49 @@
return new FebsResponse().success().data(iXcxPayService.getTemplateId());
}
+ // ==================== XT 支付 ====================
+
+ /**
+ * 创建订单并通过 XT 支付
+ * <p>
+ * 流程:创建订单 → 通过 XT 支付链接
+ * <p>
+ */
+ @ApiOperation(value = "创建订单-XT支付", notes = "创建订单并返回XT支付")
+ @PostMapping(value = "/createOrderByXtPay")
+ @Limit(key = "createOrderByXtPay", period = 1, count = 1, name = "XT下单", prefix = "limit", limitType = LimitType.IP)
+ public FebsResponse createOrderByXtPay(@RequestBody @Validated XtPayCreateOrderDto lwPayDto) {
+ // 1. 创建订单
+ AddOrderDto addOrderDto = lwPayDto.getOrder();
+ Long orderId = mallOrderInfoService.createOrder(addOrderDto);
+
+ // 2. 获取订单详情
+ MallOrderInfo order = mallOrderInfoService.getById(orderId);
+ if (order != null
+ && OrderStatusEnum.WAIT_PAY.getValue() == order.getStatus()
+ ){
+ return mallOrderInfoService.createOrderByXtPay();
+ }
+ return new FebsResponse().fail().message("Payment channel exception");
+ }
+
+ @ApiOperation(value = "XT支付", notes = "XT支付")
+ @PostMapping(value = "/payOrderByXtPay", produces = "application/json")
+ public FebsResponse payOrderByXtPay(@RequestBody @Validated ApiOrderPayDto payDto) {
+
+ Long orderId = payDto.getOrderId();
+ Integer payType = payDto.getPayType();
+ // 2. 获取订单详情
+ MallOrderInfo order = mallOrderInfoService.getById(orderId);
+ if (order != null
+ && OrderConstants.PAY_TYPE_XT == payType
+ && OrderStatusEnum.WAIT_PAY.getValue() == order.getStatus()
+ ){
+ return mallOrderInfoService.createOrderByXtPay();
+ }
+ return new FebsResponse().fail().message("Payment channel exception");
+ }
+
// ==================== LWPAY 支付 ====================
/**
@@ -260,7 +303,7 @@
result.put("orderNo", order.getOrderNo());
result.put("amount", order.getAmount());
result.put("payUrl", payUrl);
- return new FebsResponse().success().data(result).message("下单成功");
+ return new FebsResponse().success().data(result).message("success");
} catch (Exception e) {
log.error("LWPAY 代收下单失败: orderId={}", orderId, e);
return new FebsResponse().fail().message("Payment channel exception: " + e.getMessage());
--
Gitblit v1.9.1