被动响应消息测试

This commit is contained in:
Daniel Qian
2014-10-21 18:03:24 +08:00
parent 23e4a321ea
commit b69aa77fbc
26 changed files with 104 additions and 102 deletions

View File

@@ -3,7 +3,7 @@ package me.chanjar.weixin.enterprise.api;
import java.util.Map;
import me.chanjar.weixin.enterprise.bean.WxCpXmlMessage;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutMessage;
/**
* 处理微信推送消息的处理器接口
@@ -18,6 +18,6 @@ public interface WxCpMessageHandler {
* @param context 上下文如果handler或interceptor之间有信息要传递可以用这个
* @return xml格式的消息如果在异步规则里处理的话可以返回null
*/
public WxXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context);
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context);
}

View File

@@ -9,7 +9,7 @@ import java.util.concurrent.Executors;
import java.util.regex.Pattern;
import me.chanjar.weixin.enterprise.bean.WxCpXmlMessage;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutMessage;
/**
* <pre>
@@ -57,7 +57,7 @@ public class WxCpMessageRouter {
* 处理微信消息
* @param wxMessage
*/
public WxXmlOutMessage route(final WxCpXmlMessage wxMessage) {
public WxCpXmlOutMessage route(final WxCpXmlMessage wxMessage) {
final List<Rule> matchRules = new ArrayList<Rule>();
// 收集匹配的规则
for (final Rule rule : rules) {
@@ -86,7 +86,7 @@ public class WxCpMessageRouter {
return null;
}
WxXmlOutMessage res = null;
WxCpXmlOutMessage res = null;
for (final Rule rule : matchRules) {
// 返回最后一个匹配规则的结果
res = rule.service(wxMessage);
@@ -270,7 +270,7 @@ public class WxCpMessageRouter {
* @param wxMessage
* @return true 代表继续执行别的routerfalse 代表停止执行别的router
*/
protected WxXmlOutMessage service(WxCpXmlMessage wxMessage) {
protected WxCpXmlOutMessage service(WxCpXmlMessage wxMessage) {
Map<String, Object> context = new HashMap<String, Object>();
// 如果拦截器不通过
for (WxCpMessageInterceptor interceptor : this.interceptors) {
@@ -280,7 +280,7 @@ public class WxCpMessageRouter {
}
// 交给handler处理
WxXmlOutMessage res = null;
WxCpXmlOutMessage res = null;
for (WxCpMessageHandler handler : this.handlers) {
// 返回最后handler的结果
res = handler.handle(wxMessage, context);

View File

@@ -34,6 +34,9 @@ public class WxCpXmlMessage {
// 以下都是微信推送过来的消息的xml的element所对应的属性
///////////////////////
@XmlElement(name="AgentID")
private Integer agentId;
@XmlElement(name = "ToUserName")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String toUserName;
@@ -161,6 +164,14 @@ public class WxCpXmlMessage {
@XmlElement(name = "SendLocationInfo")
private SendLocationInfo sendLocationInfo = new SendLocationInfo();
public Integer getAgentId() {
return agentId;
}
public void setAgentId(Integer agentId) {
this.agentId = agentId;
}
public String getToUserName() {
return toUserName;
}
@@ -380,7 +391,7 @@ public class WxCpXmlMessage {
this.fromUserName = fromUserName;
}
public static WxCpXmlMessage fromXml(String xml) {
protected static WxCpXmlMessage fromXml(String xml) {
try {
return XmlTransformer.fromXml(WxCpXmlMessage.class, xml);
} catch (JAXBException e) {
@@ -388,7 +399,7 @@ public class WxCpXmlMessage {
}
}
public static WxCpXmlMessage fromXml(InputStream is) {
protected static WxCpXmlMessage fromXml(InputStream is) {
try {
return XmlTransformer.fromXml(WxCpXmlMessage.class, is);
} catch (JAXBException e) {

View File

@@ -11,13 +11,13 @@ import me.chanjar.weixin.enterprise.util.xml.MediaIdMarshaller;
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WxXmlOutImageMessage extends WxXmlOutMessage {
public class WxCpXmlOutImageMessage extends WxCpXmlOutMessage {
@XmlElement(name="Image")
@XmlJavaTypeAdapter(MediaIdMarshaller.class)
private String mediaId;
public WxXmlOutImageMessage() {
public WxCpXmlOutImageMessage() {
this.msgType = WxConsts.XML_MSG_IMAGE;
}

View File

@@ -20,7 +20,7 @@ import me.chanjar.weixin.enterprise.util.xml.XmlTransformer;
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WxXmlOutMessage {
public class WxCpXmlOutMessage {
@XmlElement(name="ToUserName")
@XmlJavaTypeAdapter(AdapterCDATA.class)
@@ -69,7 +69,7 @@ public class WxXmlOutMessage {
this.msgType = msgType;
}
public String toXml() {
protected String toXml() {
try {
return XmlTransformer.toXml((Class)this.getClass(), this);
} catch (JAXBException e) {

View File

@@ -15,7 +15,7 @@ import me.chanjar.weixin.enterprise.util.xml.AdapterCDATA;
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WxXmlOutMewsMessage extends WxXmlOutMessage {
public class WxCpXmlOutMewsMessage extends WxCpXmlOutMessage {
@XmlElement(name = "ArticleCount")
protected int articleCount;
@@ -24,7 +24,7 @@ public class WxXmlOutMewsMessage extends WxXmlOutMessage {
@XmlElement(name = "item")
protected final List<Item> articles = new ArrayList<Item>();
public WxXmlOutMewsMessage() {
public WxCpXmlOutMewsMessage() {
this.msgType = WxConsts.XML_MSG_NEWS;
}

View File

@@ -11,12 +11,12 @@ import me.chanjar.weixin.enterprise.util.xml.AdapterCDATA;
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WxXmlOutMusicMessage extends WxXmlOutMessage {
public class WxCpXmlOutMusicMessage extends WxCpXmlOutMessage {
@XmlElement(name = "Music")
protected final Music music = new Music();
public WxXmlOutMusicMessage() {
public WxCpXmlOutMusicMessage() {
this.msgType = WxConsts.XML_MSG_MUSIC;
}

View File

@@ -11,13 +11,13 @@ import me.chanjar.weixin.enterprise.util.xml.AdapterCDATA;
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WxXmlOutTextMessage extends WxXmlOutMessage {
public class WxCpXmlOutTextMessage extends WxCpXmlOutMessage {
@XmlElement(name="Content")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String content;
public WxXmlOutTextMessage() {
public WxCpXmlOutTextMessage() {
this.msgType = WxConsts.XML_MSG_TEXT;
}

View File

@@ -11,12 +11,12 @@ import me.chanjar.weixin.enterprise.util.xml.AdapterCDATA;
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WxXmlOutVideoMessage extends WxXmlOutMessage {
public class WxCpXmlOutVideoMessage extends WxCpXmlOutMessage {
@XmlElement(name = "Video")
protected final Video video = new Video();
public WxXmlOutVideoMessage() {
public WxCpXmlOutVideoMessage() {
this.msgType = WxConsts.XML_MSG_VIDEO;
}

View File

@@ -11,13 +11,13 @@ import me.chanjar.weixin.enterprise.util.xml.MediaIdMarshaller;
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WxXmlOutVoiceMessage extends WxXmlOutMessage {
public class WxCpXmlOutVoiceMessage extends WxCpXmlOutMessage {
@XmlElement(name="Voice")
@XmlJavaTypeAdapter(MediaIdMarshaller.class)
private String mediaId;
public WxXmlOutVoiceMessage() {
public WxCpXmlOutVoiceMessage() {
this.msgType = WxConsts.XML_MSG_VOICE;
}

View File

@@ -1,6 +1,6 @@
package me.chanjar.weixin.enterprise.bean.outxmlbuilder;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutMessage;
public abstract class BaseBuilder<BuilderType, ValueType> {
@@ -20,7 +20,7 @@ public abstract class BaseBuilder<BuilderType, ValueType> {
public abstract ValueType build();
public void setCommon(WxXmlOutMessage m) {
public void setCommon(WxCpXmlOutMessage m) {
m.setToUserName(this.toUserName);
m.setFromUserName(this.fromUserName);
m.setCreateTime(System.currentTimeMillis() / 1000l);

View File

@@ -1,12 +1,12 @@
package me.chanjar.weixin.enterprise.bean.outxmlbuilder;
import me.chanjar.weixin.enterprise.bean.WxXmlOutImageMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutImageMessage;
/**
* 图片消息builder
* @author Daniel Qian
*/
public final class ImageBuilder extends BaseBuilder<ImageBuilder, WxXmlOutImageMessage> {
public final class ImageBuilder extends BaseBuilder<ImageBuilder, WxCpXmlOutImageMessage> {
private String mediaId;
@@ -15,8 +15,8 @@ public final class ImageBuilder extends BaseBuilder<ImageBuilder, WxXmlOutImageM
return this;
}
public WxXmlOutImageMessage build() {
WxXmlOutImageMessage m = new WxXmlOutImageMessage();
public WxCpXmlOutImageMessage build() {
WxCpXmlOutImageMessage m = new WxCpXmlOutImageMessage();
setCommon(m);
m.setMediaId(this.mediaId);
return m;

View File

@@ -1,13 +1,13 @@
package me.chanjar.weixin.enterprise.bean.outxmlbuilder;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMusicMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutMusicMessage;
/**
* 音乐消息builder
*
* @author Daniel Qian
*/
public final class MusicBuilder extends BaseBuilder<MusicBuilder, WxXmlOutMusicMessage> {
public final class MusicBuilder extends BaseBuilder<MusicBuilder, WxCpXmlOutMusicMessage> {
private String title;
private String description;
@@ -40,8 +40,8 @@ public final class MusicBuilder extends BaseBuilder<MusicBuilder, WxXmlOutMusicM
return this;
}
public WxXmlOutMusicMessage build() {
WxXmlOutMusicMessage m = new WxXmlOutMusicMessage();
public WxCpXmlOutMusicMessage build() {
WxCpXmlOutMusicMessage m = new WxCpXmlOutMusicMessage();
setCommon(m);
m.setTitle(title);
m.setDescription(description);

View File

@@ -3,14 +3,14 @@ package me.chanjar.weixin.enterprise.bean.outxmlbuilder;
import java.util.ArrayList;
import java.util.List;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMewsMessage;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMewsMessage.Item;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutMewsMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutMewsMessage.Item;
/**
* 图文消息builder
* @author Daniel Qian
*/
public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxXmlOutMewsMessage> {
public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxCpXmlOutMewsMessage> {
protected final List<Item> articles = new ArrayList<Item>();
@@ -19,8 +19,8 @@ public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxXmlOutMewsMess
return this;
}
public WxXmlOutMewsMessage build() {
WxXmlOutMewsMessage m = new WxXmlOutMewsMessage();
public WxCpXmlOutMewsMessage build() {
WxCpXmlOutMewsMessage m = new WxCpXmlOutMewsMessage();
for(Item item : articles) {
m.addArticle(item);
}

View File

@@ -1,13 +1,13 @@
package me.chanjar.weixin.enterprise.bean.outxmlbuilder;
import me.chanjar.weixin.enterprise.bean.WxXmlOutTextMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutTextMessage;
/**
* 文本消息builder
* @author Daniel Qian
*
*/
public final class TextBuilder extends BaseBuilder<TextBuilder, WxXmlOutTextMessage> {
public final class TextBuilder extends BaseBuilder<TextBuilder, WxCpXmlOutTextMessage> {
private String content;
public TextBuilder content(String content) {
@@ -15,8 +15,8 @@ public final class TextBuilder extends BaseBuilder<TextBuilder, WxXmlOutTextMess
return this;
}
public WxXmlOutTextMessage build() {
WxXmlOutTextMessage m = new WxXmlOutTextMessage();
public WxCpXmlOutTextMessage build() {
WxCpXmlOutTextMessage m = new WxCpXmlOutTextMessage();
setCommon(m);
m.setContent(this.content);
return m;

View File

@@ -1,13 +1,13 @@
package me.chanjar.weixin.enterprise.bean.outxmlbuilder;
import me.chanjar.weixin.enterprise.bean.WxXmlOutVideoMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutVideoMessage;
/**
* 视频消息builder
* @author Daniel Qian
*
*/
public final class VideoBuilder extends BaseBuilder<VideoBuilder, WxXmlOutVideoMessage> {
public final class VideoBuilder extends BaseBuilder<VideoBuilder, WxCpXmlOutVideoMessage> {
private String mediaId;
private String title;
@@ -26,8 +26,8 @@ public final class VideoBuilder extends BaseBuilder<VideoBuilder, WxXmlOutVideoM
return this;
}
public WxXmlOutVideoMessage build() {
WxXmlOutVideoMessage m = new WxXmlOutVideoMessage();
public WxCpXmlOutVideoMessage build() {
WxCpXmlOutVideoMessage m = new WxCpXmlOutVideoMessage();
setCommon(m);
m.setTitle(title);
m.setDescription(description);

View File

@@ -1,12 +1,12 @@
package me.chanjar.weixin.enterprise.bean.outxmlbuilder;
import me.chanjar.weixin.enterprise.bean.WxXmlOutVoiceMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutVoiceMessage;
/**
* 语音消息builder
* @author Daniel Qian
*/
public final class VoiceBuilder extends BaseBuilder<VoiceBuilder, WxXmlOutVoiceMessage> {
public final class VoiceBuilder extends BaseBuilder<VoiceBuilder, WxCpXmlOutVoiceMessage> {
private String mediaId;
@@ -15,8 +15,8 @@ public final class VoiceBuilder extends BaseBuilder<VoiceBuilder, WxXmlOutVoiceM
return this;
}
public WxXmlOutVoiceMessage build() {
WxXmlOutVoiceMessage m = new WxXmlOutVoiceMessage();
public WxCpXmlOutVoiceMessage build() {
WxCpXmlOutVoiceMessage m = new WxCpXmlOutVoiceMessage();
setCommon(m);
m.setMediaId(mediaId);
return m;

View File

@@ -8,7 +8,6 @@ import java.io.Writer;
import javax.xml.bind.*;
import me.chanjar.weixin.enterprise.bean.*;
import me.chanjar.weixin.enterprise.bean.*;
import org.xml.sax.InputSource;
@@ -78,13 +77,13 @@ public class XmlTransformer {
*/
try {
return JAXBContext.newInstance(
WxXmlOutMessage.class,
WxXmlOutImageMessage.class,
WxXmlOutMewsMessage.class,
WxXmlOutMusicMessage.class,
WxXmlOutTextMessage.class,
WxXmlOutVideoMessage.class,
WxXmlOutVoiceMessage.class,
WxCpXmlOutMessage.class,
WxCpXmlOutImageMessage.class,
WxCpXmlOutMewsMessage.class,
WxCpXmlOutMusicMessage.class,
WxCpXmlOutTextMessage.class,
WxCpXmlOutVideoMessage.class,
WxCpXmlOutVoiceMessage.class,
WxCpXmlMessage.class);
} catch (JAXBException e) {
throw new RuntimeException(e);

View File

@@ -3,12 +3,11 @@ package me.chanjar.weixin.enterprise.api;
import java.util.Map;
import me.chanjar.weixin.enterprise.bean.WxCpXmlMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutMessage;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMessage;
/**
* 测试消息路由器
* @author Daniel Qian
@@ -67,7 +66,7 @@ public class WxCpMessageRouterTest {
final WxCpMessageRouter router = new WxCpMessageRouter();
router.rule().handler(new WxCpMessageHandler() {
@Override
public WxXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context) {
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context) {
return null;
}
}).end();
@@ -149,7 +148,7 @@ public class WxCpMessageRouterTest {
}
@Override
public WxXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context) {
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context) {
sb.append(this.echoStr).append(',');
return null;
}

View File

@@ -1,15 +1,13 @@
package me.chanjar.weixin.enterprise.bean;
import me.chanjar.weixin.enterprise.bean.WxXmlOutImageMessage;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMessage;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test
public class WxXmlOutImageMessageTest {
public class WxCpXmlOutImageMessageTest {
public void test() {
WxXmlOutImageMessage m = new WxXmlOutImageMessage();
WxCpXmlOutImageMessage m = new WxCpXmlOutImageMessage();
m.setMediaId("ddfefesfsdfef");
m.setCreateTime(1122l);
m.setFromUserName("from");
@@ -28,7 +26,7 @@ public class WxXmlOutImageMessageTest {
}
public void testBuild() {
WxXmlOutImageMessage m = WxXmlOutMessage.IMAGE().mediaId("ddfefesfsdfef").fromUser("from").toUser("to").build();
WxCpXmlOutImageMessage m = WxCpXmlOutMessage.IMAGE().mediaId("ddfefesfsdfef").fromUser("from").toUser("to").build();
String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<xml>"
+ "<ToUserName><![CDATA[to]]></ToUserName>"

View File

@@ -1,15 +1,13 @@
package me.chanjar.weixin.enterprise.bean;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMessage;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMusicMessage;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test
public class WxXmlOutMusicMessageTest {
public class WxCpXmlOutMusicMessageTest {
public void test() {
WxXmlOutMusicMessage m = new WxXmlOutMusicMessage();
WxCpXmlOutMusicMessage m = new WxCpXmlOutMusicMessage();
m.setTitle("title");
m.setDescription("ddfff");
m.setHqMusicUrl("hQMusicUrl");
@@ -38,7 +36,7 @@ public class WxXmlOutMusicMessageTest {
}
public void testBuild() {
WxXmlOutMusicMessage m = WxXmlOutMessage.MUSIC()
WxCpXmlOutMusicMessage m = WxCpXmlOutMessage.MUSIC()
.fromUser("fromUser")
.toUser("toUser")
.title("title")

View File

@@ -1,20 +1,18 @@
package me.chanjar.weixin.enterprise.bean;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMessage;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMewsMessage;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test
public class WxXmlOutNewsMessageTest {
public class WxCpXmlOutNewsMessageTest {
public void test() {
WxXmlOutMewsMessage m = new WxXmlOutMewsMessage();
WxCpXmlOutMewsMessage m = new WxCpXmlOutMewsMessage();
m.setCreateTime(1122l);
m.setFromUserName("fromUser");
m.setToUserName("toUser");
WxXmlOutMewsMessage.Item item = new WxXmlOutMewsMessage.Item();
WxCpXmlOutMewsMessage.Item item = new WxCpXmlOutMewsMessage.Item();
item.setDescription("description");
item.setPicUrl("picUrl");
item.setTitle("title");
@@ -48,13 +46,13 @@ public class WxXmlOutNewsMessageTest {
}
public void testBuild() {
WxXmlOutMewsMessage.Item item = new WxXmlOutMewsMessage.Item();
WxCpXmlOutMewsMessage.Item item = new WxCpXmlOutMewsMessage.Item();
item.setDescription("description");
item.setPicUrl("picUrl");
item.setTitle("title");
item.setUrl("url");
WxXmlOutMewsMessage m = WxXmlOutMessage.NEWS()
WxCpXmlOutMewsMessage m = WxCpXmlOutMessage.NEWS()
.fromUser("fromUser")
.toUser("toUser")
.addArticle(item)

View File

@@ -1,15 +1,13 @@
package me.chanjar.weixin.enterprise.bean;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMessage;
import me.chanjar.weixin.enterprise.bean.WxXmlOutTextMessage;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test
public class WxXmlOutTextMessageTest {
public class WxCpXmlOutTextMessageTest {
public void test() {
WxXmlOutTextMessage m = new WxXmlOutTextMessage();
WxCpXmlOutTextMessage m = new WxCpXmlOutTextMessage();
m.setContent("content");
m.setCreateTime(1122l);
m.setFromUserName("from");
@@ -28,7 +26,7 @@ public class WxXmlOutTextMessageTest {
}
public void testBuild() {
WxXmlOutTextMessage m = WxXmlOutMessage.TEXT().content("content").fromUser("from").toUser("to").build();
WxCpXmlOutTextMessage m = WxCpXmlOutMessage.TEXT().content("content").fromUser("from").toUser("to").build();
String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<xml>"
+ "<ToUserName><![CDATA[to]]></ToUserName>"

View File

@@ -1,15 +1,13 @@
package me.chanjar.weixin.enterprise.bean;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMessage;
import me.chanjar.weixin.enterprise.bean.WxXmlOutVideoMessage;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test
public class WxXmlOutVideoMessageTest {
public class WxCpXmlOutVideoMessageTest {
public void test() {
WxXmlOutVideoMessage m = new WxXmlOutVideoMessage();
WxCpXmlOutVideoMessage m = new WxCpXmlOutVideoMessage();
m.setMediaId("media_id");
m.setTitle("title");
m.setDescription("ddfff");
@@ -34,7 +32,7 @@ public class WxXmlOutVideoMessageTest {
}
public void testBuild() {
WxXmlOutVideoMessage m = WxXmlOutMessage.VIDEO()
WxCpXmlOutVideoMessage m = WxCpXmlOutMessage.VIDEO()
.mediaId("media_id")
.fromUser("fromUser")
.toUser("toUser")

View File

@@ -1,15 +1,13 @@
package me.chanjar.weixin.enterprise.bean;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMessage;
import me.chanjar.weixin.enterprise.bean.WxXmlOutVoiceMessage;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test
public class WxXmlOutVoiceMessageTest {
public class WxCpXmlOutVoiceMessageTest {
public void test() {
WxXmlOutVoiceMessage m = new WxXmlOutVoiceMessage();
WxCpXmlOutVoiceMessage m = new WxCpXmlOutVoiceMessage();
m.setMediaId("ddfefesfsdfef");
m.setCreateTime(1122l);
m.setFromUserName("from");
@@ -28,7 +26,7 @@ public class WxXmlOutVoiceMessageTest {
}
public void testBuild() {
WxXmlOutVoiceMessage m = WxXmlOutMessage.VOICE().mediaId("ddfefesfsdfef").fromUser("from").toUser("to").build();
WxCpXmlOutVoiceMessage m = WxCpXmlOutMessage.VOICE().mediaId("ddfefesfsdfef").fromUser("from").toUser("to").build();
String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<xml>"
+ "<ToUserName><![CDATA[to]]></ToUserName>"

View File

@@ -2,10 +2,9 @@ package me.chanjar.weixin.enterprise.demo;
import me.chanjar.weixin.enterprise.api.*;
import me.chanjar.weixin.enterprise.bean.WxCpXmlMessage;
import me.chanjar.weixin.enterprise.bean.WxXmlOutMessage;
import me.chanjar.weixin.enterprise.bean.WxXmlOutTextMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutMessage;
import me.chanjar.weixin.enterprise.bean.WxCpXmlOutTextMessage;
import me.chanjar.weixin.enterprise.util.crypto.WxCryptUtil;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import javax.servlet.ServletException;
@@ -38,10 +37,13 @@ public class WxCpTestServlet extends HttpServlet {
wxCpService.setWxCpConfigStorage(config);
WxCpMessageHandler handler = new WxCpMessageHandler() {
@Override public WxXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context) {
WxXmlOutTextMessage m
= WxXmlOutMessage.TEXT().content("测试加密消息").fromUser(wxMessage.getToUserName())
.toUser(wxMessage.getFromUserName()).build();
@Override public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context) {
WxCpXmlOutTextMessage m = WxCpXmlOutMessage
.TEXT()
.content("测试加密消息")
.fromUser(wxMessage.getToUserName())
.toUser(wxMessage.getFromUserName())
.build();
return m;
}
};
@@ -85,8 +87,11 @@ public class WxCpTestServlet extends HttpServlet {
WxCpXmlMessage inMessage = WxCpXmlMessage.fromEncryptedXml(request.getInputStream(), wxCpConfigStorage, timestamp, nonce, msgSignature);
// WxXmlOutMessage outMessage = wxCpMessageRouter.route(inMessage);
WxCpXmlOutMessage outMessage = wxCpMessageRouter.route(inMessage);
if (outMessage != null) {
response.getWriter().write(outMessage.toEncryptedXml(wxCpConfigStorage));
}
return;
}