From df4733091b30b0434a04dacd0e844663114d4cfe Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 09 七月 2025 17:51:56 +0800
Subject: [PATCH] 修改支付宝支付和bug修改

---
 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java |   45 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 37 insertions(+), 8 deletions(-)

diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
index d6e4137..dc89dab 100644
--- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
+++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
@@ -513,7 +513,8 @@
         return payment;
     }
 
-    private String smidVx = "2088330203191220";//平台微信商户号
+    private String smid = "2088330203191220";//平台支付宝商户号
+
 
     /**
      * 支付逻辑
@@ -569,30 +570,29 @@
             }
             //支付宝
             if(payType == 2){
+                String smidRes = smid;// 结算资金到商户号
+
                 worldCupPayment.setAmount(new BigDecimal(num).multiply(worldCup.getCash()));
                 worldCupPayment.setUnitPrice(worldCupPayment.getAmount().divide(new BigDecimal(num)));
                 worldCupPaymentService.save(worldCupPayment);
                 List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCup.getId()).list();
 
                 if (list.isEmpty()){
-                    return payMoneyUtil.alipay("2088330203191220", "社区世界杯报名", "世界杯报名", "", worldCupPayment.getCode(),
-                        worldCupPayment.getAmount().toString(), "/base/worldCup/aliPayWorldCupCallback");
             }else{
                     Integer storeId = list.get(0).getStoreId();
                     Store store = storeClient.queryStoreById(storeId);
                     if (store.getOperatorId()==null||store.getOperatorId()==0){
-                        return payMoneyUtil.alipay("2088330203191220", "社区世界杯报名", "世界杯报名", "", worldCupPayment.getCode(),
-                                worldCupPayment.getAmount().toString(), "/base/worldCup/aliPayWorldCupCallback");
                     }else{
                         String s2 = storeClient.getmerchantNumberAliByOperatorId(store.getOperatorId());
                         System.err.println("支付宝商户号"+s2);
                         if(!StringUtils.hasLength(s2)){
                             return ResultUtil.error("运营商未配置支付宝商户号,获取支付失败!");
                         }
-                        return payMoneyUtil.alipay(s2, "社区世界杯报名", "世界杯报名", "", worldCupPayment.getCode(),
-                                worldCupPayment.getAmount().toString(), "/base/worldCup/aliPayWorldCupCallback");
+                        smidRes=s2;
                     }
                 }
+                return payMoneyUtil.alipay(smidRes, "社区世界杯报名", "世界杯报名", "", worldCupPayment.getCode(),
+                        worldCupPayment.getAmount().toString(), "/base/worldCup/aliPayWorldCupCallback");
                 }
             //玩湃币
             if(payType == 3){
@@ -756,7 +756,7 @@
      * @return
      */
     @Override
-    public ResultUtil paymentWorldCupCallback(String code, String outTradeNo) {
+    public ResultUtil paymentWorldCupCallback(String code, String outTradeNo) throws AlipayApiException {
         WorldCupPayment worldCupPayment = worldCupPaymentService.getOne(new QueryWrapper<WorldCupPayment>().eq("code", code));
         Integer worldCupId = worldCupPayment.getWorldCupId();
         worldCupPayment.setPayStatus(2);
@@ -784,6 +784,35 @@
             worldCupPaymentParticipant.setCreateTime(new Date());
             worldCupPaymentParticipantService.save(worldCupPaymentParticipant);
         }
+        if (worldCupPayment.getPayType()==2){
+            List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCupPayment.getWorldCupId()).list();
+            String resSmid = smid;
+            if (!list.isEmpty()){
+                Integer storeId = list.get(0).getStoreId();
+                Store store = storeClient.queryStoreById(storeId);
+                if (store.getOperatorId()==null||store.getOperatorId()==0){
+                }else{
+                    String s2 = storeClient.getmerchantNumberAliByOperatorId(store.getOperatorId());
+                    System.err.println("支付宝商户号"+s2);
+                    if(!StringUtils.hasLength(s2)){
+                        return ResultUtil.error("运营商未配置支付宝商户号,获取支付失败!");
+                    }
+                    resSmid=s2;
+                }
+            }
+            String finalResSmid = resSmid;
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    try {
+                        Thread.sleep(30000);
+                        payMoneyUtil.confirm(finalResSmid, code, outTradeNo, worldCupPayment.getAmount().toString());
+                    }catch (Exception e){
+                    }
+                }
+            }).start();
+        }
+
         return ResultUtil.success();
     }
 

--
Gitblit v1.7.1