package cc.mrbird.febs.pay.configure; import cc.mrbird.febs.pay.properties.WxPayProperties; 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.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author wzy * @date 2023-04-07 **/ @Configuration @ConditionalOnClass(WxPayService.class) @EnableConfigurationProperties(WxPayProperties.class) @AllArgsConstructor public class WxPayConfiguration { private WxPayProperties properties; @Bean @ConditionalOnMissingBean public WxPayService wxService() { WxPayConfig payConfig = new WxPayConfig(); payConfig.setAppId(StrUtil.trim(this.properties.getAppId())); payConfig.setMchId(StrUtil.trim(this.properties.getMchId())); payConfig.setMchKey(StrUtil.trim(this.properties.getMchKey())); payConfig.setKeyPath(StrUtil.trim(this.properties.getKeyPath())); payConfig.setNotifyUrl(StrUtil.trim(this.properties.getNoticeUrl())); // 可以指定是否使用沙箱环境 payConfig.setUseSandboxEnv(false); WxPayService wxPayService = new WxPayServiceImpl(); wxPayService.setConfig(payConfig); return wxPayService; } }