支付宝切换证书模式
parent
7f28afd984
commit
e3cc4ec69d
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,您的APPID,收款账号既是您的APPID对应支付宝账号
|
|
||||||
*/
|
|
||||||
@Value("${alipay.appId:9021000144616672}")
|
|
||||||
private String appId;
|
private String appId;
|
||||||
/**
|
|
||||||
* 商户私钥,您的PKCS8格式RSA2私钥
|
@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())
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue