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/service/impl/PaymentCompetitionServiceImpl.java |   39 +++++++++++++++++++++++++++------------
 1 files changed, 27 insertions(+), 12 deletions(-)

diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java
index 45d3a29..f7914ad 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java
@@ -48,6 +48,7 @@
     @Resource
     private StoreClient storeClient;
 
+
     @Autowired
     private UserCompetitionService userCompetitionService;
 
@@ -65,7 +66,8 @@
 
     @Resource
     private StudentClient studentClient;
-    @Autowired
+
+    @Resource
     private PaymentCompetitionMapper paymentCompetitionMapper;
 
 
@@ -246,19 +248,32 @@
         }
 
         String payOrderNo = paymentCompetition.getPayOrderNo();
+        Store store = storeClient.queryStoreById(Integer.valueOf(competition.getStoreId().split(",")[0]));
+
         if (paymentCompetition.getPayType() == 1) {//微信支付
-            Map<String, String> map = payMoneyUtil.wxRefund(payOrderNo, code, amount.toString(), amount.toString(), "/base/competition/weChatCancelPaymentCompetitionCallback");
-            String return_code = map.get("return_code");
-            if (!"SUCCESS".equals(return_code)) {
-                return ResultUtil.error(map.get("return_msg"));
+            if (store.getOperatorId()!=null && store.getOperatorId()!=0){
+                String smidVx= storeClient.getmerchantNumberByOperatorId(store.getOperatorId());
+                if (!StringUtils.hasLength(smidVx)){
+                    System.err.println("运营商未配置微信商户号,获取支付失败!");
+                }
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+                String codeRefund = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);// 退款单号
+                // 运营商退款
+                payMoneyUtil.weixinRefundV3(smidVx, codeRefund, paymentCompetition.getPayOrderNo(), paymentCompetition.getAmount().toString(), "/base/competition/weChatCancelPaymentCompetitionCallback1");
+            }else {
+                Map<String, String> map = payMoneyUtil.wxRefund(payOrderNo, code, amount.toString(), amount.toString(),
+                        "/base/competition/weChatCancelPaymentCompetitionCallback");
+                String return_code = map.get("return_code");
+                if (!"SUCCESS".equals(return_code)) {
+                    return ResultUtil.error(map.get("return_msg"));
+                }
+                String refund_id = map.get("refund_id");
+                paymentCompetition.setRefundOrderNo(refund_id);
+                paymentCompetition.setAppUserId(null);
+                this.updateById(paymentCompetition);
+
+                storeClient.addBackRecord(paymentCompetition.getAmount() + "_" + paymentCompetition.getAppUserId());
             }
-            String refund_id = map.get("refund_id");
-            paymentCompetition.setRefundOrderNo(refund_id);
-            this.updateById(paymentCompetition);
-
-            storeClient.addBackRecord(paymentCompetition.getAmount() + "_" + paymentCompetition.getAppUserId());
-
-
         }
         if (paymentCompetition.getPayType() == 2) {//支付宝支付
             Map<String, String> map = payMoneyUtil.aliRefund(payOrderNo, amount.toString());

--
Gitblit v1.7.1