支付宝切换证书模式

pull/1121/head
梁宇奇 2025-07-08 17:55:02 +08:00
parent 7f28afd984
commit e3cc4ec69d
4 changed files with 71 additions and 62 deletions

View File

@ -67,7 +67,7 @@ public class AlipayCallbackController extends XktBaseController {
boolean signVerified = false;
try {
//验证签名
signVerified = AlipaySignature.rsaCheckV1(params, paymentManger.getAlipayPublicKey(),
signVerified = AlipaySignature.rsaCertCheckV1(params, paymentManger.getAlipayPublicCertPath(),
paymentManger.getCharset(), paymentManger.getSignType());
} catch (AlipayApiException e) {
logger.error("支付宝验签异常", e);

View File

@ -210,8 +210,10 @@ yto:
# 支付宝配置
alipay:
appId: 9021000144616672
privateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3x52ARikELwpOPvPcpY9jj7aEWIPivfBwkf3YRyUKnM7L6mOTxD1v3b7QLcL1+l0QmvOPSGgt2O3Qbjtvq+5ih4T32TlAzHGe8VqGVqrEv7ANQicsXz600ze5LdxCDRgBZWhO/GroGJKfenHf7K+arN4KXWWmHyZHCYD5z85TEvZZoA9e9MTMskXeDS8+fwP6McuNf4fR07kVuzblks+wWm1PsWfxFM7qNwSYKXbmEoyDe7+M9vBr7cwuj2OB3PEtj/FZjKMxVnFyVm61KiFAGUf3oUqWmPASTPDkFboRCS/njv980hk3sPba/qMDfMEpjoMZrcLBVzoj747oEi/DAgMBAAECggEAcVoXlRSxG7l/278MXl1nUXtEkeCeh+2rLWN+dDV9bUxGaJOLE4sIccUNeg2foGPpnuJTs15vk0endtVmp3weLntz0gMTQxpWQjiPIyi1b2Djz2msC7w7SwCz7+2PWtYEpmfLrFwX/Eubs+2r6vdrYDWbRj1RAuNXkp0UBgDcO3P9AFeGln5gUWxni4biN6B9sGGdsSwcm1A9biBPRsH2zMSVVWkhLVq+S73smm2Sh7WTIVEyeAuWEDeMs5oI2jQjPHMlUKmWW6JZ3uD5xbRm3Nkvve/nvfJ4ZXx58ABTI9EWzcBlEuLYef4T+P9q4KHZQljpJ4UliIxUVIDSk3GNMQKBgQDevjYnLW2FBNDYQvPf6FkD2iNzKFe80cQYR0+/jiSBgkmtQhXZgyJ2ZqQ5t20MjgLpeY0WJL2twBlFcYGico6Vnv+JMiJDtIjTu1UozAqV2VPeJ34nX34nqJptGwehiPXJupAiulAWtvTqsiYWlFHsr3dMtj6z07M+gDV8PU7P/QKBgQDTOCGgdrS3XYD680eH9vGKbH1DpIOMr3JokLk6kv4yui9Jxk5DMCxcJWkEQRnCrw2UYM8PfX17FqXrwhccmR9hskSmmbLONYzk4SDB73fM2nPqBw+VLO6jbWctylUsGaYfVxDOLDWPQkktKUsHK8pQHLNQ4jwlP5SGQUoIM/OqvwKBgHfRrmPIxh9GBeovqeyKmke+Mk+iJgBGfsvooHeUyQJ5yZRP9lz5c7JpaHI7v4d/ZQWfA0wkG3y5115JvshaA2VtEF0HAPOWy/vJy/eUOyV8sObSK8SWU9CVm+yRG7vDZyRLHXnw62AsrvcJOf/vbVp60RwM9RHbEZLPePYKLLkpAoGADPMaDK56ceuHptsXfZyEPopcO7NwZUW0a/jDgnXUo+OKVqmTzsa7UYLxp1MeczMsT/aHe1mkQdGnpoalyBkTNXgqgVRXBBGAa9/plDpMTADwrl50dB7nGpnwg3wuMJ/58V3zJ9DKD9huiBhKA0yKANNhownbyiTVxE1oboxQ2h0CgYEAkV4hjGe4t6mu5rhqvuIZkDskjuSOwO0dZsGXBZ/sOZusKNmskxeNZht4BajnATN4EaPg265k8ytWnOEQH041J8Wac1M+jAQQp6D1nkQWZZlrclTu7xvM+p6ypVtqNFTseIQtEhtyPw+fcsYrXM4u8LHpGlAzlwQ30lFg+K/Q++Y=
alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkiTTeQLIkyVHnYiNmRKEtsdlwKftUySN1SLkrhn6CgmHl5ovjPeYteweZEZmsf2kt6wRnaLkODVP7xUQiRVC2cu6StdJyvDzyiYI00u72PvSOvaWHcpzgKqTFpGiQseJQlHnI8U3ob4PxfJylBy8RDQHG9fZwNY1WOCsnSb3m2ufV1EQIjndzTq13yQE6jCz639rO8atlAG3PtJW/QRiGUzyGaOuKsS4HRzPbbpmVtsXoN76+x+WLWkeqlTBEu35X4Hdbkf1C36wp3b68sI5fVyLksF6elRv/It4aUzjXSXbO/Dx+zvMIN01FgwaFV6nLh++k3qlmo87p4I+hvsGiQIDAQAB
appPrivateKey: MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCLx2n7L1HNr8Tq92TUNJ/q66hWWHvoAwDxP27mpOrVbBwMCquxOW8ajMXooO6S/+d5PCZ1CXEjT2JpA264ptuY3LWnVbBWg6gxFzq2dX8XKk10GxdYQ63H3ZGHdPSgvUnHrG7AWSckbPSyutWXkeZITQJiD0Md/YxtjwxlW490EwTWRGLPgjoooJ9CdDgmvMgwJzUqV03rHLAPRVW1MhEBg4dJ2XtSMY0UzVejb+esOyrshNHTPoTQNUIONjPMEiihX7/ujRxUif8c/AYQh8sF3igVXSojghkJAhGboZbdBXf5VRx4DURgR0O1oujE1eG+qxYYk00Z5wa14+FPlP7RAgMBAAECggEAKru4hvach8mo5jzkMow0J9oMCPncR75DV34RJapdsQnwOS4592Cbuv42szwgNAjQd5wQFc/hKu5mI7zM6N76W+1+C76CvrBZh0iWxpl9VVO1gj2WEYH/aw8uIr962nmESOtKoLug393/oXTFQCV2xbvlcp0/47dUa1pEa+hmHxINZ7CJGQKiCjL9826lvpOyXigHaTYDu/fZluviu73lPIFyE62ZvEPfEPhpdt41pP/7ooCqarPMvqHb+7joKFSHDLJwjqdmZreh0vy5r9Dl2v79q1sbZ/30DWxa4Beb/y6SJT5lC2T7s+JZFIJ8igHXPsd7tY46Ko2AJmAg/JdvwQKBgQDNPniD8ssGdJ/M4jRrjqMwqpixBZvkgQwyl2HNp9LKRGDTuxT+4oDe9Y8e1a/jzYx64MJWOr0syR3HNggb09/mLpba8SBWqUqHCdU20hLbkAhs9kC18eBTAyKP1lDJgGKIM9AckYnJl0wwk6uD8r960kwkPjPNhLniuUMPMaDJbQKBgQCuWH/3EU8of/ZKpzsH90u3fdwhFJBQzlf4ZhWYnbFyDDdrEnobGlG642b5l6F/QTKj8+NvitTCWjYPZSz4hbSk3eNaN71bIf84KAWu1ab/+DNaMNXwzoQhXGTK86OLf8QWt93l90BIvUA2KACunUM1L/OwN5G9uFfH/nbrnFawdQKBgCfVGvCIu0xKcAUEVaYWLaexRCb+7q1fOi3LYWjXTDqDIMOWyFFbRiV/RMJ4OEWey8fBPRYdGj/J3GSgINy9tvNmUVK2f08yVct1ZhLYnF5OSsRS2mY1RhL2RcvijRU+PGEwpRAWUsZz/Y5j6mKWRwEgNTTHeahGPQk6aUBWolzVAoGAMml4pvIkV2uYxcFROl5xUF9eNVqC2DqyCStLd1OxqW6K37T6Bbg4hbeXYPhNRESP5gRxcSFNn90B4LW6qSnQMBPQ15dic2WDLLO14PX6Ue1su9l/IyAz6ImUw3Jribyp8H+98+7ocZ/3XzF18QecFVcGOZ/3zkntZ/DWZg5QqrkCgYBELNA1N1td+MA0VrncUF8c5kH7XI6KGfYqZR6QW4ouQa2Xu5WhfWAv68GsEBUmTIFDZQHNOKMC6qNq4BrGZ+C0S3A8FZIBvo3ztKxG1MQvznuh28vjN/yQu0qAx55JPXvJJVSPfvGXIk4lvhw53ZwYTvHjyR517AiQKemdESKQKw==
appCertPath: C:/alipay/test/appPublicCert.crt
rootCertPath: C:/alipay/test/alipayRootCert.crt
alipayPublicCertPath: C:/alipay/test/alipayPublicCert.crt
notifyUrl: http://101.34.251.164:9310/rest/v1/alipay-callback/notify
returnUrl:
signType: RSA2

View File

@ -2,6 +2,7 @@ package com.ruoyi.common.constant;
import io.jsonwebtoken.Claims;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Locale;
@ -265,4 +266,8 @@ public class Constants
*/
public static final Set<Integer> STORE_RECOMMEND_INSERT_POSITIONS = new HashSet<>(Arrays.asList(2, 9, 18, 27, 36));
public static final String ALIPAY_DEFAULT_FORMAT = "json";
public static final BigDecimal ZERO_POINT_ONE = BigDecimal.valueOf(0.1);
}

View File

@ -6,11 +6,13 @@ import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson2.JSON;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.AlipayConfig;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.diagnosis.DiagnosisUtils;
import com.alipay.api.domain.*;
import com.alipay.api.request.*;
import com.alipay.api.response.*;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.framework.notice.fs.FsNotice;
import com.ruoyi.xkt.domain.StoreOrderDetail;
@ -24,6 +26,7 @@ import com.ruoyi.xkt.enums.EPayStatus;
import com.ruoyi.xkt.manager.PaymentManager;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@ -38,56 +41,68 @@ import java.util.Date;
@Slf4j
@Getter
@Component
public class AliPaymentMangerImpl implements PaymentManager {
public class AliPaymentMangerImpl implements PaymentManager, InitializingBean {
private static final String DEFAULT_FORMAT = "json";
private static final String PAY_PRODUCT_CODE_WEB = "FAST_INSTANT_TRADE_PAY";
private static final String PAY_PRODUCT_CODE_WAP = "QUICK_WAP_WAY";
private static final String PAY_PRODUCT_CODE_APP = "QUICK_MSECURITY_PAY";
/**
* ID,APPIDAPPID
*/
@Value("${alipay.appId:9021000144616672}")
@Value("${alipay.appId:}")
private String appId;
/**
* PKCS8RSA2
*/
@Value("${alipay.privateKey:MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3x52ARikELwpOPvPcpY9jj7aEWIPivfBwkf3YRyUKnM7L6mOTxD1v3b7QLcL1+l0QmvOPSGgt2O3Qbjtvq+5ih4T32TlAzHGe8VqGVqrEv7ANQicsXz600ze5LdxCDRgBZWhO/GroGJKfenHf7K+arN4KXWWmHyZHCYD5z85TEvZZoA9e9MTMskXeDS8+fwP6McuNf4fR07kVuzblks+wWm1PsWfxFM7qNwSYKXbmEoyDe7+M9vBr7cwuj2OB3PEtj/FZjKMxVnFyVm61KiFAGUf3oUqWmPASTPDkFboRCS/njv980hk3sPba/qMDfMEpjoMZrcLBVzoj747oEi/DAgMBAAECggEAcVoXlRSxG7l/278MXl1nUXtEkeCeh+2rLWN+dDV9bUxGaJOLE4sIccUNeg2foGPpnuJTs15vk0endtVmp3weLntz0gMTQxpWQjiPIyi1b2Djz2msC7w7SwCz7+2PWtYEpmfLrFwX/Eubs+2r6vdrYDWbRj1RAuNXkp0UBgDcO3P9AFeGln5gUWxni4biN6B9sGGdsSwcm1A9biBPRsH2zMSVVWkhLVq+S73smm2Sh7WTIVEyeAuWEDeMs5oI2jQjPHMlUKmWW6JZ3uD5xbRm3Nkvve/nvfJ4ZXx58ABTI9EWzcBlEuLYef4T+P9q4KHZQljpJ4UliIxUVIDSk3GNMQKBgQDevjYnLW2FBNDYQvPf6FkD2iNzKFe80cQYR0+/jiSBgkmtQhXZgyJ2ZqQ5t20MjgLpeY0WJL2twBlFcYGico6Vnv+JMiJDtIjTu1UozAqV2VPeJ34nX34nqJptGwehiPXJupAiulAWtvTqsiYWlFHsr3dMtj6z07M+gDV8PU7P/QKBgQDTOCGgdrS3XYD680eH9vGKbH1DpIOMr3JokLk6kv4yui9Jxk5DMCxcJWkEQRnCrw2UYM8PfX17FqXrwhccmR9hskSmmbLONYzk4SDB73fM2nPqBw+VLO6jbWctylUsGaYfVxDOLDWPQkktKUsHK8pQHLNQ4jwlP5SGQUoIM/OqvwKBgHfRrmPIxh9GBeovqeyKmke+Mk+iJgBGfsvooHeUyQJ5yZRP9lz5c7JpaHI7v4d/ZQWfA0wkG3y5115JvshaA2VtEF0HAPOWy/vJy/eUOyV8sObSK8SWU9CVm+yRG7vDZyRLHXnw62AsrvcJOf/vbVp60RwM9RHbEZLPePYKLLkpAoGADPMaDK56ceuHptsXfZyEPopcO7NwZUW0a/jDgnXUo+OKVqmTzsa7UYLxp1MeczMsT/aHe1mkQdGnpoalyBkTNXgqgVRXBBGAa9/plDpMTADwrl50dB7nGpnwg3wuMJ/58V3zJ9DKD9huiBhKA0yKANNhownbyiTVxE1oboxQ2h0CgYEAkV4hjGe4t6mu5rhqvuIZkDskjuSOwO0dZsGXBZ/sOZusKNmskxeNZht4BajnATN4EaPg265k8ytWnOEQH041J8Wac1M+jAQQp6D1nkQWZZlrclTu7xvM+p6ypVtqNFTseIQtEhtyPw+fcsYrXM4u8LHpGlAzlwQ30lFg+K/Q++Y=}")
private String privateKey;
/**
* ,https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
*/
@Value("${alipay.alipayPublicKey:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkiTTeQLIkyVHnYiNmRKEtsdlwKftUySN1SLkrhn6CgmHl5ovjPeYteweZEZmsf2kt6wRnaLkODVP7xUQiRVC2cu6StdJyvDzyiYI00u72PvSOvaWHcpzgKqTFpGiQseJQlHnI8U3ob4PxfJylBy8RDQHG9fZwNY1WOCsnSb3m2ufV1EQIjndzTq13yQE6jCz639rO8atlAG3PtJW/QRiGUzyGaOuKsS4HRzPbbpmVtsXoN76+x+WLWkeqlTBEu35X4Hdbkf1C36wp3b68sI5fVyLksF6elRv/It4aUzjXSXbO/Dx+zvMIN01FgwaFV6nLh++k3qlmo87p4I+hvsGiQIDAQAB}")
private String alipayPublicKey;
/**
*
*/
@Value("${alipay.appPrivateKey:}")
private String appPrivateKey;
@Value("${alipay.appCertPath:}")
private String appCertPath;
@Value("${alipay.rootCertPath:}")
private String rootCertPath;
@Value("${alipay.alipayPublicCertPath:}")
private String alipayPublicCertPath;
@Value("${alipay.notifyUrl:}")
private String notifyUrl;
/**
*
*/
@Value("${alipay.returnUrl:}")
private String returnUrl;
/**
*
*/
@Value("${alipay.signType:RSA2}")
@Value("${alipay.signType:}")
private String signType;
/**
*
*/
@Value("${alipay.charset:UTF-8}")
@Value("${alipay.charset:}")
private String charset;
/**
*
*/
@Value("${alipay.gatewayUrl:https://openapi-sandbox.dl.alipaydev.com/gateway.do}")
@Value("${alipay.gatewayUrl:}")
private String gatewayUrl;
@Autowired
private FsNotice fsNotice;
private AlipayClient alipayClient;
@Override
public void afterPropertiesSet() throws Exception {
AlipayConfig alipayConfig = new AlipayConfig();
//设置网关地址
alipayConfig.setServerUrl(gatewayUrl);
//设置应用APPID
alipayConfig.setAppId(appId);
//设置应用私钥
alipayConfig.setPrivateKey(appPrivateKey);
//设置应用公钥证书路径
alipayConfig.setAppCertPath(appCertPath);
//设置支付宝公钥证书路径
alipayConfig.setAlipayPublicCertPath(alipayPublicCertPath);
//设置支付宝根证书路径
alipayConfig.setRootCertPath(rootCertPath);
//设置请求格式固定值json
alipayConfig.setFormat(Constants.ALIPAY_DEFAULT_FORMAT);
//设置字符集
alipayConfig.setCharset(charset);
//设置签名类型
alipayConfig.setSignType(signType);
//构造client
alipayClient = new DefaultAlipayClient(alipayConfig);
}
@Override
public EPayChannel channel() {
return EPayChannel.ALI_PAY;
@ -105,11 +120,9 @@ public class AliPaymentMangerImpl implements PaymentManager {
reqDTO.setSubject(subject);
reqDTO.setTimeExpire(DateUtil.formatDateTime(expireTime));
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset,
alipayPublicKey, signType);
switch (payPage) {
case WEB:
reqDTO.setProductCode(PAY_PRODUCT_CODE_WEB);
reqDTO.setProductCode("FAST_INSTANT_TRADE_PAY");
AlipayTradePagePayRequest webReq = new AlipayTradePagePayRequest();
webReq.setReturnUrl(returnUrl);
webReq.setNotifyUrl(notifyUrl);
@ -128,7 +141,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
}
break;
case WAP:
reqDTO.setProductCode(PAY_PRODUCT_CODE_WAP);
reqDTO.setProductCode("QUICK_WAP_WAY");
AlipayTradeWapPayRequest wapReq = new AlipayTradeWapPayRequest();
wapReq.setReturnUrl(returnUrl);
wapReq.setNotifyUrl(notifyUrl);
@ -147,7 +160,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
}
break;
case APP:
reqDTO.setProductCode(PAY_PRODUCT_CODE_APP);
reqDTO.setProductCode("QUICK_MSECURITY_PAY");
AlipayTradeAppPayRequest appReq = new AlipayTradeAppPayRequest();
appReq.setReturnUrl(returnUrl);
appReq.setNotifyUrl(notifyUrl);
@ -191,8 +204,6 @@ public class AliPaymentMangerImpl implements PaymentManager {
Assert.notNull(orderRefund.getRefundOrder());
Assert.notEmpty(orderRefund.getRefundOrderDetails());
Assert.notEmpty(orderRefund.getOriginOrder().getPayTradeNo());
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset,
alipayPublicKey, signType);
// 构造请求参数以调用接口
AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
AlipayTradeRefundModel model = new AlipayTradeRefundModel();
@ -213,8 +224,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
model.setOutRequestNo(orderRefund.getRefundOrder().getOrderNo());
try {
//TODO 沙箱环境接口无法完全退款?
// AlipayTradeRefundResponse response = alipayClient.certificateExecute(request);
AlipayTradeRefundResponse response = alipayClient.execute(request);
AlipayTradeRefundResponse response = alipayClient.certificateExecute(request);
log.info("支付宝退款:{}", response.getBody());
String fundChange = JSON.parseObject(response.getBody())
.getJSONObject("alipay_trade_refund_response")
@ -241,8 +251,6 @@ public class AliPaymentMangerImpl implements PaymentManager {
public ENetResult queryStoreOrderRefundResult(String refundOrderNo, String originOrderNo) {
Assert.notEmpty(refundOrderNo);
Assert.notEmpty(originOrderNo);
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset,
alipayPublicKey, signType);
// 构造请求参数以调用接口
AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest();
AlipayTradeFastpayRefundQueryModel model = new AlipayTradeFastpayRefundQueryModel();
@ -250,7 +258,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
model.setOutTradeNo(originOrderNo);
request.setBizModel(model);
try {
AlipayTradeFastpayRefundQueryResponse response = alipayClient.execute(request);
AlipayTradeFastpayRefundQueryResponse response = alipayClient.certificateExecute(request);
log.warn("查询支付宝订单退款结果: {}", response.getBody());
if (response.isSuccess()) {
String refundStatus = JSON.parseObject(response.getBody())
@ -277,15 +285,13 @@ public class AliPaymentMangerImpl implements PaymentManager {
@Override
public ENetResult queryStoreOrderPayResult(String orderNo) {
Assert.notEmpty(orderNo);
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset,
alipayPublicKey, signType);
// 构造请求参数以调用接口
AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
AlipayTradeQueryModel model = new AlipayTradeQueryModel();
model.setOutTradeNo(orderNo);
request.setBizModel(model);
try {
AlipayTradeQueryResponse response = alipayClient.execute(request);
AlipayTradeQueryResponse response = alipayClient.certificateExecute(request);
log.warn("查询订单支付结果: {}", response.getBody());
if (response.isSuccess()) {
String tradeStatus = JSON.parseObject(response.getBody())
@ -328,8 +334,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
Assert.notEmpty(identity);
Assert.notEmpty(realName);
Assert.notNull(amount);
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset,
alipayPublicKey, signType);
Assert.isTrue(NumberUtil.isGreaterOrEqual(amount, Constants.ZERO_POINT_ONE), "提现金额不能低于0.1元");
// 构造请求参数以调用接口
AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
@ -354,8 +359,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
request.setBizModel(model);
try {
//TODO 测试
// AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
AlipayFundTransUniTransferResponse response = alipayClient.execute(request);
AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
log.info("支付宝转账: {}", response.getBody());
if (response.isSuccess()) {
String status = JSON.parseObject(response.getBody())
@ -379,8 +383,6 @@ public class AliPaymentMangerImpl implements PaymentManager {
@Override
public ENetResult queryTransferResult(String bizNo) {
Assert.notEmpty(bizNo);
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset,
alipayPublicKey, signType);
// 构造请求参数以调用接口
AlipayFundTransCommonQueryRequest request = new AlipayFundTransCommonQueryRequest();
AlipayFundTransCommonQueryModel model = new AlipayFundTransCommonQueryModel();
@ -392,7 +394,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
model.setProductCode("TRANS_ACCOUNT_NO_PWD");
request.setBizModel(model);
try {
AlipayFundTransCommonQueryResponse response = alipayClient.execute(request);
AlipayFundTransCommonQueryResponse response = alipayClient.certificateExecute(request);
log.info("查询支付宝转账结果: {}", response.getBody());
if (response.isSuccess()) {
String status = JSON.parseObject(response.getBody())