diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/mch/APPPayRequest.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/mch/APPPayRequest.java
index f70dd329..66e1a8a7 100644
--- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/mch/APPPayRequest.java
+++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/mch/APPPayRequest.java
@@ -2,6 +2,7 @@ package com.foxinmy.weixin4j.payment.mch;
import com.foxinmy.weixin4j.model.WeixinPayAccount;
import com.foxinmy.weixin4j.payment.PayRequest;
+import com.foxinmy.weixin4j.type.SignType;
import com.foxinmy.weixin4j.type.TradeType;
import com.foxinmy.weixin4j.util.DigestUtil;
import com.foxinmy.weixin4j.util.MapUtil;
@@ -37,16 +38,18 @@ public class APPPayRequest extends AbstractPayRequest {
"Sign=WXPay");
payRequest.setPartnerId(getPaymentAccount().getPartnerId());
payRequest.setPrepayId(getPrePayId());
+ String sign = DigestUtil.MD5(
+ String.format("%s&key=%s",
+ MapUtil.toJoinString(payRequest, false, true),
+ getPaymentAccount().getPaySignKey())).toUpperCase();
+ payRequest.setPaySign(sign);
+ payRequest.setSignType(SignType.MD5);
return payRequest;
}
@Override
public String toRequestString() {
PayRequest payRequest = toRequestObject();
- String sign = DigestUtil.MD5(
- String.format("%s&key=%s",
- MapUtil.toJoinString(payRequest, false, true),
- getPaymentAccount().getPaySignKey())).toUpperCase();
StringBuilder content = new StringBuilder();
content.append("");
content.append(String.format("",
@@ -61,7 +64,8 @@ public class APPPayRequest extends AbstractPayRequest {
payRequest.getNonceStr()));
content.append(String.format("",
payRequest.getTimeStamp()));
- content.append(String.format("", sign));
+ content.append(String.format("",
+ payRequest.getPaySign()));
content.append("");
return content.toString();
}
diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/mch/OpenIdResult.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/mch/OpenIdResult.java
index 4ed9436e..2d494554 100644
--- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/mch/OpenIdResult.java
+++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/payment/mch/OpenIdResult.java
@@ -29,13 +29,24 @@ public class OpenIdResult extends MerchantResult {
@JSONField(name = "openid")
private String openId;
+ /**
+ * 用户在商户appid下的唯一标识
+ */
+ @XmlElement(name = "sub_openid")
+ @JSONField(name = "sub_openid")
+ private String subOpenId;
+
public String getOpenId() {
return openId;
}
+ public String getSubOpenId() {
+ return subOpenId;
+ }
+
@Override
public String toString() {
- return "OpenIdResult [openId=" + openId + ", "
- + super.toString() + "]";
+ return "OpenIdResult [openId=" + openId + ", subOpenId=" + subOpenId
+ + ", " + super.toString() + "]";
}
}
diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/xml/XmlStream.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/xml/XmlStream.java
index b7cc350d..5d849743 100644
--- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/xml/XmlStream.java
+++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/xml/XmlStream.java
@@ -44,7 +44,7 @@ import com.foxinmy.weixin4j.util.StringUtil;
public final class XmlStream {
private final static String ROOT_ELEMENT_XML = "xml";
private final static String XML_VERSION = "1.0";
- private final static ConcurrentHashMap, JAXBContext> jaxbContexts = new ConcurrentHashMap, JAXBContext>();;
+ private final static ConcurrentHashMap, JAXBContext> jaxbContexts = new ConcurrentHashMap, JAXBContext>();
/**
* Xml2Bean
diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/weixin.properties b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/weixin.properties
index 06f748f5..503db113 100644
--- a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/weixin.properties
+++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/weixin.properties
@@ -190,6 +190,12 @@ tag_untagging_uri={api_cgi_url}/tags/members/batchuntagging?access_token=%s
tag_userids_uri={api_cgi_url}/tags/getidlist?access_token=%s
# \u83b7\u53d6\u6807\u7b7e\u4e0b\u7c89\u4e1d\u5217\u8868
tag_user_uri={api_cgi_url}/user/tag/get?access_token=%s
+# \u83b7\u53d6\u9ed1\u540d\u5355\u5217\u8868
+getblacklist_uri={api_cgi_url}/tags/members/getblacklist?access_token=%s
+# \u62c9\u9ed1\u7528\u6237
+batchblacklist_uri={api_cgi_url}/tags/members/batchblacklist?access_token=%s
+# \u53d6\u6d88\u62c9\u9ed1\u7528\u6237
+batchunblacklist_uri={api_cgi_url}/tags/members/batchunblacklist?access_token=%s
# \u521b\u5efa\u5361\u5238
card_create_uri={api_base_url}/card/create?access_token=%s