mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2026-02-19 06:36:28 +08:00
code clean up for cp module
This commit is contained in:
@@ -10,17 +10,6 @@ import java.io.InputStream;
|
||||
|
||||
public class ApiTestModule implements Module {
|
||||
|
||||
@Override
|
||||
public void configure(Binder binder) {
|
||||
InputStream is1 = ClassLoader.getSystemResourceAsStream("test-config.xml");
|
||||
WxXmlCpInMemoryConfigStorage config = fromXml(WxXmlCpInMemoryConfigStorage.class, is1);
|
||||
WxCpServiceImpl wxService = new WxCpServiceImpl();
|
||||
wxService.setWxCpConfigStorage(config);
|
||||
|
||||
binder.bind(WxCpServiceImpl.class).toInstance(wxService);
|
||||
binder.bind(WxCpConfigStorage.class).toInstance(config);
|
||||
}
|
||||
|
||||
public static <T> T fromXml(Class<T> clazz, InputStream is) {
|
||||
XStream xstream = XStreamInitializer.getInstance();
|
||||
xstream.alias("xml", clazz);
|
||||
@@ -28,9 +17,20 @@ public class ApiTestModule implements Module {
|
||||
return (T) xstream.fromXML(is);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configure(Binder binder) {
|
||||
InputStream is1 = ClassLoader.getSystemResourceAsStream("test-config.xml");
|
||||
WxXmlCpInMemoryConfigStorage config = fromXml(WxXmlCpInMemoryConfigStorage.class, is1);
|
||||
WxCpServiceImpl wxService = new WxCpServiceImpl();
|
||||
wxService.setWxCpConfigStorage(config);
|
||||
|
||||
binder.bind(WxCpServiceImpl.class).toInstance(wxService);
|
||||
binder.bind(WxCpConfigStorage.class).toInstance(config);
|
||||
}
|
||||
|
||||
@XStreamAlias("xml")
|
||||
public static class WxXmlCpInMemoryConfigStorage extends WxCpInMemoryConfigStorage {
|
||||
|
||||
|
||||
protected String userId;
|
||||
|
||||
protected String departmentId;
|
||||
@@ -40,6 +40,7 @@ public class ApiTestModule implements Module {
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
@@ -63,11 +64,11 @@ public class ApiTestModule implements Module {
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + " > WxXmlCpConfigStorage{" +
|
||||
"userId='" + userId + '\'' +
|
||||
", departmentId='" + departmentId + '\'' +
|
||||
", tagId='" + tagId + '\'' +
|
||||
'}';
|
||||
"userId='" + userId + '\'' +
|
||||
", departmentId='" + departmentId + '\'' +
|
||||
", tagId='" + tagId + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@ import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* 基础API测试
|
||||
* @author Daniel Qian
|
||||
*
|
||||
* @author Daniel Qian
|
||||
*/
|
||||
@Test(groups = "baseAPI")
|
||||
@Guice(modules = ApiTestModule.class)
|
||||
|
||||
@@ -14,7 +14,7 @@ import java.util.concurrent.Future;
|
||||
@Test
|
||||
public class WxCpBusyRetryTest {
|
||||
|
||||
@DataProvider(name="getService")
|
||||
@DataProvider(name = "getService")
|
||||
public Object[][] getService() {
|
||||
WxCpService service = new WxCpServiceImpl() {
|
||||
|
||||
@@ -28,8 +28,8 @@ public class WxCpBusyRetryTest {
|
||||
|
||||
service.setMaxRetryTimes(3);
|
||||
service.setRetrySleepMillis(500);
|
||||
return new Object[][] {
|
||||
new Object[] { service }
|
||||
return new Object[][]{
|
||||
new Object[]{service}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ public class WxCpDepartAPITest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "testDepartGet", "testDepartCreate" })
|
||||
@Test(dependsOnMethods = {"testDepartGet", "testDepartCreate"})
|
||||
public void testDepartUpdate() throws WxErrorException {
|
||||
System.out.println("=================更新部门");
|
||||
depart.setName("子部门改名" + System.currentTimeMillis());
|
||||
|
||||
@@ -16,8 +16,8 @@ import java.util.List;
|
||||
|
||||
/**
|
||||
* 测试多媒体文件上传下载
|
||||
* @author Daniel Qian
|
||||
*
|
||||
* @author Daniel Qian
|
||||
*/
|
||||
//@Test(groups="mediaAPI", dependsOnGroups="baseAPI")
|
||||
@Test
|
||||
@@ -28,15 +28,15 @@ public class WxCpMediaAPITest {
|
||||
protected WxCpServiceImpl wxService;
|
||||
|
||||
private List<String> media_ids = new ArrayList<String>();
|
||||
|
||||
@Test(dataProvider="uploadMedia")
|
||||
|
||||
@Test(dataProvider = "uploadMedia")
|
||||
public void testUploadMedia(String mediaType, String fileType, String fileName) throws WxErrorException, IOException {
|
||||
InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName);
|
||||
WxMediaUploadResult res = wxService.mediaUpload(mediaType, fileType, inputStream);
|
||||
Assert.assertNotNull(res.getType());
|
||||
Assert.assertNotNull(res.getCreatedAt());
|
||||
Assert.assertTrue(res.getMediaId() != null || res.getThumbMediaId() != null);
|
||||
|
||||
|
||||
if (res.getMediaId() != null) {
|
||||
media_ids.add(res.getMediaId());
|
||||
}
|
||||
@@ -44,29 +44,29 @@ public class WxCpMediaAPITest {
|
||||
media_ids.add(res.getThumbMediaId());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@DataProvider
|
||||
public Object[][] uploadMedia() {
|
||||
return new Object[][] {
|
||||
new Object[] { WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, "mm.jpeg" },
|
||||
new Object[] { WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, "mm.mp3" },
|
||||
new Object[] { WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, "mm.mp4" },
|
||||
new Object[] { WxConsts.MEDIA_FILE, WxConsts.FILE_JPG, "mm.jpeg" }
|
||||
return new Object[][]{
|
||||
new Object[]{WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, "mm.jpeg"},
|
||||
new Object[]{WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, "mm.mp3"},
|
||||
new Object[]{WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, "mm.mp4"},
|
||||
new Object[]{WxConsts.MEDIA_FILE, WxConsts.FILE_JPG, "mm.jpeg"}
|
||||
};
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "testUploadMedia" }, dataProvider="downloadMedia")
|
||||
|
||||
@Test(dependsOnMethods = {"testUploadMedia"}, dataProvider = "downloadMedia")
|
||||
public void testDownloadMedia(String media_id) throws WxErrorException {
|
||||
wxService.mediaDownload(media_id);
|
||||
}
|
||||
|
||||
|
||||
@DataProvider
|
||||
public Object[][] downloadMedia() {
|
||||
Object[][] params = new Object[this.media_ids.size()][];
|
||||
for (int i = 0; i < this.media_ids.size(); i++) {
|
||||
params[i] = new Object[] { this.media_ids.get(i) };
|
||||
params[i] = new Object[]{this.media_ids.get(i)};
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.testng.annotations.Test;
|
||||
* @author Daniel Qian
|
||||
*
|
||||
*/
|
||||
@Test(groups="customMessageAPI", dependsOnGroups = "baseAPI")
|
||||
@Test(groups = "customMessageAPI", dependsOnGroups = "baseAPI")
|
||||
@Guice(modules = ApiTestModule.class)
|
||||
public class WxCpMessageAPITest {
|
||||
|
||||
@@ -29,11 +29,11 @@ public class WxCpMessageAPITest {
|
||||
wxService.messageSend(message1);
|
||||
|
||||
WxCpMessage message2 = WxCpMessage
|
||||
.TEXT()
|
||||
.agentId(configStorage.getAgentId())
|
||||
.toUser(configStorage.getUserId())
|
||||
.content("欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>")
|
||||
.build();
|
||||
.TEXT()
|
||||
.agentId(configStorage.getAgentId())
|
||||
.toUser(configStorage.getUserId())
|
||||
.content("欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>")
|
||||
.build();
|
||||
wxService.messageSend(message2);
|
||||
|
||||
}
|
||||
|
||||
@@ -13,45 +13,45 @@ import java.util.Map;
|
||||
|
||||
/**
|
||||
* 测试消息路由器
|
||||
* @author Daniel Qian
|
||||
*
|
||||
* @author Daniel Qian
|
||||
*/
|
||||
@Test
|
||||
public class WxCpMessageRouterTest {
|
||||
|
||||
|
||||
@Test(enabled = false)
|
||||
public void prepare(boolean async, StringBuffer sb, WxCpMessageRouter router) {
|
||||
router
|
||||
.rule()
|
||||
.async(async)
|
||||
.msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK).eventKey("KEY_1").content("CONTENT_1")
|
||||
.handler(new WxEchoCpMessageHandler(sb, "COMBINE_4"))
|
||||
.end()
|
||||
.rule()
|
||||
.async(async)
|
||||
.msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK).eventKey("KEY_1")
|
||||
.handler(new WxEchoCpMessageHandler(sb, "COMBINE_3"))
|
||||
.end()
|
||||
.rule()
|
||||
.async(async)
|
||||
.msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK)
|
||||
.handler(new WxEchoCpMessageHandler(sb, "COMBINE_2"))
|
||||
.end()
|
||||
.rule().async(async).msgType(WxConsts.XML_MSG_TEXT).handler(new WxEchoCpMessageHandler(sb, WxConsts.XML_MSG_TEXT)).end()
|
||||
.rule().async(async).event(WxConsts.EVT_CLICK).handler(new WxEchoCpMessageHandler(sb, WxConsts.EVT_CLICK)).end()
|
||||
.rule().async(async).eventKey("KEY_1").handler(new WxEchoCpMessageHandler(sb, "KEY_1")).end()
|
||||
.rule().async(async).content("CONTENT_1").handler(new WxEchoCpMessageHandler(sb, "CONTENT_1")).end()
|
||||
.rule().async(async).rContent(".*bc.*").handler(new WxEchoCpMessageHandler(sb, "abcd")).end()
|
||||
.rule().async(async).matcher(new WxCpMessageMatcher() {
|
||||
@Override
|
||||
public boolean match(WxCpXmlMessage message) {
|
||||
return "strangeformat".equals(message.getFormat());
|
||||
}
|
||||
}).handler(new WxEchoCpMessageHandler(sb, "matcher")).end()
|
||||
.rule().async(async).handler(new WxEchoCpMessageHandler(sb, "ALL")).end();
|
||||
.rule()
|
||||
.async(async)
|
||||
.msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK).eventKey("KEY_1").content("CONTENT_1")
|
||||
.handler(new WxEchoCpMessageHandler(sb, "COMBINE_4"))
|
||||
.end()
|
||||
.rule()
|
||||
.async(async)
|
||||
.msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK).eventKey("KEY_1")
|
||||
.handler(new WxEchoCpMessageHandler(sb, "COMBINE_3"))
|
||||
.end()
|
||||
.rule()
|
||||
.async(async)
|
||||
.msgType(WxConsts.XML_MSG_TEXT).event(WxConsts.EVT_CLICK)
|
||||
.handler(new WxEchoCpMessageHandler(sb, "COMBINE_2"))
|
||||
.end()
|
||||
.rule().async(async).msgType(WxConsts.XML_MSG_TEXT).handler(new WxEchoCpMessageHandler(sb, WxConsts.XML_MSG_TEXT)).end()
|
||||
.rule().async(async).event(WxConsts.EVT_CLICK).handler(new WxEchoCpMessageHandler(sb, WxConsts.EVT_CLICK)).end()
|
||||
.rule().async(async).eventKey("KEY_1").handler(new WxEchoCpMessageHandler(sb, "KEY_1")).end()
|
||||
.rule().async(async).content("CONTENT_1").handler(new WxEchoCpMessageHandler(sb, "CONTENT_1")).end()
|
||||
.rule().async(async).rContent(".*bc.*").handler(new WxEchoCpMessageHandler(sb, "abcd")).end()
|
||||
.rule().async(async).matcher(new WxCpMessageMatcher() {
|
||||
@Override
|
||||
public boolean match(WxCpXmlMessage message) {
|
||||
return "strangeformat".equals(message.getFormat());
|
||||
}
|
||||
}).handler(new WxEchoCpMessageHandler(sb, "matcher")).end()
|
||||
.rule().async(async).handler(new WxEchoCpMessageHandler(sb, "ALL")).end();
|
||||
}
|
||||
|
||||
@Test(dataProvider="messages-1")
|
||||
|
||||
@Test(dataProvider = "messages-1")
|
||||
public void testSync(WxCpXmlMessage message, String expected) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
WxCpMessageRouter router = new WxCpMessageRouter(null);
|
||||
@@ -59,27 +59,27 @@ public class WxCpMessageRouterTest {
|
||||
router.route(message);
|
||||
Assert.assertEquals(sb.toString(), expected);
|
||||
}
|
||||
|
||||
@Test(dataProvider="messages-1")
|
||||
|
||||
@Test(dataProvider = "messages-1")
|
||||
public void testAsync(WxCpXmlMessage message, String expected) throws InterruptedException {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
WxCpMessageRouter router = new WxCpMessageRouter(null);
|
||||
prepare(true, sb, router);
|
||||
prepare(true, sb, router);
|
||||
router.route(message);
|
||||
Thread.sleep(500l);
|
||||
Assert.assertEquals(sb.toString(), expected);
|
||||
}
|
||||
|
||||
|
||||
public void testConcurrency() throws InterruptedException {
|
||||
final WxCpMessageRouter router = new WxCpMessageRouter(null);
|
||||
router.rule().handler(new WxCpMessageHandler() {
|
||||
@Override
|
||||
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context, WxCpService wxCpService,
|
||||
WxSessionManager sessionManager) {
|
||||
WxSessionManager sessionManager) {
|
||||
return null;
|
||||
}
|
||||
}).end();
|
||||
|
||||
|
||||
final WxCpXmlMessage m = new WxCpXmlMessage();
|
||||
Runnable r = new Runnable() {
|
||||
@Override
|
||||
@@ -94,27 +94,27 @@ public class WxCpMessageRouterTest {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
new Thread(r).start();
|
||||
}
|
||||
|
||||
|
||||
Thread.sleep(1000l * 2);
|
||||
}
|
||||
|
||||
@DataProvider(name="messages-1")
|
||||
@DataProvider(name = "messages-1")
|
||||
public Object[][] messages2() {
|
||||
WxCpXmlMessage message1 = new WxCpXmlMessage();
|
||||
message1.setMsgType(WxConsts.XML_MSG_TEXT);
|
||||
|
||||
|
||||
WxCpXmlMessage message2 = new WxCpXmlMessage();
|
||||
message2.setEvent(WxConsts.EVT_CLICK);
|
||||
|
||||
|
||||
WxCpXmlMessage message3 = new WxCpXmlMessage();
|
||||
message3.setEventKey("KEY_1");
|
||||
|
||||
|
||||
WxCpXmlMessage message4 = new WxCpXmlMessage();
|
||||
message4.setContent("CONTENT_1");
|
||||
|
||||
|
||||
WxCpXmlMessage message5 = new WxCpXmlMessage();
|
||||
message5.setContent("BLA");
|
||||
|
||||
|
||||
WxCpXmlMessage message6 = new WxCpXmlMessage();
|
||||
message6.setContent("abcd");
|
||||
|
||||
@@ -124,12 +124,12 @@ public class WxCpMessageRouterTest {
|
||||
WxCpXmlMessage c2 = new WxCpXmlMessage();
|
||||
c2.setMsgType(WxConsts.XML_MSG_TEXT);
|
||||
c2.setEvent(WxConsts.EVT_CLICK);
|
||||
|
||||
|
||||
WxCpXmlMessage c3 = new WxCpXmlMessage();
|
||||
c3.setMsgType(WxConsts.XML_MSG_TEXT);
|
||||
c3.setEvent(WxConsts.EVT_CLICK);
|
||||
c3.setEventKey("KEY_1");
|
||||
|
||||
|
||||
WxCpXmlMessage c4 = new WxCpXmlMessage();
|
||||
c4.setMsgType(WxConsts.XML_MSG_TEXT);
|
||||
c4.setEvent(WxConsts.EVT_CLICK);
|
||||
@@ -137,37 +137,18 @@ public class WxCpMessageRouterTest {
|
||||
c4.setContent("CONTENT_1");
|
||||
|
||||
|
||||
return new Object[][] {
|
||||
new Object[] { message1, WxConsts.XML_MSG_TEXT + "," },
|
||||
new Object[] { message2, WxConsts.EVT_CLICK + "," },
|
||||
new Object[] { message3, "KEY_1," },
|
||||
new Object[] { message4, "CONTENT_1," },
|
||||
new Object[] { message5, "ALL," },
|
||||
new Object[] { message6, "abcd," },
|
||||
new Object[] { message7, "matcher," },
|
||||
new Object[] { c2, "COMBINE_2," },
|
||||
new Object[] { c3, "COMBINE_3," },
|
||||
new Object[] { c4, "COMBINE_4," }
|
||||
return new Object[][]{
|
||||
new Object[]{message1, WxConsts.XML_MSG_TEXT + ","},
|
||||
new Object[]{message2, WxConsts.EVT_CLICK + ","},
|
||||
new Object[]{message3, "KEY_1,"},
|
||||
new Object[]{message4, "CONTENT_1,"},
|
||||
new Object[]{message5, "ALL,"},
|
||||
new Object[]{message6, "abcd,"},
|
||||
new Object[]{message7, "matcher,"},
|
||||
new Object[]{c2, "COMBINE_2,"},
|
||||
new Object[]{c3, "COMBINE_3,"},
|
||||
new Object[]{c4, "COMBINE_4,"}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
public static class WxEchoCpMessageHandler implements WxCpMessageHandler {
|
||||
|
||||
private StringBuffer sb;
|
||||
private String echoStr;
|
||||
|
||||
public WxEchoCpMessageHandler(StringBuffer sb, String echoStr) {
|
||||
this.sb = sb;
|
||||
this.echoStr = echoStr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context, WxCpService wxCpService,
|
||||
WxSessionManager sessionManager) {
|
||||
sb.append(this.echoStr).append(',');
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -180,8 +161,8 @@ public class WxCpMessageRouterTest {
|
||||
ism.setProcessExpiresFrequency(1);
|
||||
ism.setBackgroundProcessorDelay(1);
|
||||
|
||||
return new Object[][] {
|
||||
new Object[] { ism }
|
||||
return new Object[][]{
|
||||
new Object[]{ism}
|
||||
};
|
||||
|
||||
}
|
||||
@@ -193,8 +174,8 @@ public class WxCpMessageRouterTest {
|
||||
final WxCpMessageRouter router = new WxCpMessageRouter(null);
|
||||
router.setSessionManager(ism);
|
||||
router
|
||||
.rule().async(false).handler(new WxSessionMessageHandler()).next()
|
||||
.rule().async(false).handler(new WxSessionMessageHandler()).end();
|
||||
.rule().async(false).handler(new WxSessionMessageHandler()).next()
|
||||
.rule().async(false).handler(new WxSessionMessageHandler()).end();
|
||||
|
||||
WxCpXmlMessage msg = new WxCpXmlMessage();
|
||||
msg.setFromUserName("abc");
|
||||
@@ -213,8 +194,8 @@ public class WxCpMessageRouterTest {
|
||||
final WxCpMessageRouter router = new WxCpMessageRouter(null);
|
||||
router.setSessionManager(ism);
|
||||
router
|
||||
.rule().async(false).handler(new WxSessionMessageHandler()).next()
|
||||
.rule().async(true).handler(new WxSessionMessageHandler()).end();
|
||||
.rule().async(false).handler(new WxSessionMessageHandler()).next()
|
||||
.rule().async(true).handler(new WxSessionMessageHandler()).end();
|
||||
|
||||
WxCpXmlMessage msg = new WxCpXmlMessage();
|
||||
msg.setFromUserName("abc");
|
||||
@@ -227,8 +208,8 @@ public class WxCpMessageRouterTest {
|
||||
final WxCpMessageRouter router = new WxCpMessageRouter(null);
|
||||
router.setSessionManager(ism);
|
||||
router
|
||||
.rule().async(true).handler(new WxSessionMessageHandler()).next()
|
||||
.rule().async(false).handler(new WxSessionMessageHandler()).end();
|
||||
.rule().async(true).handler(new WxSessionMessageHandler()).next()
|
||||
.rule().async(false).handler(new WxSessionMessageHandler()).end();
|
||||
|
||||
WxCpXmlMessage msg = new WxCpXmlMessage();
|
||||
msg.setFromUserName("abc");
|
||||
@@ -247,8 +228,8 @@ public class WxCpMessageRouterTest {
|
||||
final WxCpMessageRouter router = new WxCpMessageRouter(null);
|
||||
router.setSessionManager(ism);
|
||||
router
|
||||
.rule().async(true).handler(new WxSessionMessageHandler()).next()
|
||||
.rule().async(true).handler(new WxSessionMessageHandler()).end();
|
||||
.rule().async(true).handler(new WxSessionMessageHandler()).next()
|
||||
.rule().async(true).handler(new WxSessionMessageHandler()).end();
|
||||
|
||||
WxCpXmlMessage msg = new WxCpXmlMessage();
|
||||
msg.setFromUserName("abc");
|
||||
@@ -267,7 +248,7 @@ public class WxCpMessageRouterTest {
|
||||
final WxCpMessageRouter router = new WxCpMessageRouter(null);
|
||||
router.setSessionManager(ism);
|
||||
router
|
||||
.rule().async(false).handler(new WxSessionMessageHandler()).end();
|
||||
.rule().async(false).handler(new WxSessionMessageHandler()).end();
|
||||
|
||||
WxCpXmlMessage msg = new WxCpXmlMessage();
|
||||
msg.setFromUserName("abc");
|
||||
@@ -281,7 +262,7 @@ public class WxCpMessageRouterTest {
|
||||
final WxCpMessageRouter router = new WxCpMessageRouter(null);
|
||||
router.setSessionManager(ism);
|
||||
router
|
||||
.rule().async(true).handler(new WxSessionMessageHandler()).end();
|
||||
.rule().async(true).handler(new WxSessionMessageHandler()).end();
|
||||
|
||||
WxCpXmlMessage msg = new WxCpXmlMessage();
|
||||
msg.setFromUserName("abc");
|
||||
@@ -292,11 +273,30 @@ public class WxCpMessageRouterTest {
|
||||
}
|
||||
}
|
||||
|
||||
public static class WxSessionMessageHandler implements WxCpMessageHandler {
|
||||
public static class WxEchoCpMessageHandler implements WxCpMessageHandler {
|
||||
|
||||
private StringBuffer sb;
|
||||
private String echoStr;
|
||||
|
||||
public WxEchoCpMessageHandler(StringBuffer sb, String echoStr) {
|
||||
this.sb = sb;
|
||||
this.echoStr = echoStr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context, WxCpService wxCpService,
|
||||
WxSessionManager sessionManager) {
|
||||
WxSessionManager sessionManager) {
|
||||
sb.append(this.echoStr).append(',');
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class WxSessionMessageHandler implements WxCpMessageHandler {
|
||||
|
||||
@Override
|
||||
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context, WxCpService wxCpService,
|
||||
WxSessionManager sessionManager) {
|
||||
sessionManager.getSession(wxMessage.getFromUserName());
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public class WxCpTagAPITest {
|
||||
@Test(dependsOnMethods = "testTagGet")
|
||||
public void testTagAddUsers() throws Exception {
|
||||
List<String> userIds = new ArrayList<String>();
|
||||
userIds.add(((ApiTestModule.WxXmlCpInMemoryConfigStorage)configStorage).getUserId());
|
||||
userIds.add(((ApiTestModule.WxXmlCpInMemoryConfigStorage) configStorage).getUserId());
|
||||
wxService.tagAddUsers(tagId, userIds, null);
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ public class WxCpTagAPITest {
|
||||
@Test(dependsOnMethods = "testTagGetUsers")
|
||||
public void testTagRemoveUsers() throws Exception {
|
||||
List<String> userIds = new ArrayList<String>();
|
||||
userIds.add(((ApiTestModule.WxXmlCpInMemoryConfigStorage)configStorage).getUserId());
|
||||
userIds.add(((ApiTestModule.WxXmlCpInMemoryConfigStorage) configStorage).getUserId());
|
||||
wxService.tagRemoveUsers(tagId, userIds);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ public class WxCpUserAPITest {
|
||||
WxCpUser user = new WxCpUser();
|
||||
user.setUserId("some.woman");
|
||||
user.setName("Some Woman");
|
||||
user.setDepartIds(new Integer[] { 9, 8 });
|
||||
user.setDepartIds(new Integer[]{9, 8});
|
||||
user.setEmail("none@none.com");
|
||||
user.setGender("女");
|
||||
user.setMobile("13560084979");
|
||||
|
||||
@@ -1,90 +1,88 @@
|
||||
package me.chanjar.weixin.cp.api;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import me.chanjar.weixin.common.api.WxConsts;
|
||||
import me.chanjar.weixin.common.bean.menu.WxMenu;
|
||||
import me.chanjar.weixin.common.bean.menu.WxMenuButton;
|
||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Guice;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import me.chanjar.weixin.common.api.WxConsts;
|
||||
import me.chanjar.weixin.common.bean.menu.WxMenu;
|
||||
import me.chanjar.weixin.common.bean.menu.WxMenuButton;
|
||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||
|
||||
/**
|
||||
* 测试菜单
|
||||
* @author Daniel Qian
|
||||
*
|
||||
* @author Daniel Qian
|
||||
*/
|
||||
@Test(groups="menuAPI", dependsOnGroups="baseAPI")
|
||||
@Test(groups = "menuAPI", dependsOnGroups = "baseAPI")
|
||||
@Guice(modules = ApiTestModule.class)
|
||||
public class WxMenuAPITest {
|
||||
|
||||
@Inject
|
||||
protected WxCpServiceImpl wxService;
|
||||
|
||||
|
||||
@Test(dataProvider = "menu")
|
||||
public void testCreateMenu(WxMenu wxMenu) throws WxErrorException {
|
||||
wxService.menuCreate(wxMenu);
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "testCreateMenu"})
|
||||
|
||||
@Test(dependsOnMethods = {"testCreateMenu"})
|
||||
public void testGetMenu() throws WxErrorException {
|
||||
Assert.assertNotNull(wxService.menuGet());
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "testGetMenu"})
|
||||
|
||||
@Test(dependsOnMethods = {"testGetMenu"})
|
||||
public void testDeleteMenu() throws WxErrorException {
|
||||
wxService.menuDelete();
|
||||
}
|
||||
|
||||
@DataProvider(name="menu")
|
||||
|
||||
@DataProvider(name = "menu")
|
||||
public Object[][] getMenu() {
|
||||
WxMenu menu = new WxMenu();
|
||||
WxMenuButton button1 = new WxMenuButton();
|
||||
button1.setType(WxConsts.BUTTON_CLICK);
|
||||
button1.setName("今日歌曲");
|
||||
button1.setKey("V1001_TODAY_MUSIC");
|
||||
|
||||
|
||||
WxMenuButton button2 = new WxMenuButton();
|
||||
button2.setType(WxConsts.BUTTON_CLICK);
|
||||
button2.setName("歌手简介");
|
||||
button2.setKey("V1001_TODAY_SINGER");
|
||||
|
||||
|
||||
WxMenuButton button3 = new WxMenuButton();
|
||||
button3.setName("菜单");
|
||||
|
||||
|
||||
menu.getButtons().add(button1);
|
||||
menu.getButtons().add(button2);
|
||||
menu.getButtons().add(button3);
|
||||
|
||||
|
||||
WxMenuButton button31 = new WxMenuButton();
|
||||
button31.setType(WxConsts.BUTTON_VIEW);
|
||||
button31.setName("搜索");
|
||||
button31.setUrl("http://www.soso.com/");
|
||||
|
||||
|
||||
WxMenuButton button32 = new WxMenuButton();
|
||||
button32.setType(WxConsts.BUTTON_VIEW);
|
||||
button32.setName("视频");
|
||||
button32.setUrl("http://v.qq.com/");
|
||||
|
||||
|
||||
WxMenuButton button33 = new WxMenuButton();
|
||||
button33.setType(WxConsts.BUTTON_CLICK);
|
||||
button33.setName("赞一下我们");
|
||||
button33.setKey("V1001_GOOD");
|
||||
|
||||
|
||||
button3.getSubButtons().add(button31);
|
||||
button3.getSubButtons().add(button32);
|
||||
button3.getSubButtons().add(button33);
|
||||
|
||||
return new Object[][] {
|
||||
new Object[] {
|
||||
menu
|
||||
}
|
||||
|
||||
return new Object[][]{
|
||||
new Object[]{
|
||||
menu
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -15,12 +15,12 @@ public class WxCpMessageTest {
|
||||
reply.setContent("sfsfdsdf");
|
||||
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"text\",\"text\":{\"content\":\"sfsfdsdf\"}}");
|
||||
}
|
||||
|
||||
|
||||
public void testTextBuild() {
|
||||
WxCpMessage reply = WxCpMessage.TEXT().toUser("OPENID").content("sfsfdsdf").build();
|
||||
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"text\",\"text\":{\"content\":\"sfsfdsdf\"}}");
|
||||
}
|
||||
|
||||
|
||||
public void testImageReply() {
|
||||
WxCpMessage reply = new WxCpMessage();
|
||||
reply.setToUser("OPENID");
|
||||
@@ -28,12 +28,12 @@ public class WxCpMessageTest {
|
||||
reply.setMediaId("MEDIA_ID");
|
||||
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"image\",\"image\":{\"media_id\":\"MEDIA_ID\"}}");
|
||||
}
|
||||
|
||||
|
||||
public void testImageBuild() {
|
||||
WxCpMessage reply = WxCpMessage.IMAGE().toUser("OPENID").mediaId("MEDIA_ID").build();
|
||||
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"image\",\"image\":{\"media_id\":\"MEDIA_ID\"}}");
|
||||
}
|
||||
|
||||
|
||||
public void testVoiceReply() {
|
||||
WxCpMessage reply = new WxCpMessage();
|
||||
reply.setToUser("OPENID");
|
||||
@@ -41,12 +41,12 @@ public class WxCpMessageTest {
|
||||
reply.setMediaId("MEDIA_ID");
|
||||
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"voice\",\"voice\":{\"media_id\":\"MEDIA_ID\"}}");
|
||||
}
|
||||
|
||||
|
||||
public void testVoiceBuild() {
|
||||
WxCpMessage reply = WxCpMessage.VOICE().toUser("OPENID").mediaId("MEDIA_ID").build();
|
||||
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"voice\",\"voice\":{\"media_id\":\"MEDIA_ID\"}}");
|
||||
}
|
||||
|
||||
|
||||
public void testVideoReply() {
|
||||
WxCpMessage reply = new WxCpMessage();
|
||||
reply.setToUser("OPENID");
|
||||
@@ -57,24 +57,24 @@ public class WxCpMessageTest {
|
||||
reply.setDescription("DESCRIPTION");
|
||||
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"video\",\"video\":{\"media_id\":\"MEDIA_ID\",\"thumb_media_id\":\"MEDIA_ID\",\"title\":\"TITLE\",\"description\":\"DESCRIPTION\"}}");
|
||||
}
|
||||
|
||||
|
||||
public void testVideoBuild() {
|
||||
WxCpMessage reply = WxCpMessage.VIDEO().toUser("OPENID").title("TITLE").mediaId("MEDIA_ID").thumbMediaId("MEDIA_ID").description("DESCRIPTION").build();
|
||||
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"video\",\"video\":{\"media_id\":\"MEDIA_ID\",\"thumb_media_id\":\"MEDIA_ID\",\"title\":\"TITLE\",\"description\":\"DESCRIPTION\"}}");
|
||||
}
|
||||
|
||||
|
||||
public void testNewsReply() {
|
||||
WxCpMessage reply = new WxCpMessage();
|
||||
reply.setToUser("OPENID");
|
||||
reply.setMsgType(WxConsts.CUSTOM_MSG_NEWS);
|
||||
|
||||
|
||||
WxArticle article1 = new WxArticle();
|
||||
article1.setUrl("URL");
|
||||
article1.setPicUrl("PIC_URL");
|
||||
article1.setDescription("Is Really A Happy Day");
|
||||
article1.setTitle("Happy Day");
|
||||
reply.getArticles().add(article1);
|
||||
|
||||
|
||||
WxArticle article2 = new WxArticle();
|
||||
article2.setUrl("URL");
|
||||
article2.setPicUrl("PIC_URL");
|
||||
@@ -85,14 +85,14 @@ public class WxCpMessageTest {
|
||||
|
||||
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"news\",\"news\":{\"articles\":[{\"title\":\"Happy Day\",\"description\":\"Is Really A Happy Day\",\"url\":\"URL\",\"picurl\":\"PIC_URL\"},{\"title\":\"Happy Day\",\"description\":\"Is Really A Happy Day\",\"url\":\"URL\",\"picurl\":\"PIC_URL\"}]}}");
|
||||
}
|
||||
|
||||
|
||||
public void testNewsBuild() {
|
||||
WxArticle article1 = new WxArticle();
|
||||
article1.setUrl("URL");
|
||||
article1.setPicUrl("PIC_URL");
|
||||
article1.setDescription("Is Really A Happy Day");
|
||||
article1.setTitle("Happy Day");
|
||||
|
||||
|
||||
WxArticle article2 = new WxArticle();
|
||||
article2.setUrl("URL");
|
||||
article2.setPicUrl("PIC_URL");
|
||||
@@ -103,5 +103,5 @@ public class WxCpMessageTest {
|
||||
|
||||
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"news\",\"news\":{\"articles\":[{\"title\":\"Happy Day\",\"description\":\"Is Really A Happy Day\",\"url\":\"URL\",\"picurl\":\"PIC_URL\"},{\"title\":\"Happy Day\",\"description\":\"Is Really A Happy Day\",\"url\":\"URL\",\"picurl\":\"PIC_URL\"}]}}");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -10,49 +10,49 @@ public class WxCpXmlMessageTest {
|
||||
public void testFromXml() {
|
||||
|
||||
String xml = "<xml>"
|
||||
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[fromUser]]></FromUserName> "
|
||||
+ "<CreateTime>1348831860</CreateTime>"
|
||||
+ "<MsgType><![CDATA[text]]></MsgType>"
|
||||
+ "<Content><![CDATA[this is a test]]></Content>"
|
||||
+ "<MsgId>1234567890123456</MsgId>"
|
||||
+ "<PicUrl><![CDATA[this is a url]]></PicUrl>"
|
||||
+ "<MediaId><![CDATA[media_id]]></MediaId>"
|
||||
+ "<Format><![CDATA[Format]]></Format>"
|
||||
+ "<ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>"
|
||||
+ "<Location_X>23.134521</Location_X>"
|
||||
+ "<Location_Y>113.358803</Location_Y>"
|
||||
+ "<Scale>20</Scale>"
|
||||
+ "<Label><![CDATA[位置信息]]></Label>"
|
||||
+ "<Description><![CDATA[公众平台官网链接]]></Description>"
|
||||
+ "<Url><![CDATA[url]]></Url>"
|
||||
+ "<Title><![CDATA[公众平台官网链接]]></Title>"
|
||||
+ "<Event><![CDATA[subscribe]]></Event>"
|
||||
+ "<EventKey><![CDATA[qrscene_123123]]></EventKey>"
|
||||
+ "<Ticket><![CDATA[TICKET]]></Ticket>"
|
||||
+ "<Latitude>23.137466</Latitude>"
|
||||
+ "<Longitude>113.352425</Longitude>"
|
||||
+ "<Precision>119.385040</Precision>"
|
||||
+ "<ScanCodeInfo>"
|
||||
+ " <ScanType><![CDATA[qrcode]]></ScanType>"
|
||||
+ " <ScanResult><![CDATA[1]]></ScanResult>"
|
||||
+ "</ScanCodeInfo>"
|
||||
+ "<SendPicsInfo>"
|
||||
+ " <Count>1</Count>\n"
|
||||
+ " <PicList>"
|
||||
+ " <item>"
|
||||
+ " <PicMd5Sum><![CDATA[1b5f7c23b5bf75682a53e7b6d163e185]]></PicMd5Sum>"
|
||||
+ " </item>"
|
||||
+ " </PicList>"
|
||||
+ "</SendPicsInfo>"
|
||||
+ "<SendLocationInfo>"
|
||||
+ " <Location_X><![CDATA[23]]></Location_X>\n"
|
||||
+ " <Location_Y><![CDATA[113]]></Location_Y>\n"
|
||||
+ " <Scale><![CDATA[15]]></Scale>\n"
|
||||
+ " <Label><![CDATA[ 广州市海珠区客村艺苑路 106号]]></Label>\n"
|
||||
+ " <Poiname><![CDATA[wo de poi]]></Poiname>\n"
|
||||
+ "</SendLocationInfo>"
|
||||
+ "</xml>";
|
||||
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[fromUser]]></FromUserName> "
|
||||
+ "<CreateTime>1348831860</CreateTime>"
|
||||
+ "<MsgType><![CDATA[text]]></MsgType>"
|
||||
+ "<Content><![CDATA[this is a test]]></Content>"
|
||||
+ "<MsgId>1234567890123456</MsgId>"
|
||||
+ "<PicUrl><![CDATA[this is a url]]></PicUrl>"
|
||||
+ "<MediaId><![CDATA[media_id]]></MediaId>"
|
||||
+ "<Format><![CDATA[Format]]></Format>"
|
||||
+ "<ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>"
|
||||
+ "<Location_X>23.134521</Location_X>"
|
||||
+ "<Location_Y>113.358803</Location_Y>"
|
||||
+ "<Scale>20</Scale>"
|
||||
+ "<Label><![CDATA[位置信息]]></Label>"
|
||||
+ "<Description><![CDATA[公众平台官网链接]]></Description>"
|
||||
+ "<Url><![CDATA[url]]></Url>"
|
||||
+ "<Title><![CDATA[公众平台官网链接]]></Title>"
|
||||
+ "<Event><![CDATA[subscribe]]></Event>"
|
||||
+ "<EventKey><![CDATA[qrscene_123123]]></EventKey>"
|
||||
+ "<Ticket><![CDATA[TICKET]]></Ticket>"
|
||||
+ "<Latitude>23.137466</Latitude>"
|
||||
+ "<Longitude>113.352425</Longitude>"
|
||||
+ "<Precision>119.385040</Precision>"
|
||||
+ "<ScanCodeInfo>"
|
||||
+ " <ScanType><![CDATA[qrcode]]></ScanType>"
|
||||
+ " <ScanResult><![CDATA[1]]></ScanResult>"
|
||||
+ "</ScanCodeInfo>"
|
||||
+ "<SendPicsInfo>"
|
||||
+ " <Count>1</Count>\n"
|
||||
+ " <PicList>"
|
||||
+ " <item>"
|
||||
+ " <PicMd5Sum><![CDATA[1b5f7c23b5bf75682a53e7b6d163e185]]></PicMd5Sum>"
|
||||
+ " </item>"
|
||||
+ " </PicList>"
|
||||
+ "</SendPicsInfo>"
|
||||
+ "<SendLocationInfo>"
|
||||
+ " <Location_X><![CDATA[23]]></Location_X>\n"
|
||||
+ " <Location_Y><![CDATA[113]]></Location_Y>\n"
|
||||
+ " <Scale><![CDATA[15]]></Scale>\n"
|
||||
+ " <Label><![CDATA[ 广州市海珠区客村艺苑路 106号]]></Label>\n"
|
||||
+ " <Poiname><![CDATA[wo de poi]]></Poiname>\n"
|
||||
+ "</SendLocationInfo>"
|
||||
+ "</xml>";
|
||||
WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xml);
|
||||
Assert.assertEquals(wxMessage.getToUserName(), "toUser");
|
||||
Assert.assertEquals(wxMessage.getFromUserName(), "fromUser");
|
||||
@@ -87,5 +87,5 @@ public class WxCpXmlMessageTest {
|
||||
Assert.assertEquals(wxMessage.getSendLocationInfo().getLabel(), " 广州市海珠区客村艺苑路 106号");
|
||||
Assert.assertEquals(wxMessage.getSendLocationInfo().getPoiname(), "wo de poi");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -12,37 +12,37 @@ public class WxCpXmlOutImageMessageTest {
|
||||
m.setCreateTime(1122l);
|
||||
m.setFromUserName("from");
|
||||
m.setToUserName("to");
|
||||
|
||||
|
||||
String expected = "<xml>"
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[image]]></MsgType>"
|
||||
+ "<Image><MediaId><![CDATA[ddfefesfsdfef]]></MediaId></Image>"
|
||||
+ "</xml>";
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[image]]></MsgType>"
|
||||
+ "<Image><MediaId><![CDATA[ddfefesfsdfef]]></MediaId></Image>"
|
||||
+ "</xml>";
|
||||
System.out.println(m.toXml());
|
||||
Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", ""));
|
||||
}
|
||||
|
||||
|
||||
public void testBuild() {
|
||||
WxCpXmlOutImageMessage m = WxCpXmlOutMessage.IMAGE().mediaId("ddfefesfsdfef").fromUser("from").toUser("to").build();
|
||||
String expected = "<xml>"
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[image]]></MsgType>"
|
||||
+ "<Image><MediaId><![CDATA[ddfefesfsdfef]]></MediaId></Image>"
|
||||
+ "</xml>";
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[image]]></MsgType>"
|
||||
+ "<Image><MediaId><![CDATA[ddfefesfsdfef]]></MediaId></Image>"
|
||||
+ "</xml>";
|
||||
System.out.println(m.toXml());
|
||||
Assert.assertEquals(
|
||||
m
|
||||
.toXml()
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", ""),
|
||||
expected
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", "")
|
||||
);
|
||||
|
||||
m
|
||||
.toXml()
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", ""),
|
||||
expected
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", "")
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ public class WxCpXmlOutNewsMessageTest {
|
||||
m.setCreateTime(1122l);
|
||||
m.setFromUserName("fromUser");
|
||||
m.setToUserName("toUser");
|
||||
|
||||
|
||||
WxCpXmlOutNewsMessage.Item item = new WxCpXmlOutNewsMessage.Item();
|
||||
item.setDescription("description");
|
||||
item.setPicUrl("picUrl");
|
||||
@@ -20,74 +20,74 @@ public class WxCpXmlOutNewsMessageTest {
|
||||
m.addArticle(item);
|
||||
m.addArticle(item);
|
||||
String expected = "<xml>"
|
||||
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[news]]></MsgType>"
|
||||
+ " <ArticleCount>2</ArticleCount>"
|
||||
+ " <Articles>"
|
||||
+ " <item>"
|
||||
+ " <Title><![CDATA[title]]></Title>"
|
||||
+ " <Description><![CDATA[description]]></Description>"
|
||||
+ " <PicUrl><![CDATA[picUrl]]></PicUrl>"
|
||||
+ " <Url><![CDATA[url]]></Url>"
|
||||
+ " </item>"
|
||||
+ " <item>"
|
||||
+ " <Title><![CDATA[title]]></Title>"
|
||||
+ " <Description><![CDATA[description]]></Description>"
|
||||
+ " <PicUrl><![CDATA[picUrl]]></PicUrl>"
|
||||
+ " <Url><![CDATA[url]]></Url>"
|
||||
+ " </item>"
|
||||
+ " </Articles>"
|
||||
+ "</xml>";
|
||||
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[news]]></MsgType>"
|
||||
+ " <ArticleCount>2</ArticleCount>"
|
||||
+ " <Articles>"
|
||||
+ " <item>"
|
||||
+ " <Title><![CDATA[title]]></Title>"
|
||||
+ " <Description><![CDATA[description]]></Description>"
|
||||
+ " <PicUrl><![CDATA[picUrl]]></PicUrl>"
|
||||
+ " <Url><![CDATA[url]]></Url>"
|
||||
+ " </item>"
|
||||
+ " <item>"
|
||||
+ " <Title><![CDATA[title]]></Title>"
|
||||
+ " <Description><![CDATA[description]]></Description>"
|
||||
+ " <PicUrl><![CDATA[picUrl]]></PicUrl>"
|
||||
+ " <Url><![CDATA[url]]></Url>"
|
||||
+ " </item>"
|
||||
+ " </Articles>"
|
||||
+ "</xml>";
|
||||
System.out.println(m.toXml());
|
||||
Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", ""));
|
||||
}
|
||||
|
||||
|
||||
public void testBuild() {
|
||||
WxCpXmlOutNewsMessage.Item item = new WxCpXmlOutNewsMessage.Item();
|
||||
item.setDescription("description");
|
||||
item.setPicUrl("picUrl");
|
||||
item.setTitle("title");
|
||||
item.setUrl("url");
|
||||
|
||||
|
||||
WxCpXmlOutNewsMessage m = WxCpXmlOutMessage.NEWS()
|
||||
.fromUser("fromUser")
|
||||
.toUser("toUser")
|
||||
.addArticle(item)
|
||||
.addArticle(item)
|
||||
.build();
|
||||
.fromUser("fromUser")
|
||||
.toUser("toUser")
|
||||
.addArticle(item)
|
||||
.addArticle(item)
|
||||
.build();
|
||||
String expected = "<xml>"
|
||||
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[news]]></MsgType>"
|
||||
+ " <ArticleCount>2</ArticleCount>"
|
||||
+ " <Articles>"
|
||||
+ " <item>"
|
||||
+ " <Title><![CDATA[title]]></Title>"
|
||||
+ " <Description><![CDATA[description]]></Description>"
|
||||
+ " <PicUrl><![CDATA[picUrl]]></PicUrl>"
|
||||
+ " <Url><![CDATA[url]]></Url>"
|
||||
+ " </item>"
|
||||
+ " <item>"
|
||||
+ " <Title><![CDATA[title]]></Title>"
|
||||
+ " <Description><![CDATA[description]]></Description>"
|
||||
+ " <PicUrl><![CDATA[picUrl]]></PicUrl>"
|
||||
+ " <Url><![CDATA[url]]></Url>"
|
||||
+ " </item>"
|
||||
+ " </Articles>"
|
||||
+ "</xml>";
|
||||
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[news]]></MsgType>"
|
||||
+ " <ArticleCount>2</ArticleCount>"
|
||||
+ " <Articles>"
|
||||
+ " <item>"
|
||||
+ " <Title><![CDATA[title]]></Title>"
|
||||
+ " <Description><![CDATA[description]]></Description>"
|
||||
+ " <PicUrl><![CDATA[picUrl]]></PicUrl>"
|
||||
+ " <Url><![CDATA[url]]></Url>"
|
||||
+ " </item>"
|
||||
+ " <item>"
|
||||
+ " <Title><![CDATA[title]]></Title>"
|
||||
+ " <Description><![CDATA[description]]></Description>"
|
||||
+ " <PicUrl><![CDATA[picUrl]]></PicUrl>"
|
||||
+ " <Url><![CDATA[url]]></Url>"
|
||||
+ " </item>"
|
||||
+ " </Articles>"
|
||||
+ "</xml>";
|
||||
System.out.println(m.toXml());
|
||||
Assert.assertEquals(
|
||||
m
|
||||
.toXml()
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", ""),
|
||||
expected
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", "")
|
||||
);
|
||||
m
|
||||
.toXml()
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", ""),
|
||||
expected
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", "")
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -12,39 +12,39 @@ public class WxCpXmlOutTextMessageTest {
|
||||
m.setCreateTime(1122l);
|
||||
m.setFromUserName("from");
|
||||
m.setToUserName("to");
|
||||
|
||||
|
||||
String expected = "<xml>"
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[text]]></MsgType>"
|
||||
+ "<Content><![CDATA[content]]></Content>"
|
||||
+ "</xml>";
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[text]]></MsgType>"
|
||||
+ "<Content><![CDATA[content]]></Content>"
|
||||
+ "</xml>";
|
||||
System.out.println(m.toXml());
|
||||
Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", ""));
|
||||
}
|
||||
|
||||
|
||||
public void testBuild() {
|
||||
WxCpXmlOutTextMessage m = WxCpXmlOutMessage.TEXT().content("content").fromUser("from").toUser("to").build();
|
||||
String expected = "<xml>"
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[text]]></MsgType>"
|
||||
+ "<Content><![CDATA[content]]></Content>"
|
||||
+ "</xml>";
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[text]]></MsgType>"
|
||||
+ "<Content><![CDATA[content]]></Content>"
|
||||
+ "</xml>";
|
||||
System.out.println(m.toXml());
|
||||
Assert.assertEquals(
|
||||
m
|
||||
.toXml()
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", ""),
|
||||
expected
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", "")
|
||||
);
|
||||
|
||||
m
|
||||
.toXml()
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", ""),
|
||||
expected
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", "")
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -14,51 +14,51 @@ public class WxCpXmlOutVideoMessageTest {
|
||||
m.setCreateTime(1122l);
|
||||
m.setFromUserName("fromUser");
|
||||
m.setToUserName("toUser");
|
||||
|
||||
|
||||
String expected = "<xml>"
|
||||
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[video]]></MsgType>"
|
||||
+ "<Video>"
|
||||
+ "<MediaId><![CDATA[media_id]]></MediaId>"
|
||||
+ "<Title><![CDATA[title]]></Title>"
|
||||
+ "<Description><![CDATA[ddfff]]></Description>"
|
||||
+ "</Video> "
|
||||
+ "</xml>";
|
||||
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[video]]></MsgType>"
|
||||
+ "<Video>"
|
||||
+ "<MediaId><![CDATA[media_id]]></MediaId>"
|
||||
+ "<Title><![CDATA[title]]></Title>"
|
||||
+ "<Description><![CDATA[ddfff]]></Description>"
|
||||
+ "</Video> "
|
||||
+ "</xml>";
|
||||
System.out.println(m.toXml());
|
||||
Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", ""));
|
||||
}
|
||||
|
||||
|
||||
public void testBuild() {
|
||||
WxCpXmlOutVideoMessage m = WxCpXmlOutMessage.VIDEO()
|
||||
.mediaId("media_id")
|
||||
.fromUser("fromUser")
|
||||
.toUser("toUser")
|
||||
.title("title")
|
||||
.description("ddfff")
|
||||
.build();
|
||||
.mediaId("media_id")
|
||||
.fromUser("fromUser")
|
||||
.toUser("toUser")
|
||||
.title("title")
|
||||
.description("ddfff")
|
||||
.build();
|
||||
String expected = "<xml>"
|
||||
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[video]]></MsgType>"
|
||||
+ "<Video>"
|
||||
+ "<MediaId><![CDATA[media_id]]></MediaId>"
|
||||
+ "<Title><![CDATA[title]]></Title>"
|
||||
+ "<Description><![CDATA[ddfff]]></Description>"
|
||||
+ "</Video> "
|
||||
+ "</xml>";
|
||||
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[video]]></MsgType>"
|
||||
+ "<Video>"
|
||||
+ "<MediaId><![CDATA[media_id]]></MediaId>"
|
||||
+ "<Title><![CDATA[title]]></Title>"
|
||||
+ "<Description><![CDATA[ddfff]]></Description>"
|
||||
+ "</Video> "
|
||||
+ "</xml>";
|
||||
System.out.println(m.toXml());
|
||||
Assert.assertEquals(
|
||||
m
|
||||
.toXml()
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", ""),
|
||||
expected
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", "")
|
||||
);
|
||||
m
|
||||
.toXml()
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", ""),
|
||||
expected
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", "")
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -12,37 +12,37 @@ public class WxCpXmlOutVoiceMessageTest {
|
||||
m.setCreateTime(1122l);
|
||||
m.setFromUserName("from");
|
||||
m.setToUserName("to");
|
||||
|
||||
|
||||
String expected = "<xml>"
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[voice]]></MsgType>"
|
||||
+ "<Voice><MediaId><![CDATA[ddfefesfsdfef]]></MediaId></Voice>"
|
||||
+ "</xml>";
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[voice]]></MsgType>"
|
||||
+ "<Voice><MediaId><![CDATA[ddfefesfsdfef]]></MediaId></Voice>"
|
||||
+ "</xml>";
|
||||
System.out.println(m.toXml());
|
||||
Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", ""));
|
||||
}
|
||||
|
||||
|
||||
public void testBuild() {
|
||||
WxCpXmlOutVoiceMessage m = WxCpXmlOutMessage.VOICE().mediaId("ddfefesfsdfef").fromUser("from").toUser("to").build();
|
||||
String expected = "<xml>"
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[voice]]></MsgType>"
|
||||
+ "<Voice><MediaId><![CDATA[ddfefesfsdfef]]></MediaId></Voice>"
|
||||
+ "</xml>";
|
||||
+ "<ToUserName><![CDATA[to]]></ToUserName>"
|
||||
+ "<FromUserName><![CDATA[from]]></FromUserName>"
|
||||
+ "<CreateTime>1122</CreateTime>"
|
||||
+ "<MsgType><![CDATA[voice]]></MsgType>"
|
||||
+ "<Voice><MediaId><![CDATA[ddfefesfsdfef]]></MediaId></Voice>"
|
||||
+ "</xml>";
|
||||
System.out.println(m.toXml());
|
||||
Assert.assertEquals(
|
||||
m
|
||||
.toXml()
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", ""),
|
||||
expected
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", "")
|
||||
);
|
||||
m
|
||||
.toXml()
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", ""),
|
||||
expected
|
||||
.replaceAll("\\s", "")
|
||||
.replaceAll("<CreateTime>.*?</CreateTime>", "")
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -13,17 +13,16 @@ import java.io.InputStream;
|
||||
@XStreamAlias("xml")
|
||||
class WxCpDemoInMemoryConfigStorage extends WxCpInMemoryConfigStorage {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SimpleWxConfigProvider [appidOrCorpid=" + corpId + ", corpSecret=" + corpSecret + ", accessToken=" + accessToken
|
||||
+ ", expiresTime=" + expiresTime + ", token=" + token + ", aesKey=" + aesKey + "]";
|
||||
}
|
||||
|
||||
|
||||
public static WxCpDemoInMemoryConfigStorage fromXml(InputStream is) {
|
||||
XStream xstream = XStreamInitializer.getInstance();
|
||||
xstream.processAnnotations(WxCpDemoInMemoryConfigStorage.class);
|
||||
return (WxCpDemoInMemoryConfigStorage) xstream.fromXML(is);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SimpleWxConfigProvider [appidOrCorpid=" + corpId + ", corpSecret=" + corpSecret + ", accessToken=" + accessToken
|
||||
+ ", expiresTime=" + expiresTime + ", token=" + token + ", aesKey=" + aesKey + "]";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -37,54 +37,54 @@ public class WxCpDemoServer {
|
||||
}
|
||||
|
||||
private static void initWeixin() {
|
||||
InputStream is1 = ClassLoader.getSystemResourceAsStream("test-config.xml");
|
||||
WxCpDemoInMemoryConfigStorage config = WxCpDemoInMemoryConfigStorage.fromXml(is1);
|
||||
InputStream is1 = ClassLoader.getSystemResourceAsStream("test-config.xml");
|
||||
WxCpDemoInMemoryConfigStorage config = WxCpDemoInMemoryConfigStorage.fromXml(is1);
|
||||
|
||||
wxCpConfigStorage = config;
|
||||
wxCpService = new WxCpServiceImpl();
|
||||
wxCpService.setWxCpConfigStorage(config);
|
||||
wxCpConfigStorage = config;
|
||||
wxCpService = new WxCpServiceImpl();
|
||||
wxCpService.setWxCpConfigStorage(config);
|
||||
|
||||
WxCpMessageHandler handler = new WxCpMessageHandler() {
|
||||
@Override
|
||||
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context,
|
||||
WxCpService wxCpService, WxSessionManager sessionManager) {
|
||||
WxCpXmlOutTextMessage m = WxCpXmlOutMessage
|
||||
.TEXT()
|
||||
.content("测试加密消息")
|
||||
.fromUser(wxMessage.getToUserName())
|
||||
.toUser(wxMessage.getFromUserName())
|
||||
.build();
|
||||
return m;
|
||||
}
|
||||
};
|
||||
WxCpMessageHandler handler = new WxCpMessageHandler() {
|
||||
@Override
|
||||
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context,
|
||||
WxCpService wxCpService, WxSessionManager sessionManager) {
|
||||
WxCpXmlOutTextMessage m = WxCpXmlOutMessage
|
||||
.TEXT()
|
||||
.content("测试加密消息")
|
||||
.fromUser(wxMessage.getToUserName())
|
||||
.toUser(wxMessage.getFromUserName())
|
||||
.build();
|
||||
return m;
|
||||
}
|
||||
};
|
||||
|
||||
WxCpMessageHandler oauth2handler = new WxCpMessageHandler() {
|
||||
@Override
|
||||
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context,
|
||||
WxCpService wxCpService, WxSessionManager sessionManager) {
|
||||
String href = "<a href=\"" + wxCpService.oauth2buildAuthorizationUrl(wxCpConfigStorage.getOauth2redirectUri(), null)
|
||||
+ "\">测试oauth2</a>";
|
||||
return WxCpXmlOutMessage
|
||||
.TEXT()
|
||||
.content(href)
|
||||
.fromUser(wxMessage.getToUserName())
|
||||
.toUser(wxMessage.getFromUserName()).build();
|
||||
}
|
||||
};
|
||||
WxCpMessageHandler oauth2handler = new WxCpMessageHandler() {
|
||||
@Override
|
||||
public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map<String, Object> context,
|
||||
WxCpService wxCpService, WxSessionManager sessionManager) {
|
||||
String href = "<a href=\"" + wxCpService.oauth2buildAuthorizationUrl(wxCpConfigStorage.getOauth2redirectUri(), null)
|
||||
+ "\">测试oauth2</a>";
|
||||
return WxCpXmlOutMessage
|
||||
.TEXT()
|
||||
.content(href)
|
||||
.fromUser(wxMessage.getToUserName())
|
||||
.toUser(wxMessage.getFromUserName()).build();
|
||||
}
|
||||
};
|
||||
|
||||
wxCpMessageRouter = new WxCpMessageRouter(wxCpService);
|
||||
wxCpMessageRouter
|
||||
.rule()
|
||||
.async(false)
|
||||
.content("哈哈") // 拦截内容为“哈哈”的消息
|
||||
.handler(handler)
|
||||
.end()
|
||||
.rule()
|
||||
.async(false)
|
||||
.content("oauth")
|
||||
.handler(oauth2handler)
|
||||
.end()
|
||||
;
|
||||
wxCpMessageRouter = new WxCpMessageRouter(wxCpService);
|
||||
wxCpMessageRouter
|
||||
.rule()
|
||||
.async(false)
|
||||
.content("哈哈") // 拦截内容为“哈哈”的消息
|
||||
.handler(handler)
|
||||
.end()
|
||||
.rule()
|
||||
.async(false)
|
||||
.content("oauth")
|
||||
.handler(oauth2handler)
|
||||
.end()
|
||||
;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ public class WxCpEndpointServlet extends HttpServlet {
|
||||
protected WxCpMessageRouter wxCpMessageRouter;
|
||||
|
||||
public WxCpEndpointServlet(WxCpConfigStorage wxCpConfigStorage, WxCpService wxCpService,
|
||||
WxCpMessageRouter wxCpMessageRouter) {
|
||||
WxCpMessageRouter wxCpMessageRouter) {
|
||||
this.wxCpConfigStorage = wxCpConfigStorage;
|
||||
this.wxCpService = wxCpService;
|
||||
this.wxCpMessageRouter = wxCpMessageRouter;
|
||||
@@ -32,7 +32,7 @@ public class WxCpEndpointServlet extends HttpServlet {
|
||||
|
||||
@Override
|
||||
protected void service(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
throws ServletException, IOException {
|
||||
|
||||
response.setContentType("text/html;charset=utf-8");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
@@ -56,7 +56,7 @@ public class WxCpEndpointServlet extends HttpServlet {
|
||||
}
|
||||
|
||||
WxCpXmlMessage inMessage = WxCpXmlMessage
|
||||
.fromEncryptedXml(request.getInputStream(), wxCpConfigStorage, timestamp, nonce, msgSignature);
|
||||
.fromEncryptedXml(request.getInputStream(), wxCpConfigStorage, timestamp, nonce, msgSignature);
|
||||
WxCpXmlOutMessage outMessage = wxCpMessageRouter.route(inMessage);
|
||||
if (outMessage != null) {
|
||||
response.getWriter().write(outMessage.toEncryptedXml(wxCpConfigStorage));
|
||||
|
||||
@@ -18,8 +18,9 @@ public class WxCpOAuth2Servlet extends HttpServlet {
|
||||
this.wxCpService = wxCpService;
|
||||
}
|
||||
|
||||
@Override protected void service(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
@Override
|
||||
protected void service(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
|
||||
response.setContentType("text/html;charset=utf-8");
|
||||
response.setStatus(HttpServletResponse.SC_OK);
|
||||
|
||||
Reference in New Issue
Block a user