From 5778b42e1e73970859f9497bf85b34a07997bdcd Mon Sep 17 00:00:00 2001 From: ben Date: Fri, 25 Dec 2015 14:40:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?XStreamTransformer=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E6=96=B9=E6=B3=95,=E6=9D=A5=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E8=87=AA=E5=AE=9A=E4=B9=89=E7=9A=84=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chanjar/weixin/cp/util/xml/XStreamTransformer.java | 9 +++++++++ .../chanjar/weixin/mp/util/xml/XStreamTransformer.java | 10 ++++++++++ 2 files changed, 19 insertions(+) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/xml/XStreamTransformer.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/xml/XStreamTransformer.java index c6c5a5f1..12dd8992 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/xml/XStreamTransformer.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/xml/XStreamTransformer.java @@ -31,6 +31,15 @@ public class XStreamTransformer { return object; } + /** + * 注册扩展消息的解析器 + * @param clz 类型 + * @param xStream xml解析器 + */ + public static void register(Class clz,XStream xStream){ + CLASS_2_XSTREAM_INSTANCE.put(clz,xStream); + } + /** * pojo -> xml * diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/xml/XStreamTransformer.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/xml/XStreamTransformer.java index 71844eb9..254f2147 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/xml/XStreamTransformer.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/xml/XStreamTransformer.java @@ -31,6 +31,16 @@ public class XStreamTransformer { return object; } + /** + * 注册扩展消息的解析器 + * @param clz 类型 + * @param xStream xml解析器 + */ + public static void register(Class clz,XStream xStream){ + CLASS_2_XSTREAM_INSTANCE.put(clz,xStream); + } + + /** * pojo -> xml * From 0619c3f01edc2a1d85ecd8ea5a19807f07558a4c Mon Sep 17 00:00:00 2001 From: ben Date: Tue, 29 Dec 2015 10:10:45 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9me.chanjar.weixin.mp.bean?= =?UTF-8?q?.WxMpXmlOutTransferCustomerServiceMessage=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=B0=86=E6=B6=88=E6=81=AF=E8=BD=AC=E5=8F=91=E5=88=B0=E5=A4=9A?= =?UTF-8?q?=E5=AE=A2=E6=9C=8D(https://mp.weixin.qq.com/wiki/5/ae230189c9bd?= =?UTF-8?q?07a6b221f48619aeef35.html)=E4=B8=AD=E7=9A=84=E4=B8=A4=E7=A7=8D?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...pXmlOutTransferCustomerServiceMessage.java | 11 ++- .../TransferCustomerServiceBuilder.java | 7 +- ...OutTransferCustomerServiceMessageTest.java | 70 +++++++++++++++++++ 3 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/WxMpXmlOutTransferCustomerServiceMessageTest.java diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpXmlOutTransferCustomerServiceMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpXmlOutTransferCustomerServiceMessage.java index 5783d2b4..67c3d28e 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpXmlOutTransferCustomerServiceMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpXmlOutTransferCustomerServiceMessage.java @@ -4,23 +4,22 @@ import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamConverter; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; -import me.chanjar.weixin.common.util.xml.XStreamMediaIdConverter; @XStreamAlias("xml") public class WxMpXmlOutTransferCustomerServiceMessage extends WxMpXmlOutMessage { @XStreamAlias("TransInfo") - protected final TransInfo transInfo = new TransInfo(); + protected TransInfo transInfo; public WxMpXmlOutTransferCustomerServiceMessage() { this.msgType = WxConsts.CUSTOM_MSG_TRANSFER_CUSTOMER_SERVICE; } - public String getKfAccount() { - return transInfo.getKfAccount(); + public TransInfo getTransInfo() { + return transInfo; } - public void setKfAccount(String kfAccount) { - transInfo.setKfAccount(kfAccount); + public void setTransInfo(TransInfo transInfo) { + this.transInfo = transInfo; } @XStreamAlias("TransInfo") diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/outxmlbuilder/TransferCustomerServiceBuilder.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/outxmlbuilder/TransferCustomerServiceBuilder.java index 01acf8d7..d004eb56 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/outxmlbuilder/TransferCustomerServiceBuilder.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/outxmlbuilder/TransferCustomerServiceBuilder.java @@ -1,5 +1,6 @@ package me.chanjar.weixin.mp.bean.outxmlbuilder; +import me.chanjar.weixin.common.util.StringUtils; import me.chanjar.weixin.mp.bean.WxMpXmlOutTransferCustomerServiceMessage; /** @@ -22,7 +23,11 @@ public final class TransferCustomerServiceBuilder extends BaseBuilder" + + "" + + "1399197672" + + "" + + ""; + System.out.println(m.toXml()); + Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", "")); + + expected = " " + + "" + + "" + + "1399197672" + + "" + + "" + + "" + + "" + + ""; + WxMpXmlOutTransferCustomerServiceMessage.TransInfo transInfo = new WxMpXmlOutTransferCustomerServiceMessage.TransInfo(); + transInfo.setKfAccount("test1@test"); + m.setTransInfo(transInfo); + System.out.println(m.toXml()); + Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", "")); + } + + @Test + public void testBuild() { + WxMpXmlOutTransferCustomerServiceMessage m = WxMpXmlOutMessage.TRANSFER_CUSTOMER_SERVICE().fromUser("fromuser").toUser("touser").build(); + m.setCreateTime(1399197672L); + String expected = "" + + "" + + "" + + "1399197672" + + "" + + ""; + System.out.println(m.toXml()); + Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", "")); + + + expected = " " + + "" + + "" + + "1399197672" + + "" + + "" + + "" + + "" + + ""; + m = WxMpXmlOutMessage.TRANSFER_CUSTOMER_SERVICE().kfAccount("test1@test").fromUser("fromuser").toUser("touser").build(); + m.setCreateTime(1399197672L); + System.out.println(m.toXml()); + Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", "")); + } +} \ No newline at end of file