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

net.guerlab.sdk.alipay.autoconfigure.AlipayAutoConfiguration Maven / Gradle / Ivy

The newest version!
package net.guerlab.sdk.alipay.autoconfigure;

import com.alipay.api.AlipayClient;
import com.alipay.api.AlipayConstants;
import com.alipay.api.DefaultAlipayClient;
import net.guerlab.sdk.alipay.AlipayUrlConstants;
import net.guerlab.sdk.alipay.properties.AlipayProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Objects;

/**
 * 支付宝客户端自动配置
 *
 * @author guer
 */
@Configuration
@EnableConfigurationProperties(AlipayProperties.class)
public class AlipayAutoConfiguration {

    private static final String ERROR_MSG_APPID_NULL = "alipay application's appid cann't be null";

    private static final String ERROR_MSG_PRIVATE_KEY_NULL = "alipay application's privateKey cann't be null";

    private static final String ERROR_MSG_ALIPAY_PUBLIC_KEY_NULL = "alipay's publicKey cann't be null";

    /**
     * 构造支付宝客户端
     *
     * @param properties
     *            支付宝配置
     * @return 支付宝客户端
     */
    @Bean
    public AlipayClient alipayClient(AlipayProperties properties) {
        String gatewayUrl = AlipayUrlConstants.gateway(properties.isDev());
        String appId = Objects.requireNonNull(properties.getAppId(), ERROR_MSG_APPID_NULL);
        String privateKey = Objects.requireNonNull(properties.getPrivateKey(), ERROR_MSG_PRIVATE_KEY_NULL);
        String format = AlipayConstants.FORMAT_JSON;
        String charset = AlipayConstants.CHARSET_UTF8;
        String alipayPublicKey = Objects.requireNonNull(properties.getAlipayPublicKey(),
                ERROR_MSG_ALIPAY_PUBLIC_KEY_NULL);
        String signType = AlipayConstants.SIGN_TYPE_RSA.equals(properties.getSignType()) ? AlipayConstants.SIGN_TYPE_RSA
                : AlipayConstants.SIGN_TYPE_RSA2;

        return new DefaultAlipayClient(gatewayUrl, appId, privateKey, format, charset, alipayPublicKey, signType);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy