2024-06-07 11:33:26 +08:00
|
|
|
|
package com.jsowell.alipay.config;
|
|
|
|
|
|
|
2024-06-27 09:01:44 +08:00
|
|
|
|
import com.alipay.easysdk.factory.Factory;
|
|
|
|
|
|
import com.alipay.easysdk.kernel.Config;
|
|
|
|
|
|
import com.jsowell.common.constant.Constants;
|
2024-06-11 15:12:02 +08:00
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
2024-06-07 11:33:26 +08:00
|
|
|
|
import org.springframework.boot.CommandLineRunner;
|
|
|
|
|
|
import org.springframework.core.annotation.Order;
|
|
|
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
2024-06-11 15:12:02 +08:00
|
|
|
|
@Slf4j
|
2024-06-07 11:33:26 +08:00
|
|
|
|
@Component
|
2024-07-15 11:33:11 +08:00
|
|
|
|
@Order(4)
|
2024-06-07 11:33:26 +08:00
|
|
|
|
public class AliPayConfig implements CommandLineRunner {
|
2024-06-11 15:12:02 +08:00
|
|
|
|
@Value("${alipay.gatewayHost}")
|
2024-06-07 11:33:26 +08:00
|
|
|
|
private String gatewayHost;
|
2024-06-11 15:12:02 +08:00
|
|
|
|
|
|
|
|
|
|
@Value("${alipay.appId}")
|
2024-06-07 11:33:26 +08:00
|
|
|
|
private String appId;
|
2024-06-11 15:12:02 +08:00
|
|
|
|
|
|
|
|
|
|
@Value("${alipay.merchantPrivateKey}")
|
2024-06-07 11:33:26 +08:00
|
|
|
|
private String merchantPrivateKey;
|
2024-06-11 15:12:02 +08:00
|
|
|
|
|
|
|
|
|
|
@Value("${alipay.alipayPublicKey}")
|
2024-06-07 11:33:26 +08:00
|
|
|
|
private String alipayPublicKey;
|
2024-06-11 15:12:02 +08:00
|
|
|
|
|
|
|
|
|
|
@Value("${alipay.notifyUrl}")
|
2024-06-07 11:33:26 +08:00
|
|
|
|
private String notifyUrl;
|
|
|
|
|
|
|
2024-06-11 16:30:42 +08:00
|
|
|
|
@Value("${alipay.encryptKey}")
|
|
|
|
|
|
private String encryptKey;
|
|
|
|
|
|
|
2024-06-07 11:33:26 +08:00
|
|
|
|
@Override
|
|
|
|
|
|
public void run(String... args) throws Exception {
|
|
|
|
|
|
// 设置参数(全局只需设置一次)
|
2024-06-27 09:01:44 +08:00
|
|
|
|
Config config = new Config();
|
|
|
|
|
|
config.protocol = Constants.HTTPS;
|
|
|
|
|
|
config.gatewayHost = gatewayHost;
|
|
|
|
|
|
config.signType = Constants.RSA2;
|
|
|
|
|
|
config.appId = appId;
|
|
|
|
|
|
|
|
|
|
|
|
// 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中
|
|
|
|
|
|
config.merchantPrivateKey = merchantPrivateKey;
|
|
|
|
|
|
|
|
|
|
|
|
// 注:证书文件路径支持设置为文件系统中的路径或CLASS_PATH中的路径,优先从文件系统中加载,加载失败后会继续尝试从CLASS_PATH中加载
|
|
|
|
|
|
// config.merchantCertPath = "<-- 请填写您的应用公钥证书文件路径,例如:/foo/appCertPublicKey_2019051064521003.crt -->";
|
|
|
|
|
|
// config.alipayCertPath = "<-- 请填写您的支付宝公钥证书文件路径,例如:/foo/alipayCertPublicKey_RSA2.crt -->";
|
|
|
|
|
|
// config.alipayRootCertPath = "<-- 请填写您的支付宝根证书文件路径,例如:/foo/alipayRootCert.crt -->";
|
|
|
|
|
|
|
|
|
|
|
|
// 注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
|
|
|
|
|
|
config.alipayPublicKey = alipayPublicKey;
|
|
|
|
|
|
// 可设置异步通知接收服务地址(可选)
|
|
|
|
|
|
// config.notifyUrl = "<-- 请填写您的支付类接口异步通知接收服务地址,例如:https://www.test.com/callback -->";
|
|
|
|
|
|
|
|
|
|
|
|
// 可设置AES密钥,调用AES加解密相关接口时需要(可选)
|
|
|
|
|
|
config.encryptKey = encryptKey;
|
|
|
|
|
|
Factory.setOptions(config);
|
2024-07-15 11:33:11 +08:00
|
|
|
|
log.info(">>>>>>>>>>>>>>>服务启动执行,执行加载数据等操作 AliPayConfig order 4 <<<<<<<<<<<<<");
|
2024-06-07 11:33:26 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|