Bladeren bron

Merge pull request #254 from kakotor/develop

XStreamTransformer 增加注册方法,来注册自定义的消息类型
master
Daniel Qian 9 jaren geleden
bovenliggende
commit
00a197a130
5 gewijzigde bestanden met toevoegingen van 100 en 7 verwijderingen
  1. +9
    -0
      weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/xml/XStreamTransformer.java
  2. +5
    -6
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpXmlOutTransferCustomerServiceMessage.java
  3. +6
    -1
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/outxmlbuilder/TransferCustomerServiceBuilder.java
  4. +10
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/xml/XStreamTransformer.java
  5. +70
    -0
      weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/WxMpXmlOutTransferCustomerServiceMessageTest.java

+ 9
- 0
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/xml/XStreamTransformer.java Bestand weergeven

@@ -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
*


+ 5
- 6
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpXmlOutTransferCustomerServiceMessage.java Bestand weergeven

@@ -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")


+ 6
- 1
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/outxmlbuilder/TransferCustomerServiceBuilder.java Bestand weergeven

@@ -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<TransferCu
public WxMpXmlOutTransferCustomerServiceMessage build() {
WxMpXmlOutTransferCustomerServiceMessage m = new WxMpXmlOutTransferCustomerServiceMessage();
setCommon(m);
m.setKfAccount(kfAccount);
if(StringUtils.isNotBlank(kfAccount)){
WxMpXmlOutTransferCustomerServiceMessage.TransInfo transInfo = new WxMpXmlOutTransferCustomerServiceMessage.TransInfo();
transInfo.setKfAccount(kfAccount);
m.setTransInfo(transInfo);
}
return m;
}
}

+ 10
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/xml/XStreamTransformer.java Bestand weergeven

@@ -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
*


+ 70
- 0
weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/WxMpXmlOutTransferCustomerServiceMessageTest.java Bestand weergeven

@@ -0,0 +1,70 @@
package me.chanjar.weixin.mp.bean;

import org.testng.Assert;
import org.testng.annotations.Test;

/**
* Created by ben on 2015/12/29.
*/
public class WxMpXmlOutTransferCustomerServiceMessageTest {
@Test
public void test() {
WxMpXmlOutTransferCustomerServiceMessage m = new WxMpXmlOutTransferCustomerServiceMessage();
m.setCreateTime(1399197672L);
m.setFromUserName("fromuser");
m.setToUserName("touser");

String expected = "<xml>" +
"<ToUserName><![CDATA[touser]]></ToUserName>" +
"<FromUserName><![CDATA[fromuser]]></FromUserName>" +
"<CreateTime>1399197672</CreateTime>" +
"<MsgType><![CDATA[transfer_customer_service]]></MsgType>" +
"</xml>";
System.out.println(m.toXml());
Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", ""));

expected = " <xml>" +
"<ToUserName><![CDATA[touser]]></ToUserName>" +
"<FromUserName><![CDATA[fromuser]]></FromUserName>" +
"<CreateTime>1399197672</CreateTime>" +
"<MsgType><![CDATA[transfer_customer_service]]></MsgType>" +
"<TransInfo>" +
"<KfAccount><![CDATA[test1@test]]></KfAccount>" +
"</TransInfo>" +
"</xml>";
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 = "<xml>" +
"<ToUserName><![CDATA[touser]]></ToUserName>" +
"<FromUserName><![CDATA[fromuser]]></FromUserName>" +
"<CreateTime>1399197672</CreateTime>" +
"<MsgType><![CDATA[transfer_customer_service]]></MsgType>" +
"</xml>";
System.out.println(m.toXml());
Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", ""));


expected = " <xml>" +
"<ToUserName><![CDATA[touser]]></ToUserName>" +
"<FromUserName><![CDATA[fromuser]]></FromUserName>" +
"<CreateTime>1399197672</CreateTime>" +
"<MsgType><![CDATA[transfer_customer_service]]></MsgType>" +
"<TransInfo>" +
"<KfAccount><![CDATA[test1@test]]></KfAccount>" +
"</TransInfo>" +
"</xml>";
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", ""));
}
}

Laden…
Annuleren
Opslaan