SrpingBoot配置整合alipay-easysdk-java
github地址alipay-easy-sdk-javaalipay-API目录结构<dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-easysdk</artifactId><version>2.1.2</version></dep
·
github地址
alipay-easy-sdk-java
alipay-API
目录结构
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-easysdk</artifactId>
<version>2.1.2</version>
</dependency>
基础参数配置类,使用yml进行配置
设置参数(全局只需设置一次)
AliProperties.class
package com.xxxxxx.framework.ali.config.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* @Author: Stephen
* @Date: 2021/4/2 10:32
*/
@Data
@ConfigurationProperties(prefix = "fast-code.ali")
public class AliProperties {
/**
* 协议:https
*/
private String protocol = "https";
/**
* 网关主机:openapi.alipay.com
*/
private String gatewayHost = "openapi.alipay.com";
/**
* 签名类型:RSA2
*/
private String signType = "RSA2";
/**
* 支付宝小程序id
*/
private String appId;
/**
* 私钥
*/
private String merchantPrivateKey;
/**
* 应用公钥证书文件路径
*/
private String merchantCertPath;
/**
* 支付宝公钥证书文件路径
*/
private String alipayCertPath;
/**
* 支付宝根证书文件路径
*/
private String alipayRootCertPath;
/**
* 可设置异步通知接收服务地址(可选)
*/
private String notifyUrl;
/**
* 接口内容加密方式,例如:aa4BtZ4tspm2wnXLb1ThQA== (可选)
*/
private String encryptKey;
}
@Data注解 需要lombok插件
yml配置
fast-code:
ali:
app-id: appId
merchant-private-key: 私钥
merchant-cert-path: 应用公钥证书文件路径
alipay-cert-path: 应用公钥证书文件路径
alipayRoot-cert-path: 支付宝根证书文件路径
encrypt-key: 接口内容加密方式
配置类
AliConfig.class
package com.xxxxxx.framework.ali.config;
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.Config;
import com.dandandog.framework.ali.config.properties.AliProperties;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
* @Author: Stephen
* @Date: 2021/4/2 10:25
*/
@Slf4j
@Configuration
@AllArgsConstructor
@EnableConfigurationProperties(AliProperties.class)
@ConditionalOnProperty(prefix = "fast-code.ali", value = {"enabled"}, matchIfMissing = true)
public class AliConfig implements InitializingBean {
private final AliProperties properties;
private Config getOptions() {
Config config = new Config();
config.protocol = properties.getProtocol();
config.gatewayHost = properties.getGatewayHost();
config.signType = properties.getSignType();
config.appId = properties.getAppId();
config.merchantPrivateKey = properties.getMerchantPrivateKey();
config.merchantCertPath = properties.getMerchantCertPath();
config.alipayCertPath = properties.getAlipayCertPath();
config.alipayRootCertPath = properties.getAlipayRootCertPath();
config.encryptKey = properties.getEncryptKey();
log.info(config.toString());
return config;
}
@Override
public void afterPropertiesSet() throws Exception {
Factory.setOptions(getOptions());
}
}
实现InitializingBean初始化基本参数
spring模块扫描,此项目是子模块需要告诉spring扫描配置类
package com.xxxxxx.framework.ali.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.ComponentScan;
/**
* @Author: Stephen
* @Date: 2021/4/2 10:27
*/
@Slf4j
@ComponentScan("com.xxxxxx.framework.ali")
public class SpringAutoScanConfig {
public SpringAutoScanConfig() {
log.debug("Ali config initialization");
}
}
资源文件
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.xxxxxx.framework.ali.config.SpringAutoScanConfig
@EnableAutoConfiguration作用:
帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot,并创建对应配置类的Bean,并把该Bean实体交给IoC容器进行管理。
启动不报错即可
使用直接Factory.即可
更多推荐
已为社区贡献1条内容
所有评论(0)