package com.sinata.config;
|
|
import com.ijpay.alipay.AliPayApiConfig;
|
import com.ijpay.alipay.AliPayApiConfigKit;
|
import com.ijpay.core.enums.SignType;
|
import com.ijpay.core.kit.WxPayKit;
|
import com.ijpay.wxpay.WxPayApi;
|
import com.ijpay.wxpay.WxPayApiConfig;
|
import com.ijpay.wxpay.WxPayApiConfigKit;
|
import com.sinata.config.properties.AliPayProperties;
|
import com.sinata.config.properties.WxPayProperties;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.boot.ApplicationArguments;
|
import org.springframework.boot.ApplicationRunner;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import java.util.Map;
|
|
/**
|
* 初始化
|
*
|
* @author frankevil
|
* @date 2020/7/28 23:42
|
**/
|
@Slf4j
|
@Component
|
public class InitApplicationRunner implements ApplicationRunner {
|
|
@Resource
|
private WxPayProperties wxPayProperties;
|
|
@Resource
|
private AliPayProperties aliPayProperties;
|
|
@Override
|
public void run(ApplicationArguments args) throws Exception {
|
//微信支付初始化
|
initWeChatPay();
|
//支付宝初始化
|
initAliPay();
|
}
|
|
/**
|
* 初始化微信支付
|
*/
|
private void initWeChatPay() {
|
WxPayApiConfig wxPayConfig = null;
|
try {
|
String partnerKey = wxPayProperties.getPartnerKey();
|
if (wxPayProperties.isSandboxnew()) {
|
String xmlResult = WxPayApi.getSignKey(wxPayProperties.getMchId(), wxPayProperties.getPartnerKey(), SignType.MD5);
|
Map<String, String> result = WxPayKit.xmlToMap(xmlResult);
|
String returnCode = result.get("return_code");
|
if (!WxPayKit.codeIsOk(returnCode)) {
|
throw new RuntimeException("查询沙盒keys失败");
|
}
|
partnerKey = result.get("sandbox_signkey");
|
}
|
wxPayConfig = WxPayApiConfig.builder()
|
.appId(wxPayProperties.getAppId())
|
.mchId(wxPayProperties.getMchId())
|
.partnerKey(partnerKey)
|
.certPath(wxPayProperties.getCertPath())
|
.domain(wxPayProperties.getDomain())
|
.build();
|
} catch (Exception e) {
|
log.error("加载配置出错", e);
|
} finally {
|
if (wxPayConfig != null) {
|
WxPayApiConfigKit.setThreadLocalWxPayApiConfig(wxPayConfig);
|
}
|
}
|
}
|
|
/**
|
* 初始化支付配置
|
*/
|
private void initAliPay() {
|
AliPayApiConfig aliPayApiConfig = null;
|
try {
|
aliPayApiConfig = AliPayApiConfig.builder()
|
.setAppId(aliPayProperties.getAppId())
|
.setAliPayPublicKey(aliPayProperties.getPublicKey())
|
.setCharset("UTF-8")
|
.setPrivateKey(aliPayProperties.getPrivateKey())
|
.setServiceUrl(aliPayProperties.getServerUrl())
|
.setSignType("RSA2")
|
// 普通公钥方式
|
.build();
|
// 2.3.0 公钥证书方式
|
//.build(aliPayProperties.getAppCertPath(), aliPayProperties.getAliPayCertPath(), aliPayProperties.getAliPayCertPath());
|
} catch (Exception e) {
|
log.error("加载配置出错", e);
|
} finally {
|
if (aliPayApiConfig != null) {
|
AliPayApiConfigKit.setThreadLocalAliPayApiConfig(aliPayApiConfig);
|
}
|
}
|
}
|
}
|