#123 支持微信支付的服务商功能

This commit is contained in:
Binary Wang 2017-03-01 23:35:48 +08:00
parent df59fa4906
commit 70a4512030
5 changed files with 108 additions and 0 deletions

View File

@ -80,6 +80,16 @@ public interface WxMpConfigStorage {
String getAppId();
/**
* 服务商模式下的子商户公众账号ID
*/
String getSubAppId();
/**
* 服务商模式下的子商户号
*/
String getSubMchId();
String getSecret();
String getPartnerId();

View File

@ -20,6 +20,8 @@ import java.util.concurrent.locks.ReentrantLock;
public class WxMpInMemoryConfigStorage implements WxMpConfigStorage {
protected volatile String appId;
protected volatile String subAppId;
protected volatile String subMchId;
protected volatile String secret;
protected volatile String partnerId;
protected volatile String partnerKey;
@ -349,4 +351,22 @@ public class WxMpInMemoryConfigStorage implements WxMpConfigStorage {
public boolean useSandboxForWxPay() {
return false;
}
@Override
public String getSubAppId() {
return subAppId;
}
public void setSubAppId(String subAppId) {
this.subAppId = subAppId;
}
@Override
public String getSubMchId() {
return subMchId;
}
public void setSubMchId(String subMchId) {
this.subMchId = subMchId;
}
}

View File

@ -268,9 +268,19 @@ public class WxMpPayServiceImpl implements WxMpPayService {
if (StringUtils.isBlank(request.getAppid())) {
request.setAppid(getConfig().getAppId());
}
if (StringUtils.isBlank(request.getMchId())) {
request.setMchId(getConfig().getPartnerId());
}
if (StringUtils.isBlank(request.getSubAppId())) {
request.setAppid(getConfig().getSubAppId());
}
if (StringUtils.isBlank(request.getSubMchId())) {
request.setMchId(getConfig().getSubMchId());
}
if (StringUtils.isBlank(request.getNonceStr())) {
request.setNonceStr(String.valueOf(System.currentTimeMillis()));
}

View File

@ -47,6 +47,32 @@ public abstract class WxPayBaseRequest {
*/
@XStreamAlias("mch_id")
protected String mchId;
/**
* <pre>
* 服务商模式下的子商户公众账号ID
* sub_appid
*
* String(32)
* wxd678efh567hg6787
* 微信分配的子商户公众账号ID
* </pre>
*/
@XStreamAlias("sub_appid")
protected String subAppId;
/**
* <pre>
* 服务商模式下的子商户号
* sub_mch_id
*
* String(32)
* 1230000109
* 微信支付分配的子商户号开发者模式下必填
* </pre>
*/
@XStreamAlias("sub_mch_id")
protected String subMchId;
/**
* <pre>
* 随机字符串
@ -128,6 +154,22 @@ public abstract class WxPayBaseRequest {
this.sign = sign;
}
public String getSubAppId() {
return subAppId;
}
public void setSubAppId(String subAppId) {
this.subAppId = subAppId;
}
public String getSubMchId() {
return subMchId;
}
public void setSubMchId(String subMchId) {
this.subMchId = subMchId;
}
@Override
public String toString() {
return ToStringUtils.toSimpleString(this);

View File

@ -61,6 +61,16 @@ public abstract class WxPayBaseResult {
*/
@XStreamAlias("mch_id")
private String mchId;
/**
* 服务商模式下的子公众账号ID
*/
@XStreamAlias("appid")
private String subAppId;
/**
* 服务商模式下的子商户号
*/
@XStreamAlias("sub_mch_id")
private String subMchId;
/**
* 随机字符串
*/
@ -181,6 +191,22 @@ public abstract class WxPayBaseResult {
this.sign = sign;
}
public String getSubAppId() {
return subAppId;
}
public void setSubAppId(String subAppId) {
this.subAppId = subAppId;
}
public String getSubMchId() {
return subMchId;
}
public void setSubMchId(String subMchId) {
this.subMchId = subMchId;
}
/**
* 将bean通过保存的xml字符串转换成map
*/