| @@ -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 | ||||
| */ | */ | ||||