@@ -80,6 +80,16 @@ public interface WxMpConfigStorage { | |||||
String getAppId(); | String getAppId(); | ||||
/** | |||||
* 服务商模式下的子商户公众账号ID | |||||
*/ | |||||
String getSubAppId(); | |||||
/** | |||||
* 服务商模式下的子商户号 | |||||
*/ | |||||
String getSubMchId(); | |||||
String getSecret(); | String getSecret(); | ||||
String getPartnerId(); | String getPartnerId(); | ||||
@@ -20,6 +20,8 @@ import java.util.concurrent.locks.ReentrantLock; | |||||
public class WxMpInMemoryConfigStorage implements WxMpConfigStorage { | public class WxMpInMemoryConfigStorage implements WxMpConfigStorage { | ||||
protected volatile String appId; | protected volatile String appId; | ||||
protected volatile String subAppId; | |||||
protected volatile String subMchId; | |||||
protected volatile String secret; | protected volatile String secret; | ||||
protected volatile String partnerId; | protected volatile String partnerId; | ||||
protected volatile String partnerKey; | protected volatile String partnerKey; | ||||
@@ -349,4 +351,22 @@ public class WxMpInMemoryConfigStorage implements WxMpConfigStorage { | |||||
public boolean useSandboxForWxPay() { | public boolean useSandboxForWxPay() { | ||||
return false; | 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; | |||||
} | |||||
} | } |
@@ -268,9 +268,19 @@ public class WxMpPayServiceImpl implements WxMpPayService { | |||||
if (StringUtils.isBlank(request.getAppid())) { | if (StringUtils.isBlank(request.getAppid())) { | ||||
request.setAppid(getConfig().getAppId()); | request.setAppid(getConfig().getAppId()); | ||||
} | } | ||||
if (StringUtils.isBlank(request.getMchId())) { | if (StringUtils.isBlank(request.getMchId())) { | ||||
request.setMchId(getConfig().getPartnerId()); | 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())) { | if (StringUtils.isBlank(request.getNonceStr())) { | ||||
request.setNonceStr(String.valueOf(System.currentTimeMillis())); | request.setNonceStr(String.valueOf(System.currentTimeMillis())); | ||||
} | } | ||||
@@ -47,6 +47,32 @@ public abstract class WxPayBaseRequest { | |||||
*/ | */ | ||||
@XStreamAlias("mch_id") | @XStreamAlias("mch_id") | ||||
protected String mchId; | 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> | * <pre> | ||||
* 随机字符串 | * 随机字符串 | ||||
@@ -128,6 +154,22 @@ public abstract class WxPayBaseRequest { | |||||
this.sign = sign; | 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 | @Override | ||||
public String toString() { | public String toString() { | ||||
return ToStringUtils.toSimpleString(this); | return ToStringUtils.toSimpleString(this); | ||||
@@ -61,6 +61,16 @@ public abstract class WxPayBaseResult { | |||||
*/ | */ | ||||
@XStreamAlias("mch_id") | @XStreamAlias("mch_id") | ||||
private String mchId; | 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; | 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 | * 将bean通过保存的xml字符串转换成map | ||||
*/ | */ | ||||