Browse Source

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

master
Binary Wang 8 years ago
parent
commit
70a4512030
5 changed files with 108 additions and 0 deletions
  1. +10
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpConfigStorage.java
  2. +20
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java
  3. +10
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImpl.java
  4. +42
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/pay/request/WxPayBaseRequest.java
  5. +26
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/pay/result/WxPayBaseResult.java

+ 10
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpConfigStorage.java View File

@@ -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
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInMemoryConfigStorage.java View File

@@ -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;
}
} }

+ 10
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImpl.java View File

@@ -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()));
} }


+ 42
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/pay/request/WxPayBaseRequest.java View File

@@ -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);


+ 26
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/pay/result/WxPayBaseResult.java View File

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


Loading…
Cancel
Save