WxProperties WxConfig
阅读原文时间:2023年07月08日阅读:2

package org.linlinjava.litemall.core.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "litemall.wx")
public class WxProperties {

private String appId;

private String appSecret;

private String mchId;

private String mchKey;

private String notifyUrl;

private String keyPath;

public String getNotifyUrl() {  
    return notifyUrl;  
}

public void setNotifyUrl(String notifyUrl) {  
    this.notifyUrl = notifyUrl;  
}

public String getMchKey() {  
    return mchKey;  
}

public void setMchKey(String mchKey) {  
    this.mchKey = mchKey;  
}

public String getAppId() {  
    return this.appId;  
}

public void setAppId(String appId) {  
    this.appId = appId;  
}

public String getAppSecret() {  
    return appSecret;  
}

public void setAppSecret(String appSecret) {  
    this.appSecret = appSecret;  
}

public String getMchId() {  
    return mchId;  
}

public void setMchId(String mchId) {  
    this.mchId = mchId;  
}

public String getKeyPath() {  
    return keyPath;  
}

public void setKeyPath(String keyPath) {  
    this.keyPath = keyPath;  
}  

}

package org.linlinjava.litemall.core.config;

import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.WxMaConfig;
import cn.binarywang.wx.miniapp.config.WxMaInMemoryConfig;
import com.github.binarywang.wxpay.config.WxPayConfig;
import com.github.binarywang.wxpay.service.WxPayService;
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class WxConfig {
@Autowired
private WxProperties properties;

@Bean  
public WxMaConfig wxMaConfig() {  
    WxMaInMemoryConfig config = new WxMaInMemoryConfig();  
    config.setAppid(properties.getAppId());  
    config.setSecret(properties.getAppSecret());  
    return config;  
}

@Bean  
public WxMaService wxMaService(WxMaConfig maConfig) {  
    WxMaService service = new WxMaServiceImpl();  
    service.setWxMaConfig(maConfig);  
    return service;  
}

@Bean  
public WxPayConfig wxPayConfig() {  
    WxPayConfig payConfig = new WxPayConfig();  
    payConfig.setAppId(properties.getAppId());  
    payConfig.setMchId(properties.getMchId());  
    payConfig.setMchKey(properties.getMchKey());  
    payConfig.setNotifyUrl(properties.getNotifyUrl());  
    payConfig.setKeyPath(properties.getKeyPath());  
    payConfig.setTradeType("JSAPI");  
    payConfig.setSignType("MD5");  
    return payConfig;  
}

@Bean  
public WxPayService wxPayService(WxPayConfig payConfig) {  
    WxPayService wxPayService = new WxPayServiceImpl();  
    wxPayService.setConfig(payConfig);  
    return wxPayService;  
}  

}

application.yml

spring:
profiles:
active: core, db
messages:
encoding: UTF-8

logging:
level:
root: ERROR
org.springframework: ERROR
org.mybatis: ERROR
org.linlinjava.litemall.core: DEBUG

application-core.yml

litemall:
# 开发者应该设置成自己的wx相关信息
wx:
app-id: wxa5b486c6b918ecfb
app-secret: e04004829d4c383b4db7769d88dfbca1
mch-id: 111111
mch-key: xxxxxx
notify-url: http://www.example.com/wx/order/pay-notify
# 商户证书文件路径
# 请参考“商户证书”一节 https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=4_3
key-path: xxxxx

        <dependency>  
            <groupId>com.github.binarywang</groupId>  
            <artifactId>weixin-java-pay</artifactId>  
            <version>3.3.0</version>  
        </dependency>

        <dependency>  
            <groupId>com.github.binarywang</groupId>  
            <artifactId>weixin-java-miniapp</artifactId>  
            <version>3.3.0</version>  
        </dependency>