获取支付宝client修改

This commit is contained in:
2025-09-02 23:23:26 +08:00
parent 3e3b78d7d8
commit aaa3c16459
3 changed files with 97 additions and 92 deletions

View File

@ -3,41 +3,40 @@ package com.sczx.pay.config;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.AlipayConfig;
import com.alipay.api.DefaultAlipayClient;
import com.sczx.pay.entity.CompanyAlipayConfig;
import com.sczx.pay.mapper.CompanyAlipayConfigMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@Slf4j
@Component
public class AlipayConf {
@Value("${ali.pay.app-id}")
private String appId;
@Value("${ali.pay.gateway-url}")
private String gatewayUrl;
@Value("${ali.pay.privateKey}")
private String privateKey;
// @Value("${alipay.miniapp.publicKey}")
// private String publicKey;
@Value("${ali.pay.appCertPath}")
private String appCertPath;
@Value("${ali.pay.alipayCertPath}")
private String alipayCertPath;
@Value("${ali.pay.alipayRootCertPath}")
private String alipayRootCertPath;
// @Value("${ali.pay.app-id}")
// private String appId;
//
// @Value("${ali.pay.gateway-url}")
// private String gatewayUrl;
//
// @Value("${ali.pay.privateKey}")
// private String privateKey;
//
//// @Value("${alipay.miniapp.publicKey}")
//// private String publicKey;
//
// @Value("${ali.pay.appCertPath}")
// private String appCertPath;
//
// @Value("${ali.pay.alipayCertPath}")
// private String alipayCertPath;
//
// @Value("${ali.pay.alipayRootCertPath}")
// private String alipayRootCertPath;
@Autowired
@ -47,33 +46,35 @@ public class AlipayConf {
private static AlipayClient alipayClient;
public AlipayClient alipayClient() throws AlipayApiException {
if(Objects.isNull(alipayClient)){
AlipayConfig alipayConfig = new AlipayConfig();
//设置网关地址
alipayConfig.setServerUrl(gatewayUrl);
//设置应用ID
alipayConfig.setAppId(appId);
//设置应用私钥
alipayConfig.setPrivateKey(privateKey);
//设置请求格式固定值json
alipayConfig.setFormat("JSON");
//设置字符集
alipayConfig.setCharset("UTF-8");
//设置签名类型
alipayConfig.setSignType("RSA2");
//设置应用公钥证书路径
alipayConfig.setAppCertPath(appCertPath);
//设置支付宝公钥证书路径
alipayConfig.setAlipayPublicCertPath(alipayCertPath);
//设置支付宝根证书路径
alipayConfig.setRootCertPath(alipayRootCertPath);
alipayClient = new DefaultAlipayClient(alipayConfig);
}
return alipayClient;
}
// public AlipayClient alipayClient() throws AlipayApiException {
//
// if(Objects.isNull(alipayClient)){
// AlipayConfig alipayConfig = new AlipayConfig();
// //设置网关地址
// alipayConfig.setServerUrl(gatewayUrl);
// //设置应用ID
// alipayConfig.setAppId(appId);
// //设置应用私钥
// alipayConfig.setPrivateKey(privateKey);
// //设置请求格式固定值json
// alipayConfig.setFormat("JSON");
// //设置字符集
// alipayConfig.setCharset("UTF-8");
// //设置签名类型
// alipayConfig.setSignType("RSA2");
// //设置应用公钥证书路径
// alipayConfig.setAppCertPath(appCertPath);
// //设置支付宝公钥证书路径
// alipayConfig.setAlipayPublicCertPath(alipayCertPath);
// //设置支付宝根证书路径
// alipayConfig.setRootCertPath(alipayRootCertPath);
//
// log.info("支付宝配置信息:{}",alipayConfig);
//
// alipayClient = new DefaultAlipayClient(alipayConfig);
// }
// return alipayClient;
// }
public String getCompanyAppid(Long companyId) throws AlipayApiException {
CompanyAlipayConfig companyAlipayConfig = companyAlipayConfigMapper.getConfigByCompanyId(companyId);
@ -92,22 +93,22 @@ public class AlipayConf {
* @param alipayPublicKey
* @return
* @throws AlipayApiException
*/
public AlipayClient alipayClient(Long companyId, String privateKey, String alipayPublicKey) throws AlipayApiException {
AlipayClient alipayClient = apiClientMap.get(companyId.toString());
if(Objects.isNull(alipayClient)){
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl(gatewayUrl);
alipayConfig.setAppId(appId);
alipayConfig.setPrivateKey(privateKey);
alipayConfig.setFormat("json");
alipayConfig.setAlipayPublicKey(alipayPublicKey);
alipayConfig.setCharset("UTF-8");
alipayConfig.setSignType("RSA2");
alipayClient = new DefaultAlipayClient(alipayConfig);
apiClientMap.put(companyId.toString(),alipayClient);
}
return alipayClient;
}
// */
// public AlipayClient alipayClient(Long companyId, String privateKey, String alipayPublicKey) throws AlipayApiException {
// AlipayClient alipayClient = apiClientMap.get(companyId.toString());
// if(Objects.isNull(alipayClient)){
// AlipayConfig alipayConfig = new AlipayConfig();
// alipayConfig.setServerUrl(gatewayUrl);
// alipayConfig.setAppId(appId);
// alipayConfig.setPrivateKey(privateKey);
// alipayConfig.setFormat("json");
// alipayConfig.setAlipayPublicKey(alipayPublicKey);
// alipayConfig.setCharset("UTF-8");
// alipayConfig.setSignType("RSA2");
// alipayClient = new DefaultAlipayClient(alipayConfig);
// apiClientMap.put(companyId.toString(),alipayClient);
// }
//
// return alipayClient;
// }
}

View File

@ -1,8 +1,8 @@
package com.sczx.pay.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.domain.*;
import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.request.*;
@ -17,6 +17,7 @@ import com.sczx.pay.mapper.OrderPayMapper;
import com.sczx.pay.mapper.PaymentRecordMapper;
import com.sczx.pay.mapper.RefundRecordMapper;
import com.sczx.pay.service.AlipayService;
import com.sczx.pay.utils.AlipaySdkUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -33,6 +34,9 @@ public class AlipayServiceImpl implements AlipayService {
@Autowired
private AlipayConf alipayConf;
@Autowired
private AlipaySdkUtil alipaySdkUtil;
@Value("${ali.pay.app-id}")
private String appId;
@ -71,7 +75,7 @@ public class AlipayServiceImpl implements AlipayService {
public AlipayCreateResponse unifiedOrder(AlipayCreateRequest alipayCreateRequest) {
AlipayCreateResponse response = new AlipayCreateResponse();
try {
AlipayClient alipayClient = alipayConf.alipayClient();
// AlipayClient alipayClient = alipayConf.alipayClient();
// 构造请求参数以调用接口
AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
@ -107,9 +111,9 @@ public class AlipayServiceImpl implements AlipayService {
// 第三方代调用模式下请设置app_auth_token
// request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
AlipayTradeCreateResponse alipayResponse = alipayClient.certificateExecute(request);
log.info("支付宝下单请求:{}", JSONObject.toJSONString(request));
AlipayTradeCreateResponse alipayResponse = alipaySdkUtil.execute(request);
log.info("支付宝下单返回:{}", JSONObject.toJSONString(alipayResponse));
if (alipayResponse.isSuccess()) {
response.setSuccess(true);
response.setOrderStr(alipayResponse.getBody());
@ -139,7 +143,7 @@ public class AlipayServiceImpl implements AlipayService {
public AlipayQueryResponse orderQuery(Long companyId, String outTradeNo) {
AlipayQueryResponse response = new AlipayQueryResponse();
try {
AlipayClient alipayClient = alipayConf.alipayClient();
// AlipayClient alipayClient = alipayConf.alipayClient();
// 构造请求参数以调用接口
// 构造请求参数以调用接口
@ -154,7 +158,7 @@ public class AlipayServiceImpl implements AlipayService {
// 第三方代调用模式下请设置app_auth_token
// request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
AlipayTradeQueryResponse alipayResponse = alipayClient.certificateExecute(request);
AlipayTradeQueryResponse alipayResponse = alipaySdkUtil.execute(request);
if (alipayResponse.isSuccess()) {
response.setSuccess(true);
@ -181,7 +185,7 @@ public class AlipayServiceImpl implements AlipayService {
public AlipayResponse closeOrder(AlipayCloseRequest alipayCloseRequest) {
AlipayResponse response = new AlipayResponse();
try {
AlipayClient alipayClient = alipayConf.alipayClient();
// AlipayClient alipayClient = alipayConf.alipayClient();
// 构造请求参数以调用接口
AlipayTradeCloseRequest request = new AlipayTradeCloseRequest();
AlipayTradeCloseModel model = new AlipayTradeCloseModel();
@ -194,7 +198,7 @@ public class AlipayServiceImpl implements AlipayService {
// 第三方代调用模式下请设置app_auth_token
// request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
AlipayTradeCloseResponse closeResponse = alipayClient.certificateExecute(request);
AlipayTradeCloseResponse closeResponse = alipaySdkUtil.execute(request);
log.info("关闭订单响应 : {}",closeResponse.getBody());
if (closeResponse.isSuccess()) {
@ -219,7 +223,7 @@ public class AlipayServiceImpl implements AlipayService {
public AlipayResponse refund(AlipayRefundRequest request) {
AlipayResponse response = new AlipayResponse();
try {
AlipayClient alipayClient = alipayConf.alipayClient();
// AlipayClient alipayClient = alipayConf.alipayClient();
// 构造请求参数以调用接口
AlipayTradeRefundRequest refundRequest = new AlipayTradeRefundRequest();
AlipayTradeRefundModel model = new AlipayTradeRefundModel();
@ -240,7 +244,7 @@ public class AlipayServiceImpl implements AlipayService {
model.setOutRequestNo(request.getOutRequestNo());
refundRequest.setBizModel(model);
AlipayTradeRefundResponse refundResponse = alipayClient.certificateExecute(refundRequest);
AlipayTradeRefundResponse refundResponse = alipaySdkUtil.execute(refundRequest);
log.info("退款响应 : {}",refundResponse.getBody());
if (refundResponse.isSuccess()) {
@ -267,7 +271,7 @@ public class AlipayServiceImpl implements AlipayService {
public AlipayResponse refundQuery(AlipayRefundRequest refundQueryRequest) {
AlipayResponse response = new AlipayResponse();
try {
AlipayClient alipayClient = alipayConf.alipayClient();
// AlipayClient alipayClient = alipayConf.alipayClient();
// 构造请求参数以调用接口
AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest();
AlipayTradeFastpayRefundQueryModel model = new AlipayTradeFastpayRefundQueryModel();
@ -283,7 +287,7 @@ public class AlipayServiceImpl implements AlipayService {
// 第三方代调用模式下请设置app_auth_token
// request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
AlipayTradeFastpayRefundQueryResponse refundQueryResponse = alipayClient.certificateExecute(request);
AlipayTradeFastpayRefundQueryResponse refundQueryResponse = alipaySdkUtil.execute(request);
log.info("退款查询响应 : {}",refundQueryResponse.getBody());
if (refundQueryResponse.isSuccess() && "REFUND_SUCCESS".equals(refundQueryResponse.getRefundStatus())) {

View File

@ -63,17 +63,17 @@ wechat:
notify-url: https://www.minbo.wang:8020/api/payment/notify
refund-notify-url: https://www.minbo.wang:8020/api/payment/refundNotify
ali:
pay:
app-id: 2021004169641281
gateway-url: https://openapi.alipay.com/gateway.do
notify-url: https://www.minbo.wang:8020/api/alipay/notify
refund-notify-url: https://www.minbo.wang:8020/api/alipay/refundNotify
privateKey: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCQke+mZsxNXJXMn2iUZRkhITWY9qPczwHMgRxl68JRuNzZE2AXhAc2ciF7EGob1y0al4hvJo5JUrDew9Zkv0BocAsPjLma3A9KFgj131xMuLxVvHtktkNSwwW9VIbOOhFAQAy3J9jt8PdEk40UONyu9J5Shjs6jbQ8RogdDuwuzKpNj0ZOTeUqgR6RME4xZ0VqvZe9XhVfq3QtVGttUzOpLPNg6boBy/5RqwC64lVFICMqjKkMW2NklVPBDFO46QwfWEbaA+APnd9bd+9WadyNySPb7kAK8GOlvZYfysy+QkOQdj/oebKWKzdKXpFnF+n52dYzeGTvckt1suDngwAFAgMBAAECggEAcPc39iTZe5HfE9d0FpCxBCw4/1+qRz4SP8SbdiC05Lq5B36WVYm7QRYJh2oaH8sR2XeTCpdsE2tj/Y21l1/Calkyq2HhHlraL5/sPIPeUa0ArVXsbZPmI2N0tq6376l8FWJ3DR876SGjdZh+YtDT0HogxIdS/LwBnB/Y+CvS7fWcqiMjcR4h28RU70CQqxpzYuPfqG6GZmByGyJAcdlhFAYgiksb+qZnkjoaKHsjb61xfUX4z+HGdQLqOlVKfNqIpiO7arXaeAb0RQiB8Lqi7fBvn8LLhlTmM1Hr4gyQO14lJmP5Vp2BIg9m5AC9vRkpZ9l79bUTIepDe9+Ovcx5eQKBgQDWZ5yoz8q8Z5VIfMSVTHO3wpfwOBM92S2c21hTsds7NezsMVqGcTuAcvbMW2i1MwxtS7kahXraRAxZnCDB9ZVJs+88xcgu5QJWZ1rJyrwEwB2gTQhColv+XZW6Ck/J6kk2/PG26rNQG6pg/xrKaMtPnXXyKCsdQTyEpr+mlNIJ2wKBgQCsnf4lIuwftCSm0jI73tO1Bb4U9TCIapKidnIhutbyg6u+hJMUTVDNkjsBnrTN24sSP7Cu4Zs/W4lkDqq86fHNEvnF+FouIfO/CwaGteDBNwXHSLM0D+zEBbK04bfoYi7lYZeDRPygFrM49Sxkp0MAmItDmXqbYRQBlhN1XVzznwKBgQCQ+72fFex1XOJBA0X345v4rlkKMxEn6J2EjXr8FbA3KO8OhQ0/DoD7CkLDzChRJ7UGj4cbXRnHUO69BevM3SHXlhp4ERKeS3Q6M2fcPwDHgZZHGPA2Bw6IQoaGKITt+EUMLx3Q4ILi7+JV9wwJxbV+H+9rEiidfsjKtuuwXMBvswKBgQChpElrCSrH/W8c8FSuD9l7+GapRXkvJW0uyW/S+h1yd66J96erKUNzXW339GAnLWErs4yGFynDyLn9gmaMBR6zBQP0SL5Z2N1hlreDyikvhZDZrtBw/kCexx8zlvMan2Z+0kaJXD6cwuUNfzkVADQUCMTQhpZzjhKn8ZtDGiyCzQKBgQCAhU0khG/ufZfQ089+1G7PAlErBr5MQaG40a2vfIWGtHkYyXq5N/3jow1bd2qsyLuz8mr2sWQeURK+B2xZridf6JtYz3gB+dLw0frlLKk4Q6jeehiRlE8H8tIYe/7KcgTmdIzEbo3lmyGMFAILvr/pSCWeUehQYR9PH91Qyi+Tog==
# publicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArPG4JQ9YY9+tOeImQO0eNkp+NZkenJ9hMHEVVmwAHAI5BoJMCLvAm504BXSpgpqaiCJ6ARTwBkiDz4dyCMVfE3VE8+oMFtXqfHaZLhfd+X9VQNqRCz0HeR2IbjGnnbYxQOAEOM6z092UfNieG00HyU5yREfzjJkIcyuGeGgbIBG1gPpLhXsQKRhQYqp4Exgd4LX6qnKLPL90kJVkQnHcJkp+rCoQ5zS6ZUXE2d/2GzY7xi93uTU2CLMiZ7Vi2OZ1g7xY+yDQzTA/CseveJeW3rM6T8yBjlEJwsywEL5co3YqpJUIMIe/fLjhRRgj+JUq5w0sRqb3+CswQHIjgc71QwIDAQAB
appCertPath: /root/cert/appCertPublicKey_2021005174658269.crt
alipayCertPath: /root/cert/alipayCertPublicKey_RSA2.crt
alipayRootCertPath: /root/cert/alipayRootCert.crt
#ali:
# pay:
# app-id: 2021004169641281
# gateway-url: https://openapi.alipay.com/gateway.do
# notify-url: https://www.minbo.wang:8020/api/alipay/notify
# refund-notify-url: https://www.minbo.wang:8020/api/alipay/refundNotify
# privateKey: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCQke+mZsxNXJXMn2iUZRkhITWY9qPczwHMgRxl68JRuNzZE2AXhAc2ciF7EGob1y0al4hvJo5JUrDew9Zkv0BocAsPjLma3A9KFgj131xMuLxVvHtktkNSwwW9VIbOOhFAQAy3J9jt8PdEk40UONyu9J5Shjs6jbQ8RogdDuwuzKpNj0ZOTeUqgR6RME4xZ0VqvZe9XhVfq3QtVGttUzOpLPNg6boBy/5RqwC64lVFICMqjKkMW2NklVPBDFO46QwfWEbaA+APnd9bd+9WadyNySPb7kAK8GOlvZYfysy+QkOQdj/oebKWKzdKXpFnF+n52dYzeGTvckt1suDngwAFAgMBAAECggEAcPc39iTZe5HfE9d0FpCxBCw4/1+qRz4SP8SbdiC05Lq5B36WVYm7QRYJh2oaH8sR2XeTCpdsE2tj/Y21l1/Calkyq2HhHlraL5/sPIPeUa0ArVXsbZPmI2N0tq6376l8FWJ3DR876SGjdZh+YtDT0HogxIdS/LwBnB/Y+CvS7fWcqiMjcR4h28RU70CQqxpzYuPfqG6GZmByGyJAcdlhFAYgiksb+qZnkjoaKHsjb61xfUX4z+HGdQLqOlVKfNqIpiO7arXaeAb0RQiB8Lqi7fBvn8LLhlTmM1Hr4gyQO14lJmP5Vp2BIg9m5AC9vRkpZ9l79bUTIepDe9+Ovcx5eQKBgQDWZ5yoz8q8Z5VIfMSVTHO3wpfwOBM92S2c21hTsds7NezsMVqGcTuAcvbMW2i1MwxtS7kahXraRAxZnCDB9ZVJs+88xcgu5QJWZ1rJyrwEwB2gTQhColv+XZW6Ck/J6kk2/PG26rNQG6pg/xrKaMtPnXXyKCsdQTyEpr+mlNIJ2wKBgQCsnf4lIuwftCSm0jI73tO1Bb4U9TCIapKidnIhutbyg6u+hJMUTVDNkjsBnrTN24sSP7Cu4Zs/W4lkDqq86fHNEvnF+FouIfO/CwaGteDBNwXHSLM0D+zEBbK04bfoYi7lYZeDRPygFrM49Sxkp0MAmItDmXqbYRQBlhN1XVzznwKBgQCQ+72fFex1XOJBA0X345v4rlkKMxEn6J2EjXr8FbA3KO8OhQ0/DoD7CkLDzChRJ7UGj4cbXRnHUO69BevM3SHXlhp4ERKeS3Q6M2fcPwDHgZZHGPA2Bw6IQoaGKITt+EUMLx3Q4ILi7+JV9wwJxbV+H+9rEiidfsjKtuuwXMBvswKBgQChpElrCSrH/W8c8FSuD9l7+GapRXkvJW0uyW/S+h1yd66J96erKUNzXW339GAnLWErs4yGFynDyLn9gmaMBR6zBQP0SL5Z2N1hlreDyikvhZDZrtBw/kCexx8zlvMan2Z+0kaJXD6cwuUNfzkVADQUCMTQhpZzjhKn8ZtDGiyCzQKBgQCAhU0khG/ufZfQ089+1G7PAlErBr5MQaG40a2vfIWGtHkYyXq5N/3jow1bd2qsyLuz8mr2sWQeURK+B2xZridf6JtYz3gB+dLw0frlLKk4Q6jeehiRlE8H8tIYe/7KcgTmdIzEbo3lmyGMFAILvr/pSCWeUehQYR9PH91Qyi+Tog==
# # publicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArPG4JQ9YY9+tOeImQO0eNkp+NZkenJ9hMHEVVmwAHAI5BoJMCLvAm504BXSpgpqaiCJ6ARTwBkiDz4dyCMVfE3VE8+oMFtXqfHaZLhfd+X9VQNqRCz0HeR2IbjGnnbYxQOAEOM6z092UfNieG00HyU5yREfzjJkIcyuGeGgbIBG1gPpLhXsQKRhQYqp4Exgd4LX6qnKLPL90kJVkQnHcJkp+rCoQ5zS6ZUXE2d/2GzY7xi93uTU2CLMiZ7Vi2OZ1g7xY+yDQzTA/CseveJeW3rM6T8yBjlEJwsywEL5co3YqpJUIMIe/fLjhRRgj+JUq5w0sRqb3+CswQHIjgc71QwIDAQAB
# appCertPath: /root/cert/appCertPublicKey_2021005174658269.crt
# alipayCertPath: /root/cert/alipayCertPublicKey_RSA2.crt
# alipayRootCertPath: /root/cert/alipayRootCert.crt
cert-path: /root/cert/