package cc.mrbird.febs.pay.configure;
|
|
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
|
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
|
import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
|
import cn.hutool.core.util.StrUtil;
|
import com.github.binarywang.wxpay.config.WxPayConfig;
|
import com.github.binarywang.wxpay.service.WxPayService;
|
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
|
import lombok.AllArgsConstructor;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
|
@Configuration
|
@ConditionalOnClass(WxPayService.class)
|
@AllArgsConstructor
|
public class WxPayConfiguration {
|
private DataDictionaryCustomMapper dataDictionaryCustomMapper;
|
|
@Bean
|
@ConditionalOnMissingBean
|
public WxPayService wxService() {
|
String appId = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
DataDictionaryEnum.XCX_APP_ID.getType(),
|
DataDictionaryEnum.XCX_APP_ID.getCode()
|
).getValue();
|
String mchId = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
DataDictionaryEnum.XCX_MCH_ID.getType(),
|
DataDictionaryEnum.XCX_MCH_ID.getCode()
|
).getValue();
|
String mchKey = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
DataDictionaryEnum.XCX_MCH_KEY.getType(),
|
DataDictionaryEnum.XCX_MCH_KEY.getCode()
|
).getValue();
|
String keyPath = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
DataDictionaryEnum.XCX_MCH_KEY_PATH_P12.getType(),
|
DataDictionaryEnum.XCX_MCH_KEY_PATH_P12.getCode()
|
).getValue();
|
String notifyUrl = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
|
DataDictionaryEnum.XCX_NOTICE_URL.getType(),
|
DataDictionaryEnum.XCX_NOTICE_URL.getCode()
|
).getValue();
|
WxPayConfig payConfig = new WxPayConfig();
|
payConfig.setAppId(StrUtil.trim(appId));
|
payConfig.setMchId(StrUtil.trim(mchId));
|
payConfig.setMchKey(StrUtil.trim(mchKey));
|
payConfig.setKeyPath(StrUtil.trim(keyPath));
|
payConfig.setNotifyUrl(StrUtil.trim(notifyUrl));
|
|
// 可以指定是否使用沙箱环境
|
payConfig.setUseSandboxEnv(false);
|
|
WxPayService wxPayService = new WxPayServiceImpl();
|
wxPayService.setConfig(payConfig);
|
return wxPayService;
|
}
|
}
|