package com.doumee.config.wx;
|
|
import cn.binarywang.wx.miniapp.api.WxMaService;
|
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
|
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
|
import com.doumee.biz.system.SystemDictDataBiz;
|
import com.doumee.config.mybatis.SpringUtils;
|
import com.doumee.core.constants.Constants;
|
import com.github.binarywang.wxpay.config.WxPayConfig;
|
import com.github.binarywang.wxpay.constant.WxPayConstants;
|
import com.github.binarywang.wxpay.service.WxPayService;
|
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
|
import com.wechat.pay.java.core.Config;
|
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
|
import com.wechat.pay.java.service.billdownload.BillDownloadService;
|
import com.wechat.pay.java.service.partnerpayments.jsapi.JsapiService;
|
import com.wechat.pay.java.service.partnerpayments.jsapi.JsapiServiceExtension;
|
import com.wechat.pay.java.service.refund.RefundService;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Configuration;
|
|
import javax.annotation.PostConstruct;
|
|
/**
|
* 微信小程序组件
|
*/
|
@Configuration
|
public class WxMiniConfig {
|
/********微信小程序服务**********/
|
public static WxMaService wxMaService;
|
/********微信小程序支付**********/
|
public static JsapiService wxPayService;
|
public static WxPayService wxPayV2Service;
|
public static RefundService refundService;
|
public static JsapiServiceExtension jsapiExtService;
|
public static BillDownloadService billDownloadService;
|
public static WxPayProperties wxProperties;
|
public static TransferToUser transferToUser;
|
@Autowired
|
private WxPayProperties wxPayProperties;
|
|
public static WxMiniConfig me() {
|
return SpringUtils.get().getBean(WxMiniConfig.class);
|
}
|
|
@PostConstruct
|
void init() {
|
this.load_WxMaService();
|
this.load_wxPayService();
|
this.load_wxPayV2Service();
|
this.load_transferToUser();
|
this.load_transferToUser();
|
this.wxProperties = wxPayProperties;
|
}
|
/**
|
* 初始化微信小程序
|
*/
|
public void load_WxMaService() {
|
WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
|
if(wxPayProperties.getExistsSub() ==1){
|
//如果是服务商支付,取子商户信息
|
config.setAppid(StringUtils.trimToNull(wxPayProperties.getSubAppId()));
|
config.setSecret(StringUtils.trimToNull(wxPayProperties.getSubAppSecret()));
|
}else {
|
config.setAppid(StringUtils.trimToNull(wxPayProperties.getAppId()));
|
config.setSecret(StringUtils.trimToNull(wxPayProperties.getAppSecret()));
|
}
|
config.setMsgDataFormat("JSON");
|
//config.setToken("");
|
//config.setAesKey("");
|
WxMaService wxMaService = new WxMaServiceImpl();
|
wxMaService.setWxMaConfig(config);
|
this.wxMaService = wxMaService;
|
}
|
|
/**
|
* 初始化微信小程序支付
|
*/
|
public void load_wxPayService() {
|
try {
|
Config config =
|
new RSAAutoCertificateConfig.Builder()
|
.merchantId(wxPayProperties.getMchId())
|
.privateKeyFromPath(wxPayProperties.getPrivateKeyPath())
|
.merchantSerialNumber(wxPayProperties.getSerialNumer())
|
.apiV3Key(wxPayProperties.getApiV3Key())
|
.build();
|
this.wxPayService = new JsapiService.Builder().config(config).build();
|
|
this.jsapiExtService = new JsapiServiceExtension.Builder().config(config).build();
|
this.refundService = new RefundService.Builder().config(config).build();
|
this.billDownloadService = new BillDownloadService.Builder().config(config).build();
|
}catch (Exception e){
|
e.printStackTrace();
|
|
}
|
}
|
|
/**
|
* 初始化微信小程序支付
|
*/
|
public void load_wxPayV2Service()
|
{
|
WxPayConfig payConfig = new WxPayConfig();
|
payConfig.setTradeType(WxPayConstants.TradeType.JSAPI);
|
payConfig.setSignType(WxPayConstants.SignType.MD5);
|
payConfig.setAppId(StringUtils.trimToNull(wxPayProperties.getAppId()));
|
payConfig.setSubAppId(StringUtils.trimToNull(wxPayProperties.getSubAppId()));
|
payConfig.setMchId(StringUtils.trimToNull(wxPayProperties.getMchId()));
|
payConfig.setSubMchId(StringUtils.trimToNull(wxPayProperties.getSubMchId()));
|
payConfig.setMchKey(StringUtils.trimToNull(wxPayProperties.getMchKey()));
|
// payConfig.setKeyPath(StringUtils.trimToNull(wxPayProperties.getKeyPath()));
|
payConfig.setNotifyUrl(StringUtils.trimToNull(wxPayProperties.getNotifyUrl()));
|
WxPayService wxPayService = new WxPayServiceImpl();
|
wxPayService.setConfig(payConfig);
|
this.wxPayV2Service = wxPayService;
|
}
|
|
|
/**
|
* 初始化微信小程序支付
|
*/
|
// public void load_wxPayService() {
|
// WxPayConfig payConfig = new WxPayConfig();
|
// payConfig.setTradeType(WxPayConstants.TradeType.JSAPI);
|
// payConfig.setSignType(WxPayConstants.SignType.MD5);
|
// payConfig.setAppId(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_AppID.getCode())));
|
// payConfig.setMchId(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_MchId.getCode())));
|
// payConfig.setMchKey(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_MchKey.getCode())));
|
// payConfig.setKeyPath(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_KeyPath.getCode())));
|
// payConfig.setNotifyUrl(StringUtils.trimToNull(sysDictService.getSysDictValue(SysDictEnum.WX_MINI_NotifyUrl.getCode())));
|
// WxPayService wxPayService = new WxPayServiceImpl();
|
// wxPayService.setConfig(payConfig);
|
// this.wxPayService = wxPayService;
|
// }
|
|
|
public void load_transferToUser()
|
{
|
TransferToUser transferToUser = new TransferToUser(
|
StringUtils.trimToNull(wxPayProperties.getSubMchId()), //商户id
|
StringUtils.trimToNull(wxPayProperties.getWechatSerialNumer()), //商户API证书序列号,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013053053
|
StringUtils.trimToNull(wxPayProperties.getWechatPrivateKeyPath()), // 商户API证书私钥文件路径,本地文件路径
|
StringUtils.trimToNull(wxPayProperties.getWechatPayPublicKeyId()), // 微信支付公钥ID,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013038816
|
StringUtils.trimToNull(wxPayProperties.getWechatPubKeyPath()) // 微信支付公钥文件路径,本地文件路径
|
);
|
|
// TransferToUser client = new TransferToUser(
|
// "1229817002", // 商户号,是由微信支付系统生成并分配给每个商户的唯一标识符,商户号获取方式参考 https://pay.weixin.qq.com/doc/v3/merchant/4013070756
|
// "3FE90C2F3D40A56E1C51926F31B8A8D22426CCE0", // 商户API证书序列号,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013053053
|
// "d://wechatApiclient_key.pem", // 商户API证书私钥文件路径,本地文件路径
|
// "PUB_KEY_ID_0112298170022025071700291836000600", // 微信支付公钥ID,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013038816
|
// "d://pub_key.pem" // 微信支付公钥文件路径,本地文件路径
|
// );
|
this.transferToUser = transferToUser;
|
}
|
|
|
}
|