支付宝切换证书模式

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; boolean signVerified = false;
try { try {
//验证签名 //验证签名
signVerified = AlipaySignature.rsaCheckV1(params, paymentManger.getAlipayPublicKey(), signVerified = AlipaySignature.rsaCertCheckV1(params, paymentManger.getAlipayPublicCertPath(),
paymentManger.getCharset(), paymentManger.getSignType()); paymentManger.getCharset(), paymentManger.getSignType());
} catch (AlipayApiException e) { } catch (AlipayApiException e) {
logger.error("支付宝验签异常", e); logger.error("支付宝验签异常", e);

View File

@ -210,8 +210,10 @@ yto:
# 支付宝配置 # 支付宝配置
alipay: alipay:
appId: 9021000144616672 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= 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==
alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkiTTeQLIkyVHnYiNmRKEtsdlwKftUySN1SLkrhn6CgmHl5ovjPeYteweZEZmsf2kt6wRnaLkODVP7xUQiRVC2cu6StdJyvDzyiYI00u72PvSOvaWHcpzgKqTFpGiQseJQlHnI8U3ob4PxfJylBy8RDQHG9fZwNY1WOCsnSb3m2ufV1EQIjndzTq13yQE6jCz639rO8atlAG3PtJW/QRiGUzyGaOuKsS4HRzPbbpmVtsXoN76+x+WLWkeqlTBEu35X4Hdbkf1C36wp3b68sI5fVyLksF6elRv/It4aUzjXSXbO/Dx+zvMIN01FgwaFV6nLh++k3qlmo87p4I+hvsGiQIDAQAB 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 notifyUrl: http://101.34.251.164:9310/rest/v1/alipay-callback/notify
returnUrl: returnUrl:
signType: RSA2 signType: RSA2

View File

@ -2,6 +2,7 @@ package com.ruoyi.common.constant;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import java.math.BigDecimal;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.Locale; 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 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.alibaba.fastjson2.JSON;
import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient; import com.alipay.api.AlipayClient;
import com.alipay.api.AlipayConfig;
import com.alipay.api.DefaultAlipayClient; import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.diagnosis.DiagnosisUtils; import com.alipay.api.diagnosis.DiagnosisUtils;
import com.alipay.api.domain.*; import com.alipay.api.domain.*;
import com.alipay.api.request.*; import com.alipay.api.request.*;
import com.alipay.api.response.*; import com.alipay.api.response.*;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.framework.notice.fs.FsNotice; import com.ruoyi.framework.notice.fs.FsNotice;
import com.ruoyi.xkt.domain.StoreOrderDetail; import com.ruoyi.xkt.domain.StoreOrderDetail;
@ -24,6 +26,7 @@ import com.ruoyi.xkt.enums.EPayStatus;
import com.ruoyi.xkt.manager.PaymentManager; import com.ruoyi.xkt.manager.PaymentManager;
import lombok.Getter; import lombok.Getter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -38,56 +41,68 @@ import java.util.Date;
@Slf4j @Slf4j
@Getter @Getter
@Component @Component
public class AliPaymentMangerImpl implements PaymentManager { public class AliPaymentMangerImpl implements PaymentManager, InitializingBean {
private static final String DEFAULT_FORMAT = "json"; @Value("${alipay.appId:}")
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}")
private String appId; private String appId;
/**
* PKCS8RSA2 @Value("${alipay.appPrivateKey:}")
*/ private String appPrivateKey;
@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; @Value("${alipay.appCertPath:}")
/** private String appCertPath;
* ,https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
*/ @Value("${alipay.rootCertPath:}")
@Value("${alipay.alipayPublicKey:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkiTTeQLIkyVHnYiNmRKEtsdlwKftUySN1SLkrhn6CgmHl5ovjPeYteweZEZmsf2kt6wRnaLkODVP7xUQiRVC2cu6StdJyvDzyiYI00u72PvSOvaWHcpzgKqTFpGiQseJQlHnI8U3ob4PxfJylBy8RDQHG9fZwNY1WOCsnSb3m2ufV1EQIjndzTq13yQE6jCz639rO8atlAG3PtJW/QRiGUzyGaOuKsS4HRzPbbpmVtsXoN76+x+WLWkeqlTBEu35X4Hdbkf1C36wp3b68sI5fVyLksF6elRv/It4aUzjXSXbO/Dx+zvMIN01FgwaFV6nLh++k3qlmo87p4I+hvsGiQIDAQAB}") private String rootCertPath;
private String alipayPublicKey;
/** @Value("${alipay.alipayPublicCertPath:}")
* private String alipayPublicCertPath;
*/
@Value("${alipay.notifyUrl:}") @Value("${alipay.notifyUrl:}")
private String notifyUrl; private String notifyUrl;
/**
*
*/
@Value("${alipay.returnUrl:}") @Value("${alipay.returnUrl:}")
private String returnUrl; private String returnUrl;
/**
* @Value("${alipay.signType:}")
*/
@Value("${alipay.signType:RSA2}")
private String signType; private String signType;
/**
* @Value("${alipay.charset:}")
*/
@Value("${alipay.charset:UTF-8}")
private String charset; private String charset;
/**
* @Value("${alipay.gatewayUrl:}")
*/
@Value("${alipay.gatewayUrl:https://openapi-sandbox.dl.alipaydev.com/gateway.do}")
private String gatewayUrl; private String gatewayUrl;
@Autowired @Autowired
private FsNotice fsNotice; 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 @Override
public EPayChannel channel() { public EPayChannel channel() {
return EPayChannel.ALI_PAY; return EPayChannel.ALI_PAY;
@ -105,11 +120,9 @@ public class AliPaymentMangerImpl implements PaymentManager {
reqDTO.setSubject(subject); reqDTO.setSubject(subject);
reqDTO.setTimeExpire(DateUtil.formatDateTime(expireTime)); reqDTO.setTimeExpire(DateUtil.formatDateTime(expireTime));
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset,
alipayPublicKey, signType);
switch (payPage) { switch (payPage) {
case WEB: case WEB:
reqDTO.setProductCode(PAY_PRODUCT_CODE_WEB); reqDTO.setProductCode("FAST_INSTANT_TRADE_PAY");
AlipayTradePagePayRequest webReq = new AlipayTradePagePayRequest(); AlipayTradePagePayRequest webReq = new AlipayTradePagePayRequest();
webReq.setReturnUrl(returnUrl); webReq.setReturnUrl(returnUrl);
webReq.setNotifyUrl(notifyUrl); webReq.setNotifyUrl(notifyUrl);
@ -128,7 +141,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
} }
break; break;
case WAP: case WAP:
reqDTO.setProductCode(PAY_PRODUCT_CODE_WAP); reqDTO.setProductCode("QUICK_WAP_WAY");
AlipayTradeWapPayRequest wapReq = new AlipayTradeWapPayRequest(); AlipayTradeWapPayRequest wapReq = new AlipayTradeWapPayRequest();
wapReq.setReturnUrl(returnUrl); wapReq.setReturnUrl(returnUrl);
wapReq.setNotifyUrl(notifyUrl); wapReq.setNotifyUrl(notifyUrl);
@ -147,7 +160,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
} }
break; break;
case APP: case APP:
reqDTO.setProductCode(PAY_PRODUCT_CODE_APP); reqDTO.setProductCode("QUICK_MSECURITY_PAY");
AlipayTradeAppPayRequest appReq = new AlipayTradeAppPayRequest(); AlipayTradeAppPayRequest appReq = new AlipayTradeAppPayRequest();
appReq.setReturnUrl(returnUrl); appReq.setReturnUrl(returnUrl);
appReq.setNotifyUrl(notifyUrl); appReq.setNotifyUrl(notifyUrl);
@ -191,8 +204,6 @@ public class AliPaymentMangerImpl implements PaymentManager {
Assert.notNull(orderRefund.getRefundOrder()); Assert.notNull(orderRefund.getRefundOrder());
Assert.notEmpty(orderRefund.getRefundOrderDetails()); Assert.notEmpty(orderRefund.getRefundOrderDetails());
Assert.notEmpty(orderRefund.getOriginOrder().getPayTradeNo()); Assert.notEmpty(orderRefund.getOriginOrder().getPayTradeNo());
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset,
alipayPublicKey, signType);
// 构造请求参数以调用接口 // 构造请求参数以调用接口
AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
AlipayTradeRefundModel model = new AlipayTradeRefundModel(); AlipayTradeRefundModel model = new AlipayTradeRefundModel();
@ -213,8 +224,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
model.setOutRequestNo(orderRefund.getRefundOrder().getOrderNo()); model.setOutRequestNo(orderRefund.getRefundOrder().getOrderNo());
try { try {
//TODO 沙箱环境接口无法完全退款? //TODO 沙箱环境接口无法完全退款?
// AlipayTradeRefundResponse response = alipayClient.certificateExecute(request); AlipayTradeRefundResponse response = alipayClient.certificateExecute(request);
AlipayTradeRefundResponse response = alipayClient.execute(request);
log.info("支付宝退款:{}", response.getBody()); log.info("支付宝退款:{}", response.getBody());
String fundChange = JSON.parseObject(response.getBody()) String fundChange = JSON.parseObject(response.getBody())
.getJSONObject("alipay_trade_refund_response") .getJSONObject("alipay_trade_refund_response")
@ -241,8 +251,6 @@ public class AliPaymentMangerImpl implements PaymentManager {
public ENetResult queryStoreOrderRefundResult(String refundOrderNo, String originOrderNo) { public ENetResult queryStoreOrderRefundResult(String refundOrderNo, String originOrderNo) {
Assert.notEmpty(refundOrderNo); Assert.notEmpty(refundOrderNo);
Assert.notEmpty(originOrderNo); Assert.notEmpty(originOrderNo);
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset,
alipayPublicKey, signType);
// 构造请求参数以调用接口 // 构造请求参数以调用接口
AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest(); AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest();
AlipayTradeFastpayRefundQueryModel model = new AlipayTradeFastpayRefundQueryModel(); AlipayTradeFastpayRefundQueryModel model = new AlipayTradeFastpayRefundQueryModel();
@ -250,7 +258,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
model.setOutTradeNo(originOrderNo); model.setOutTradeNo(originOrderNo);
request.setBizModel(model); request.setBizModel(model);
try { try {
AlipayTradeFastpayRefundQueryResponse response = alipayClient.execute(request); AlipayTradeFastpayRefundQueryResponse response = alipayClient.certificateExecute(request);
log.warn("查询支付宝订单退款结果: {}", response.getBody()); log.warn("查询支付宝订单退款结果: {}", response.getBody());
if (response.isSuccess()) { if (response.isSuccess()) {
String refundStatus = JSON.parseObject(response.getBody()) String refundStatus = JSON.parseObject(response.getBody())
@ -277,15 +285,13 @@ public class AliPaymentMangerImpl implements PaymentManager {
@Override @Override
public ENetResult queryStoreOrderPayResult(String orderNo) { public ENetResult queryStoreOrderPayResult(String orderNo) {
Assert.notEmpty(orderNo); Assert.notEmpty(orderNo);
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset,
alipayPublicKey, signType);
// 构造请求参数以调用接口 // 构造请求参数以调用接口
AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
AlipayTradeQueryModel model = new AlipayTradeQueryModel(); AlipayTradeQueryModel model = new AlipayTradeQueryModel();
model.setOutTradeNo(orderNo); model.setOutTradeNo(orderNo);
request.setBizModel(model); request.setBizModel(model);
try { try {
AlipayTradeQueryResponse response = alipayClient.execute(request); AlipayTradeQueryResponse response = alipayClient.certificateExecute(request);
log.warn("查询订单支付结果: {}", response.getBody()); log.warn("查询订单支付结果: {}", response.getBody());
if (response.isSuccess()) { if (response.isSuccess()) {
String tradeStatus = JSON.parseObject(response.getBody()) String tradeStatus = JSON.parseObject(response.getBody())
@ -328,8 +334,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
Assert.notEmpty(identity); Assert.notEmpty(identity);
Assert.notEmpty(realName); Assert.notEmpty(realName);
Assert.notNull(amount); Assert.notNull(amount);
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset, Assert.isTrue(NumberUtil.isGreaterOrEqual(amount, Constants.ZERO_POINT_ONE), "提现金额不能低于0.1元");
alipayPublicKey, signType);
// 构造请求参数以调用接口 // 构造请求参数以调用接口
AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest(); AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel(); AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
@ -354,8 +359,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
request.setBizModel(model); request.setBizModel(model);
try { try {
//TODO 测试 //TODO 测试
// AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request); AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
AlipayFundTransUniTransferResponse response = alipayClient.execute(request);
log.info("支付宝转账: {}", response.getBody()); log.info("支付宝转账: {}", response.getBody());
if (response.isSuccess()) { if (response.isSuccess()) {
String status = JSON.parseObject(response.getBody()) String status = JSON.parseObject(response.getBody())
@ -379,8 +383,6 @@ public class AliPaymentMangerImpl implements PaymentManager {
@Override @Override
public ENetResult queryTransferResult(String bizNo) { public ENetResult queryTransferResult(String bizNo) {
Assert.notEmpty(bizNo); Assert.notEmpty(bizNo);
AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, DEFAULT_FORMAT, charset,
alipayPublicKey, signType);
// 构造请求参数以调用接口 // 构造请求参数以调用接口
AlipayFundTransCommonQueryRequest request = new AlipayFundTransCommonQueryRequest(); AlipayFundTransCommonQueryRequest request = new AlipayFundTransCommonQueryRequest();
AlipayFundTransCommonQueryModel model = new AlipayFundTransCommonQueryModel(); AlipayFundTransCommonQueryModel model = new AlipayFundTransCommonQueryModel();
@ -392,7 +394,7 @@ public class AliPaymentMangerImpl implements PaymentManager {
model.setProductCode("TRANS_ACCOUNT_NO_PWD"); model.setProductCode("TRANS_ACCOUNT_NO_PWD");
request.setBizModel(model); request.setBizModel(model);
try { try {
AlipayFundTransCommonQueryResponse response = alipayClient.execute(request); AlipayFundTransCommonQueryResponse response = alipayClient.certificateExecute(request);
log.info("查询支付宝转账结果: {}", response.getBody()); log.info("查询支付宝转账结果: {}", response.getBody());
if (response.isSuccess()) { if (response.isSuccess()) {
String status = JSON.parseObject(response.getBody()) String status = JSON.parseObject(response.getBody())