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