mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-10-26 10:49:24 +08:00
被动响应消息测试
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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 代表继续执行别的router,false 代表停止执行别的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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>"
|
||||
@@ -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")
|
||||
@@ -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)
|
||||
@@ -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>"
|
||||
@@ -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")
|
||||
@@ -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>"
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user