From 13ef98c7ec15380f5ef3e0c624e765ca9fbdeb9d Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 20 三月 2025 13:50:21 +0800
Subject: [PATCH] 充电桩bug修改
---
ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java | 47 +++++++++++++++++++++++++++++++++++++----------
1 files changed, 37 insertions(+), 10 deletions(-)
diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
index 6c834a0..2ac473e 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java
@@ -3,7 +3,9 @@
import com.fasterxml.jackson.core.type.TypeReference;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import com.ruoyi.order.api.feignClient.OrderClient;
+import com.ruoyi.order.api.feignClient.ShoppingOrderClient;
import com.ruoyi.payment.api.vo.PaymentOrder;
import com.ruoyi.payment.api.vo.WxRefundNotifyResp;
import com.ruoyi.payment.wx.enums.RefundEnum;
@@ -37,6 +39,12 @@
@Resource
private OrderClient orderClient;
+
+ @Resource
+ private ChargingOrderClient chargingOrderClient;
+
+ @Resource
+ private ShoppingOrderClient shoppingOrderClient;
@@ -93,7 +101,7 @@
*/
@ApiOperation("订单退款")
@PostMapping(value = "refundOrderR")
- public R<String> refundOrderR(@RequestBody WxPaymentRefundModel model) {
+ public R<Map<String, Object>> refundOrderR(@RequestBody WxPaymentRefundModel model) {
Map<String, Object> result = wxV3Pay.refund(model);
log.info("退款结果:{}", result);
// 微信支付退款单号
@@ -108,19 +116,20 @@
String success_time = Objects.nonNull(result.get("success_time")) ? result.get("success_time").toString() : null;
// 退款状态 RefundEnum
String status = result.get("status").toString();
- return R.ok(status);
+ return R.ok(result);
}
/**
* 支付回调
*/
@PostMapping("pay/notify")
@ApiOperation("订单回调")
- public R<Map<String, Object>> payNotify(HttpServletRequest request) throws Exception {
+ public void payNotify(HttpServletRequest request) throws Exception {
try {
Map<String, Object> params = wxV3Pay.verifyNotify(request, new TypeReference<Map<String, Object>>() {});
log.info("支付回调:{}", params);
String outRefundNo = (String) params.get("transaction_id");
String out_trade_no = params.get("out_trade_no").toString();
+ String attach = params.get("attach").toString();
String substring = out_trade_no.substring(0, 2);
switch (substring){
//购物订单
@@ -132,15 +141,16 @@
orderClient.vipCallBack(out_trade_no,outRefundNo);
System.err.println("----收到会员回调");
break;
+ case "CD":
+ chargingOrderClient.chargingOrderWXCallback(out_trade_no, outRefundNo, attach);
+ System.err.println("----充电支付回调");
+ break;
}
-
- return R.ok(params);
+ wxV3Pay.ack();
} catch (Exception e) {
log.error("支付回调异常:{}", e, e);
wxV3Pay.ack(false, e.getMessage());
- return R.fail("回调异常");
}
-
}
/**
@@ -162,7 +172,7 @@
* 退款回调
*/
@PostMapping("refund/notify")
- public R<WxRefundNotifyResp> refundNotify(HttpServletRequest request) throws IOException {
+ public void refundNotify(HttpServletRequest request) throws IOException {
try {
Map<String, Object> params = wxV3Pay.verifyNotify(request, new TypeReference<Map<String, Object>>() {
});
@@ -180,6 +190,24 @@
// 时间不对的话,可以调用 WxTimeUtils.toRfc3339Date(success_time)转换一下
String success_time = params.get("success_time").toString();
if (tradeState.equals(RefundEnum.SUCCESS.name())) {
+ String substring = out_refund_no.substring(0, 3);
+ switch (substring){
+ //充电订单
+ case "CDF":
+ chargingOrderClient.chargingOrderStartupFailureWxRefund(out_refund_no, refund_id, tradeState, success_time);
+ System.err.println("----充电启动失败退款回调通知");
+ break;
+ case "GDF":
+ shoppingOrderClient.cancelShoppingOrderWxRefund(out_refund_no, refund_id, tradeState, success_time);
+ System.err.println("----商城订单取消退款回调通知");
+ break;
+ //充电订单
+ case "GWF":
+ chargingOrderClient.shoppingOrderWxRefund(out_refund_no, refund_id, tradeState, success_time);
+ System.err.println("----管理后台取消购物订单退款回调通知");
+ break;
+ }
+
WxRefundNotifyResp resp = new WxRefundNotifyResp();
resp.setOut_trade_no(out_trade_no);
resp.setOut_refund_no(out_refund_no);
@@ -188,14 +216,13 @@
resp.setRefund_id(refund_id);
resp.setSuccess_time(success_time);
wxV3Pay.ack();
- return R.ok(resp);
} else {
wxV3Pay.ack(false, "不是成功的退款状态");
}
} catch (Exception e) {
+ e.printStackTrace();
wxV3Pay.ack(false, e.getMessage());
}
- return R.fail();
}
/**
--
Gitblit v1.7.1