From 4e124926ee6ee682084466067ae37550fca475fa Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 05 八月 2025 11:39:48 +0800
Subject: [PATCH] 代码提交 世界杯修改支付宝资金结算功能

---
 cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java |   38 ++++++++++++++++++++++++++++++++++----
 1 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java b/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
index 7f95b70..fa7103f 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java
@@ -8,10 +8,7 @@
 import com.alipay.api.request.*;
 import com.alipay.api.response.*;
 import com.dsh.competition.util.httpClinet.HttpClientUtil;
-import com.dsh.competition.util.wx.PartnerAppPrepay;
-import com.dsh.competition.util.wx.WXPayUtility;
-import com.dsh.competition.util.wx.WeChatV3SignUtil;
-import com.dsh.competition.util.wx.WxV3PayConfig;
+import com.dsh.competition.util.wx.*;
 import org.apache.commons.collections.map.HashedMap;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
 import org.dom4j.Document;
@@ -848,6 +845,39 @@
             return map2;
         }
     }
+    public ResultUtil weixinRefundV3(String subMchid,String outRefundNo, String transactionId, String totalFee, String notifyUrl) throws Exception {
+        BigDecimal bigDecimal = new BigDecimal(totalFee);
+        int i = bigDecimal.multiply(new BigDecimal("100")).intValue();
+        // TODO: 请准备商户开发必要参数,参考:https://pay.weixin.qq.com/doc/v3/partner/4013080340
+        Create client = new Create(
+                "1681873607",                    // 商户号,是由微信支付系统生成并分配给每个商户的唯一标识符,商户号获取方式参考 https://pay.weixin.qq.com/doc/v3/merchant/4013070756
+                "55714944F7A7E52526F708280B176DCC838F371A",         // 商户API证书序列号,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013053053
+                "/usr/playpai/server/wxV3/1681873607_20250424_cert/apiclient_key.pem",    // 商户API证书私钥文件路径,本地文件路径
+                "PUB_KEY_ID_0116818736072025042400351694002605",      // 微信支付公钥ID,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013038816
+                "/usr/playpai/server/wxV3/pub_key.pem"        // 微信支付公钥文件路径,本地文件路径
+        );
+
+        Create.CreateRequest request = new Create.CreateRequest();
+        request.subMchid = subMchid;
+        request.transactionId = transactionId;
+        request.outRefundNo = outRefundNo;
+        request.reason = "退款";
+        request.notifyUrl = callbackPath+notifyUrl;
+        request.amount = new Create.AmountReq();
+        request.amount.refund = (long) i;
+        request.amount.total = (long) i;
+        request.amount.currency = "CNY";
+        try {
+            Create.Refund response = client.run(request);
+
+            // TODO: 请求成功,继续业务逻辑
+            System.out.println(response);
+        } catch (WXPayUtility.ApiException e) {
+            // TODO: 请求失败,根据状态码执行不同的逻辑
+            e.printStackTrace();
+        }
+        return ResultUtil.success();
+    }
     /**
      * 发起分账回退
      * @param order 微信订单号

--
Gitblit v1.7.1