mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-10-31 10:38:42 +08:00 
			
		
		
		
	修改me.chanjar.weixin.mp.bean.WxMpXmlOutTransferCustomerServiceMessage 支持将消息转发到多客服(https://mp.weixin.qq.com/wiki/5/ae230189c9bd07a6b221f48619aeef35.html)中的两种方式
This commit is contained in:
		| @ -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") | ||||
|  | ||||
| @ -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; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -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", "")); | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 ben
					ben