From 49454655c66887dfb62b70d8430a96bd0b4621ee Mon Sep 17 00:00:00 2001 From: thomas2050 <37628237+thomas2050@users.noreply.github.com> Date: Thu, 9 May 2019 11:55:23 +0800 Subject: [PATCH] =?UTF-8?q?#1037=20=E4=BF=AE=E5=A4=8D=E9=80=9A=E8=AE=AF?= =?UTF-8?q?=E5=BD=95=E5=8F=98=E6=9B=B4=E4=BA=8B=E4=BB=B6ExtAttr=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E6=8A=A5=E9=94=99=EF=BC=8C=E5=B9=B6=E8=A1=A5=E5=85=85?= =?UTF-8?q?Address=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 新增跳转型会员卡,用户提交资料的信息参数解析 * 修复通讯录变更事件ExtAttr解析报错,并补充Address属性 --- .../weixin/cp/bean/WxCpXmlMessage.java | 15 ++++++++- .../weixin/cp/bean/WxCpXmlMessageTest.java | 32 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java index 90d67b07..5a6a0529 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpXmlMessage.java @@ -8,6 +8,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import com.thoughtworks.xstream.annotations.XStreamImplicit; import org.apache.commons.io.IOUtils; import com.thoughtworks.xstream.annotations.XStreamAlias; @@ -247,6 +248,13 @@ public class WxCpXmlMessage implements Serializable { @XStreamConverter(value = XStreamCDataConverter.class) private String telephone; + /** + * 地址. + */ + @XStreamAlias("Address") + @XStreamConverter(value = XStreamCDataConverter.class) + private String address; + /** * 扩展属性. */ @@ -327,17 +335,20 @@ public class WxCpXmlMessage implements Serializable { */ @XStreamAlias("TotalCount") private Integer totalCount; + /** * 过滤. * (过滤是指特定地区、性别的过滤、用户设置拒收的过滤,用户接收已超4条的过滤)后,准备发送的粉丝数,原则上,filterCount = sentCount + errorCount */ @XStreamAlias("FilterCount") private Integer filterCount; + /** * 发送成功的粉丝数. */ @XStreamAlias("SentCount") private Integer sentCount; + /** * 发送失败的粉丝数. */ @@ -411,9 +422,11 @@ public class WxCpXmlMessage implements Serializable { @Data public static class ExtAttr { - @XStreamAlias("Item") + + @XStreamImplicit(itemFieldName = "Item") protected final List items = new ArrayList<>(); + @XStreamAlias("Item") @Data public static class Item { @XStreamAlias("Name") diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java index 68c57c3d..aaf40324 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java @@ -117,4 +117,36 @@ public class WxCpXmlMessageTest { assertEquals(wxMessage.getSendPicsInfo().getPicList().get(0).getPicMd5Sum(), "aef52ae501537e552725c5d7f99c1741"); assertEquals(wxMessage.getSendPicsInfo().getPicList().get(1).getPicMd5Sum(), "c4564632a4fab91378c39bea6aad6f9e"); } + + public void testExtAttr() { + + String xml = "" + + " " + + " " + + " 1557241961" + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + "
" + + "
"; + WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xml); + assertEquals(wxMessage.getToUserName(), "w56c9fe3d50ad1ea2"); + assertEquals(wxMessage.getFromUserName(), "sys"); + assertEquals(wxMessage.getCreateTime(), new Long(1557241961)); + assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.EVENT); + assertEquals(wxMessage.getEvent(), "change_contact"); + assertEquals(wxMessage.getChangeType(), "update_user"); + assertEquals(wxMessage.getUserId(), "zhangsan"); + assertNotNull(wxMessage.getExtAttrs()); + assertNotNull(wxMessage.getExtAttrs().getItems()); + assertEquals(wxMessage.getExtAttrs().getItems().size(), 3); + assertEquals(wxMessage.getExtAttrs().getItems().get(0).getName(), "爱好"); + + } }