From 9f35dc84a6af0a9019e5ae2c8ac4b2c8e2c99fe9 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期一, 26 八月 2024 17:10:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/WxPayController.java |   33 +++++++++++++++++++++++++++++++--
 1 files changed, 31 insertions(+), 2 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 d51b017..81ea044 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
@@ -5,7 +5,7 @@
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.payment.api.vo.PaymentOrder;
 import com.ruoyi.payment.wx.enums.RefundEnum;
-import com.ruoyi.payment.wx.model.WxPaymentRefundModel;
+import com.ruoyi.payment.api.model.WxPaymentRefundModel;
 import com.ruoyi.payment.wx.resp.NotifyV3PayDecodeRespBody;
 import com.ruoyi.payment.wx.utils.WxV3Pay;
 import io.swagger.annotations.Api;
@@ -79,7 +79,30 @@
         // TODO 退款业务处理
         return AjaxResult.success();
     }
-
+    /**
+     * 微信v3支付-订单退款 远程调用
+     *
+     * @return
+     */
+    @ApiOperation("订单退款")
+    @PostMapping(value = "refundOrderR")
+    public R<String> refundOrderR(@RequestBody WxPaymentRefundModel model) {
+        Map<String, Object> result = wxV3Pay.refund(model);
+        log.info("退款结果:{}", result);
+        // 微信支付退款单号
+        String refund_id = result.get("refund_id").toString();
+        // 商户退款单号
+        String out_refund_no = result.get("out_refund_no").toString();
+        // 微信支付订单号
+        String transaction_id = result.get("transaction_id").toString();
+        // 商户订单号 tradeNo
+        String out_trade_no = result.get("out_trade_no").toString();
+        // 退款成功时间
+        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);
+    }
     /**
      * 支付回调
      */
@@ -144,6 +167,12 @@
             // 时间不对的话,可以调用  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, 2);
+                switch (substring){
+                    case "GW":
+                        break;
+
+                }
                 // TODO 退款成功处理
                 wxV3Pay.ack();
             } else {

--
Gitblit v1.7.1