From e39dda2f25df9680e66c9e0dd3a606149e21bcc5 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 22 四月 2026 20:06:37 +0800
Subject: [PATCH] 代码生成

---
 server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java |  124 ++++++++++++++++++++++++++--------------
 1 files changed, 80 insertions(+), 44 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java b/server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java
index def1a64..5202daa 100644
--- a/server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java
+++ b/server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java
@@ -1,98 +1,134 @@
 package com.doumee.config.alipay;
 
+import com.alibaba.fastjson.JSONObject;
 import com.alipay.v3.ApiException;
 import com.alipay.v3.ApiClient;
 import com.alipay.v3.util.model.AlipayConfig;
 import com.alipay.v3.Configuration;
 import com.alipay.v3.api.AlipayFundTransUniApi;
 import com.alipay.v3.model.*;
+import com.doumee.config.mybatis.SpringUtils;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.dao.dto.AlipayTransferDTO;
+import com.wechat.pay.java.core.RSAAutoCertificateConfig;
+import lombok.extern.slf4j.Slf4j;
+import okhttp3.OkHttpClient;
+import com.wechat.pay.java.core.http.*;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 
+import javax.annotation.PostConstruct;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
+@Slf4j
+@org.springframework.context.annotation.Configuration
 public class AlipayFundTransUniTransfer {
 
-    public static void main(String[] args) throws ApiException  {
-        // 鍒濆鍖朣DK
-        ApiClient defaultClient = Configuration.getDefaultApiClient();
-        // 鍒濆鍖朼lipay鍙傛暟锛堝叏灞�璁剧疆涓�娆★級
-        defaultClient.setAlipayConfig(getAlipayConfig());
+    @Autowired
+    private AlipayProperties alipayProperties;
 
+    private static AlipayConfig alipayConfig;
+
+    public static AlipayFundTransUniTransfer me() {
+        return SpringUtils.get().getBean(AlipayFundTransUniTransfer.class);
+    }
+
+    @PostConstruct
+    void init() {
+        this.loadAlipayConfig();
+    }
+
+
+    public void loadAlipayConfig() {
+        try {
+            AlipayConfig config = new AlipayConfig();
+            config.setServerUrl("https://openapi.alipay.com");
+            config.setAppId(alipayProperties.getAppId());
+//            String privateKey  = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEeqqkZztBHfK+vpyBi6ejgDTHZuZ3yiuXds+lRBbMo/g24F5trH+oLHW0gMhSxihFfQBBIpVBXDsPQK4ZkhDWTaOBktnU1UMRoOEiaaZU6EiWy10ePFUmpdXpkCQEp7rc88OwI90p58S3+L+Ckak60WqNwJBdB5YGBaUunryBA78U4zW1KNY7JvoRnZDcFMQiczikwUzhO7EAi0yVrVpsVsc9s87mcS4uOJKx4qb2E83r9RJ1z30db+cIIZRiLP2oNZBLYzgKpOouE+uIgxhQzlh6cOASNZQulXuUjoT/+Y9w4njfl4TmKIXWcJFKIMc6kMiux9tTncpp0TqRwk1tAgMBAAECggEALkSYtJheusnbpRFr95G0i2sggqh3s1PXihZ/dXKgT9Z5GCsj8X3Cng7CNRxykBN73kk+axhCv56Bhej8Vqcv8ddcnqG/TEBgR+Fzws/QTIRau6/uILWic7RvuE2qPbJl7aw1s9/uL/UVPSGFr7CvgltYVUM4e7/Sk1529JCK4XJfoXP5tKJ3OaXssvaFnCKEU8IGQkjRG+lUZJhAHVtClGHtgrhevgRhy2zre5wp2qSa8d/MqrPruSYS02hn9b5Nl6i2PlUS6dGlJ4lrxYTG22ukYYoxAPNPS7gnvmveXonWP7b5tPhKRpZjnoySojz3WECUlhz/v8wM1cDrpq+GQQKBgQDsc7y2rlx4f77a7ORfb5/qWHCOJs1cIzggj0kJ7TgFGe71kbCQ5nywD/Fe5V9OwbW+DCxOME+SrrHeiK4axWiu5si/1JlurJoxNy+4k4ywk3ZA3Nv2aBhlPqfkwDhJ0z7Mgsq2c/YgnVddmSvKZoC39wA77ovks4GDxaBOt8N7PQKBgQDUuPGgzkwcgb60UdaxfMbacrPsW26vDxaE4ceuXo2m8KDiCIqkF2y9r6AdWMTgGGSJwOsk7+FP+21VdRivCg9HcOLWngveUc6xDIuqKHVpemMo3SdCF4Wqf96rRc3VOBr5cfIdWxeorZf5umMyKnIAjAFETOOrK7eLTTmjyLD98QKBgB82S+Plcklpu3zUpnS+nGJn2Du7fYI7F+6cW2zXBn0N5lA+Mgt+kVkAUcFQD9uqkF4M51BO6kIXk10nt6vLAT2NM1S3MKW+XQBAI6l+uKSaYpK/VL3bEdVThwAYK5X7L5/5Z97bwdKeUmkFjhVCoJ0oGrzOiWLgGymUzct2UHSVAoGBAMb+7Cs+Ub0pMrmFBY6r52pbey1Uq0pglvRgMmhQU7sjx50r2GaA81zPer15WVM5/nNPYaoALYqg7jrPe/PjOT/fvpR+7SNg7DZ8QftANfYiY7jKifst/gDt9ePLPS6FedZ4XcJQgOVu34jicAFx64vPbS/zrddm4iEScSVijRBBAoGAXCheERsx8+n16Us/DttXFUa1nc7+D8WR6buM1QMZgQCVF2qp3XtM+FusCKL4+q1+dtag8svLjJFp9QbaAXqX8Zk7rn8wUHbDloPTPy9XWgrPowyL9MPU+e/Rq8Hr6TWPDBd4TU64YzIEfBQYpJXfZbXhVYmK3o7xHXKB1x4vvEM=";
+            config.setPrivateKey(alipayProperties.getPrivateKey());
+            config.setAppCertPath(alipayProperties.getAppCertPath());
+            config.setAlipayPublicCertPath(alipayProperties.getAlipayPublicCertPath());
+            config.setRootCertPath(alipayProperties.getRootCertPath());
+            alipayConfig = config;
+            log.info("鏀粯瀹濋厤缃垵濮嬪寲鎴愬姛, appId={}", config.getAppId());
+        } catch (Exception e) {
+            log.error("鏀粯瀹濋厤缃垵濮嬪寲澶辫触: {}", e.getMessage(), e);
+        }
+    }
+
+
+    /**
+     * 鍗曠瑪杞处鍒版敮浠樺疂璐︽埛
+     *
+     * @param dto 杞处鍙傛暟
+     * @return 鏀粯瀹濊浆璐﹀崟鍙�
+     */
+    public static String transfer(AlipayTransferDTO dto) throws ApiException {
+        ApiClient defaultClient = Configuration.getDefaultApiClient();
         // 鏋勯�犺姹傚弬鏁颁互璋冪敤鎺ュ彛
+        defaultClient.setAlipayConfig(alipayConfig);
         AlipayFundTransUniApi api = new AlipayFundTransUniApi();
         AlipayFundTransUniTransferModel data = new AlipayFundTransUniTransferModel();
-
         // 璁剧疆鍟嗗渚у敮涓�璁㈠崟鍙�
-        data.setOutBizNo("202606300001");
-
+        data.setOutBizNo(dto.getOutBizNo());
         // 璁剧疆璁㈠崟鎬婚噾棰�
         data.setTransAmount("1");
-
         // 璁剧疆鎻忚堪鐗瑰畾鐨勪笟鍔″満鏅�
+        data.setOutBizNo(dto.getOutBizNo());
+        data.setTransAmount(dto.getTransAmount().setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
         data.setBizScene("DIRECT_TRANSFER");
-
         // 璁剧疆涓氬姟浜у搧鐮�
         data.setProductCode("TRANS_ACCOUNT_NO_PWD");
-
         // 璁剧疆杞处涓氬姟鐨勬爣棰�
-        data.setOrderTitle("201905浠e彂");
-
+        data.setOrderTitle("浣i噾鎶ラ叕");
         // 璁剧疆鍘熸敮浠樺疂涓氬姟鍗曞彿
-        data.setOriginalOrderId("20190620110075000006640000063056");
-
+        data.setOriginalOrderId(dto.getOutBizNo());
         // 璁剧疆鏀舵鏂逛俊鎭�
+        data.setOrderTitle("浣i噾鎶ラ叕");
         Participant payeeInfo = new Participant();
-        payeeInfo.setIdentity("15345690849");
-        payeeInfo.setName("姹熻悕");
+        payeeInfo.setIdentity(dto.getPayeeAccount());
+        payeeInfo.setName(dto.getPayeeName());
+        payeeInfo.setIdentity(dto.getPayeeAccount());
+        payeeInfo.setName(dto.getPayeeName());
         payeeInfo.setIdentityType("ALIPAY_LOGON_ID");
         data.setPayeeInfo(payeeInfo);
-
         // 璁剧疆涓氬姟澶囨敞
-        data.setRemark("201905浠e彂");
-
+        data.setRemark("浣i噾鎶ラ叕");
         // 璁剧疆杞处鍦烘櫙鍚嶇О
+        data.setRemark(dto.getRemark());
         data.setTransferSceneName("浣i噾鎶ラ叕");
-
         // 璁剧疆杞处鍦烘櫙涓婃姤淇℃伅
         List<TransferSceneReportInfo> transferSceneReportInfos = new ArrayList<TransferSceneReportInfo>();
         TransferSceneReportInfo transferSceneReportInfos0 = new TransferSceneReportInfo();
         transferSceneReportInfos0.setInfoType("浣i噾鎶ラ叕璇存槑");
-        transferSceneReportInfos0.setInfoContent("3鏈堝鏀挎湇鍔℃姤閰�");
+        transferSceneReportInfos0.setInfoContent("浣i噾鎶ラ叕");
         transferSceneReportInfos.add(transferSceneReportInfos0);
         data.setTransferSceneReportInfos(transferSceneReportInfos);
+        List<TransferSceneReportInfo> reportInfos = new ArrayList<>();
+        TransferSceneReportInfo reportInfo = new TransferSceneReportInfo();
+        reportInfo.setInfoType("浣i噾鎶ラ叕璇存槑");
+        reportInfo.setInfoContent("浣i噾鎶ラ叕");
+        reportInfos.add(reportInfo);
+        data.setTransferSceneReportInfos(reportInfos);
 
         // 璁剧疆杞处涓氬姟璇锋眰鐨勬墿灞曞弬鏁�
         data.setBusinessParams("{\"payer_show_name_use_alias\":\"true\"}");
 
-       /* // 璁剧疆绛惧悕淇℃伅
-        SignData signData = new SignData();
-        signData.setOriSign("EqHFP0z4a9iaQ1ep==");
-        signData.setPartnerId("绛惧悕琚巿鏉冩柟鏀粯瀹濊处鍙稩D");
-        signData.setOriAppId("2021000185629012");
-        signData.setOriOutBizNo("鍟嗘埛璁㈠崟鍙�");
-        signData.setOriSignType("RSA2");
-        signData.setOriCharSet("UTF-8");
-        data.setSignData(signData);
-*/
-
         try {
             AlipayFundTransUniTransferResponseModel response = api.transfer(data);
+            log.info("鏀粯瀹濊浆璐︽垚鍔�, outBizNo={}, orderId={}", dto.getOutBizNo(), response.getOrderId());
+            return response.getOrderId();
         } catch (ApiException e) {
             AlipayFundTransUniTransferDefaultResponse errorObject = (AlipayFundTransUniTransferDefaultResponse) e.getErrorObject();
             System.out.println("璋冪敤澶辫触:" + errorObject);
+            log.error("鏀粯瀹濊浆璐﹀け璐�, outBizNo={}, error={}", dto.getOutBizNo(), errorObject);
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),
+                    "杞处澶辫触锛�" + (errorObject != null ? errorObject.toString() : e.getMessage()));
         }
     }
 
-    private static AlipayConfig getAlipayConfig() {
-        AlipayConfig alipayConfig = new AlipayConfig();
-        alipayConfig.setServerUrl("https://openapi.alipay.com");
-        alipayConfig.setAppId("2021006147660139");
-        String privateKey  = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEeqqkZztBHfK+vpyBi6ejgDTHZuZ3yiuXds+lRBbMo/g24F5trH+oLHW0gMhSxihFfQBBIpVBXDsPQK4ZkhDWTaOBktnU1UMRoOEiaaZU6EiWy10ePFUmpdXpkCQEp7rc88OwI90p58S3+L+Ckak60WqNwJBdB5YGBaUunryBA78U4zW1KNY7JvoRnZDcFMQiczikwUzhO7EAi0yVrVpsVsc9s87mcS4uOJKx4qb2E83r9RJ1z30db+cIIZRiLP2oNZBLYzgKpOouE+uIgxhQzlh6cOASNZQulXuUjoT/+Y9w4njfl4TmKIXWcJFKIMc6kMiux9tTncpp0TqRwk1tAgMBAAECggEALkSYtJheusnbpRFr95G0i2sggqh3s1PXihZ/dXKgT9Z5GCsj8X3Cng7CNRxykBN73kk+axhCv56Bhej8Vqcv8ddcnqG/TEBgR+Fzws/QTIRau6/uILWic7RvuE2qPbJl7aw1s9/uL/UVPSGFr7CvgltYVUM4e7/Sk1529JCK4XJfoXP5tKJ3OaXssvaFnCKEU8IGQkjRG+lUZJhAHVtClGHtgrhevgRhy2zre5wp2qSa8d/MqrPruSYS02hn9b5Nl6i2PlUS6dGlJ4lrxYTG22ukYYoxAPNPS7gnvmveXonWP7b5tPhKRpZjnoySojz3WECUlhz/v8wM1cDrpq+GQQKBgQDsc7y2rlx4f77a7ORfb5/qWHCOJs1cIzggj0kJ7TgFGe71kbCQ5nywD/Fe5V9OwbW+DCxOME+SrrHeiK4axWiu5si/1JlurJoxNy+4k4ywk3ZA3Nv2aBhlPqfkwDhJ0z7Mgsq2c/YgnVddmSvKZoC39wA77ovks4GDxaBOt8N7PQKBgQDUuPGgzkwcgb60UdaxfMbacrPsW26vDxaE4ceuXo2m8KDiCIqkF2y9r6AdWMTgGGSJwOsk7+FP+21VdRivCg9HcOLWngveUc6xDIuqKHVpemMo3SdCF4Wqf96rRc3VOBr5cfIdWxeorZf5umMyKnIAjAFETOOrK7eLTTmjyLD98QKBgB82S+Plcklpu3zUpnS+nGJn2Du7fYI7F+6cW2zXBn0N5lA+Mgt+kVkAUcFQD9uqkF4M51BO6kIXk10nt6vLAT2NM1S3MKW+XQBAI6l+uKSaYpK/VL3bEdVThwAYK5X7L5/5Z97bwdKeUmkFjhVCoJ0oGrzOiWLgGymUzct2UHSVAoGBAMb+7Cs+Ub0pMrmFBY6r52pbey1Uq0pglvRgMmhQU7sjx50r2GaA81zPer15WVM5/nNPYaoALYqg7jrPe/PjOT/fvpR+7SNg7DZ8QftANfYiY7jKifst/gDt9ePLPS6FedZ4XcJQgOVu34jicAFx64vPbS/zrddm4iEScSVijRBBAoGAXCheERsx8+n16Us/DttXFUa1nc7+D8WR6buM1QMZgQCVF2qp3XtM+FusCKL4+q1+dtag8svLjJFp9QbaAXqX8Zk7rn8wUHbDloPTPy9XWgrPowyL9MPU+e/Rq8Hr6TWPDBd4TU64YzIEfBQYpJXfZbXhVYmK3o7xHXKB1x4vvEM=";
-        alipayConfig.setPrivateKey(privateKey);
-        alipayConfig.setAppCertPath("pay/pro/appCertPublicKey.crt");
-        alipayConfig.setAlipayPublicCertPath("pay/pro/alipayCertPublicKey_RSA2.crt");
-        alipayConfig.setRootCertPath("pay/pro/alipayRootCert.crt");
 
-        return alipayConfig;
-    }
 }
\ No newline at end of file

--
Gitblit v1.9.3