From ab9cd2c82bd64de8e33510db1d1e78a5b3b4de70 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 20 四月 2026 19:37:20 +0800
Subject: [PATCH] 代码生成
---
server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java | 153 +++++++++++++++++++++++++++++----------------------
1 files changed, 87 insertions(+), 66 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 e495576..198fb45 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,87 +1,108 @@
package com.doumee.config.alipay;
-import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
-import com.alipay.v3.util.model.AlipayConfig;
+import com.alipay.v3.ApiException;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayFundTransUniApi;
import com.alipay.v3.model.*;
+import com.alipay.v3.util.model.AlipayConfig;
+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 lombok.extern.slf4j.Slf4j;
+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;
+/**
+ * 鏀粯瀹濆崟绗旇浆璐﹀伐鍏风被
+ * @author rk
+ * @date 2026/04/20
+ */
+@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());
- // 鏋勯�犺姹傚弬鏁颁互璋冪敤鎺ュ彛
- AlipayFundTransUniApi api = new AlipayFundTransUniApi();
- AlipayFundTransUniTransferModel data = new AlipayFundTransUniTransferModel();
- // 璁剧疆鍟嗗渚у敮涓�璁㈠崟鍙�
- data.setOutBizNo("202606300001");
- // 璁剧疆璁㈠崟鎬婚噾棰�
- data.setTransAmount("1");
- // 璁剧疆鎻忚堪鐗瑰畾鐨勪笟鍔″満鏅�
- data.setBizScene("DIRECT_TRANSFER");
- // 璁剧疆涓氬姟浜у搧鐮�
- data.setProductCode("TRANS_ACCOUNT_NO_PWD");
- // 璁剧疆杞处涓氬姟鐨勬爣棰�
- data.setOrderTitle("201905浠e彂");
- // 璁剧疆鍘熸敮浠樺疂涓氬姟鍗曞彿
- data.setOriginalOrderId("20190620110075000006640000063056");
- // 璁剧疆鏀舵鏂逛俊鎭�
- Participant payeeInfo = new Participant();
- payeeInfo.setIdentity("15345690849");
- payeeInfo.setName("姹熻悕");
- payeeInfo.setIdentityType("ALIPAY_LOGON_ID");
- data.setPayeeInfo(payeeInfo);
- // 璁剧疆涓氬姟澶囨敞
- data.setRemark("201905浠e彂");
- // 璁剧疆杞处鍦烘櫙鍚嶇О
- data.setTransferSceneName("浣i噾鎶ラ叕");
+ private static AlipayConfig alipayConfig;
- // 璁剧疆杞处鍦烘櫙涓婃姤淇℃伅
- List<TransferSceneReportInfo> transferSceneReportInfos = new ArrayList<TransferSceneReportInfo>();
- TransferSceneReportInfo transferSceneReportInfos0 = new TransferSceneReportInfo();
- transferSceneReportInfos0.setInfoType("浣i噾鎶ラ叕璇存槑");
- transferSceneReportInfos0.setInfoContent("3鏈堝鏀挎湇鍔℃姤閰�");
- transferSceneReportInfos.add(transferSceneReportInfos0);
- data.setTransferSceneReportInfos(transferSceneReportInfos);
+ @Autowired
+ private AlipayProperties alipayProperties;
- // 璁剧疆杞处涓氬姟璇锋眰鐨勬墿灞曞弬鏁�
- data.setBusinessParams("{\"payer_show_name_use_alias\":\"true\"}");
+ public static AlipayFundTransUniTransfer me() {
+ return SpringUtils.get().getBean(AlipayFundTransUniTransfer.class);
+ }
- /* // 璁剧疆绛惧悕淇℃伅
- 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);
-*/
+ @PostConstruct
+ void init() {
+ this.loadAlipayConfig();
+ }
+
+ public void loadAlipayConfig() {
try {
- AlipayFundTransUniTransferResponseModel response = api.transfer(data);
- } catch (ApiException e) {
- AlipayFundTransUniTransferDefaultResponse errorObject = (AlipayFundTransUniTransferDefaultResponse) e.getErrorObject();
- System.out.println("璋冪敤澶辫触:" + errorObject);
+ AlipayConfig config = new AlipayConfig();
+ config.setServerUrl("https://openapi.alipay.com");
+ config.setAppId(StringUtils.trimToNull(alipayProperties.getAppId()));
+ config.setPrivateKey(StringUtils.trimToNull(alipayProperties.getPrivateKey()));
+ config.setAppCertPath(StringUtils.trimToNull(alipayProperties.getAppCertPath()));
+ config.setAlipayPublicCertPath(StringUtils.trimToNull(alipayProperties.getAlipayPublicCertPath()));
+ config.setRootCertPath(StringUtils.trimToNull(alipayProperties.getRootCertPath()));
+ alipayConfig = config;
+ log.info("鏀粯瀹濋厤缃垵濮嬪寲鎴愬姛, appId={}", config.getAppId());
+ } catch (Exception e) {
+ log.error("鏀粯瀹濋厤缃垵濮嬪寲澶辫触: {}", e.getMessage(), e);
}
}
- 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");
+ /**
+ * 鍗曠瑪杞处鍒版敮浠樺疂璐︽埛
+ *
+ * @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(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("浣i噾鎻愮幇");
- return alipayConfig;
+ Participant payeeInfo = new Participant();
+ payeeInfo.setIdentity(dto.getPayeeAccount());
+ payeeInfo.setName(dto.getPayeeName());
+ payeeInfo.setIdentityType("ALIPAY_LOGON_ID");
+ data.setPayeeInfo(payeeInfo);
+
+ data.setRemark(dto.getRemark());
+ data.setTransferSceneName("浣i噾鎶ラ叕");
+
+ 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\"}");
+
+ 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();
+ log.error("鏀粯瀹濊浆璐﹀け璐�, outBizNo={}, error={}", dto.getOutBizNo(), errorObject);
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),
+ "杞处澶辫触锛�" + (errorObject != null ? errorObject.toString() : e.getMessage()));
+ }
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.3