diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/message/WxCpTpXmlMessage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/message/WxCpTpXmlMessage.java index b047ac54c..c2958eaf2 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/message/WxCpTpXmlMessage.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/message/WxCpTpXmlMessage.java @@ -25,8 +25,8 @@ import me.chanjar.weixin.cp.util.xml.XStreamTransformer; @Slf4j @Data public class WxCpTpXmlMessage implements Serializable { - private static final long serialVersionUID = 6031833682211475786L; + /** * 使用dom4j解析的存放所有xml属性和值的map. */ @@ -109,8 +109,8 @@ public class WxCpTpXmlMessage implements Serializable { protected String telephone; @XStreamAlias("Id") - @XStreamConverter(value = IntConverter.class) - protected Integer id; + @XStreamConverter(value = XStreamCDataConverter.class) + protected String id; @XStreamAlias("Name") @XStreamConverter(value = XStreamCDataConverter.class) @@ -410,7 +410,7 @@ public class WxCpTpXmlMessage implements Serializable { @XStreamAlias("NotifyNode") public static class NotifyNode implements Serializable { private static final long serialVersionUID = 6031833682211475786L; - + @XStreamAlias("ItemName") protected String itemName; @XStreamAlias("ItemUserId") diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/message/WxCpTpXmlMessageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/message/WxCpTpXmlMessageTest.java index 1e4a1450a..04d9455cf 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/message/WxCpTpXmlMessageTest.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/message/WxCpTpXmlMessageTest.java @@ -147,6 +147,7 @@ public class WxCpTpXmlMessageTest { " \n" + " \n" + " 1234567890123456\n" + + " " + " 1\n" + ""; @@ -156,6 +157,7 @@ public class WxCpTpXmlMessageTest { assertEquals(wxXmlMessage.getCreateTime(), Long.valueOf(1348831860)); assertEquals(wxXmlMessage.getMsgType(), "text"); assertEquals(wxXmlMessage.getMsgId(), "1234567890123456"); + assertEquals(wxXmlMessage.getId(), "etEsNADQAAaiB0cWCSDFiJ2qCap-ww9A"); } @Test @@ -231,4 +233,27 @@ public class WxCpTpXmlMessageTest { assertEquals(wxXmlMessage.getApprovalInfo().getNotifyNodes().get(0).getItemImage(), "http://www.qq.com/xxx.png"); assertEquals(wxXmlMessage.getApprovalInfo().getNotifyNodes().get(0).getItemUserId(), Integer.valueOf(3)); } + + @Test + public void testFromXml() { + String xml = "\n" + + " \n" + + " \n" + + " 1348831860\n" + + " \n" + + " \n" + + " 1234567890123456\n" + + " 2\n" + + " 1\n" + + ""; + + WxCpTpXmlMessage wxXmlMessage = WxCpTpXmlMessage.fromXml(xml); + assertEquals(wxXmlMessage.getToUserName(), "toUser"); + assertEquals(wxXmlMessage.getFromUserName(), "fromUser"); + assertEquals(wxXmlMessage.getCreateTime(), Long.valueOf(1348831860)); + assertEquals(wxXmlMessage.getMsgType(), "text"); + assertEquals(wxXmlMessage.getMsgId(), "1234567890123456"); + assertEquals(wxXmlMessage.getId(), "2"); + + } }