All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.spring.boxes.payment.PaymentAutoConfiguration Maven / Gradle / Ivy

The newest version!
package com.spring.boxes.payment;

import lombok.AllArgsConstructor;
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;

import com.lly835.bestpay.config.AliPayConfig;
import com.lly835.bestpay.config.WxPayConfig;
import com.lly835.bestpay.service.impl.BestPayServiceImpl;
import com.spring.boxes.payment.beans.AlibabaPayProperties;
import com.spring.boxes.payment.beans.WechatPayProperties;

import lombok.extern.slf4j.Slf4j;

import java.util.Objects;

@Slf4j
@Configuration
@AllArgsConstructor
@EnableConfigurationProperties(PaymentProperties.class)
public class PaymentAutoConfiguration {

    private final PaymentProperties paymentProperties;

    @Bean
    @ConditionalOnMissingBean
    public WxPayConfig wxPayConfig() {
        WechatPayProperties properties = paymentProperties.getWechat();
        WxPayConfig wxPayConfig = new WxPayConfig();
        wxPayConfig.setAppId(properties.getMpAppId());
        wxPayConfig.setMiniAppId(properties.getMiniAppId());
        wxPayConfig.setMchId(properties.getMchId());
        wxPayConfig.setMchKey(properties.getMchKey());
        wxPayConfig.setKeyPath(properties.getKeyPath());
        wxPayConfig.setNotifyUrl(properties.getNotifyUrl());
        wxPayConfig.setAppAppId(properties.getAppAppId());
        return wxPayConfig;
    }

    @Bean
    @ConditionalOnMissingBean
    public AliPayConfig aliPayConfig() {
        AlibabaPayProperties properties = paymentProperties.getAlipay();
        AliPayConfig aliPayConfig = new AliPayConfig();
        aliPayConfig.setNotifyUrl(properties.getNotifyUrl());
        aliPayConfig.setAppId(properties.getAppId());
        aliPayConfig.setPrivateKey(properties.getPrivateKey());
        aliPayConfig.setAliPayPublicKey(properties.getAliPayPublicKey());
        aliPayConfig.setSandbox(properties.isSandbox());
        aliPayConfig.setReturnUrl(properties.getReturnUrl());
        return aliPayConfig;
    }

    @Bean
    @ConditionalOnMissingBean
    public BestPayServiceImpl bestPayService() {
        BestPayServiceImpl bestPayService = new BestPayServiceImpl();
        WxPayConfig wxPayConfig = wxPayConfig();
        if(Objects.nonNull(wxPayConfig)){
            bestPayService.setWxPayConfig(wxPayConfig());
        }
        if(Objects.nonNull(aliPayConfig())){
            bestPayService.setAliPayConfig(aliPayConfig());
        }
        return bestPayService;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy