@@ -8,18 +8,21 @@ import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; | |||||
import java.util.Map; | import java.util.Map; | ||||
/** | /** | ||||
* 处理微信推送消息的处理器接口 | |||||
* 处理微信推送消息的处理器接口. | |||||
* | * | ||||
* @author Daniel Qian | * @author Daniel Qian | ||||
*/ | */ | ||||
public interface WxMpMessageHandler { | public interface WxMpMessageHandler { | ||||
/** | /** | ||||
* @param wxMessage | |||||
* 处理微信推送消息. | |||||
* | |||||
* @param wxMessage 微信推送消息 | |||||
* @param context 上下文,如果handler或interceptor之间有信息要传递,可以用这个 | * @param context 上下文,如果handler或interceptor之间有信息要传递,可以用这个 | ||||
* @param wxMpService | |||||
* @param sessionManager | |||||
* @param wxMpService 服务类 | |||||
* @param sessionManager session管理器 | |||||
* @return xml格式的消息,如果在异步规则里处理的话,可以返回null | * @return xml格式的消息,如果在异步规则里处理的话,可以返回null | ||||
* @throws WxErrorException 异常 | |||||
*/ | */ | ||||
WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, | ||||
Map<String, Object> context, | Map<String, Object> context, | ||||
@@ -144,21 +144,21 @@ public class WxMpMessageRouter { | |||||
} | } | ||||
/** | /** | ||||
* 开始一个新的Route规则 | |||||
* 开始一个新的Route规则. | |||||
*/ | */ | ||||
public WxMpMessageRouterRule rule() { | public WxMpMessageRouterRule rule() { | ||||
return new WxMpMessageRouterRule(this); | return new WxMpMessageRouterRule(this); | ||||
} | } | ||||
/** | /** | ||||
* 处理微信消息 | |||||
* 处理微信消息. | |||||
*/ | */ | ||||
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context) { | public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context) { | ||||
return route(wxMessage, context, null); | return route(wxMessage, context, null); | ||||
} | } | ||||
/** | /** | ||||
* 处理微信消息 | |||||
* 处理微信消息. | |||||
*/ | */ | ||||
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context, WxMpService wxMpService) { | public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context, WxMpService wxMpService) { | ||||
if (wxMpService == null) { | if (wxMpService == null) { | ||||
@@ -252,7 +252,7 @@ public class WxMpMessageRouter { | |||||
} | } | ||||
/** | /** | ||||
* 对session的访问结束 | |||||
* 对session的访问结束. | |||||
*/ | */ | ||||
protected void sessionEndAccess(WxMpXmlMessage wxMessage) { | protected void sessionEndAccess(WxMpXmlMessage wxMessage) { | ||||
@@ -27,13 +27,11 @@ public class WxMpDemoServer { | |||||
ServletHandler servletHandler = new ServletHandler(); | ServletHandler servletHandler = new ServletHandler(); | ||||
server.setHandler(servletHandler); | server.setHandler(servletHandler); | ||||
ServletHolder endpointServletHolder = new ServletHolder( | |||||
new WxMpEndpointServlet(wxMpConfigStorage, wxMpService, | |||||
wxMpMessageRouter)); | |||||
ServletHolder endpointServletHolder = new ServletHolder(new WxMpEndpointServlet(wxMpConfigStorage, wxMpService, | |||||
wxMpMessageRouter)); | |||||
servletHandler.addServletWithMapping(endpointServletHolder, "/*"); | servletHandler.addServletWithMapping(endpointServletHolder, "/*"); | ||||
ServletHolder oauthServletHolder = new ServletHolder( | |||||
new WxMpOAuth2Servlet(wxMpService)); | |||||
ServletHolder oauthServletHolder = new ServletHolder(new WxMpOAuth2Servlet(wxMpService)); | |||||
servletHandler.addServletWithMapping(oauthServletHolder, "/oauth2/*"); | servletHandler.addServletWithMapping(oauthServletHolder, "/oauth2/*"); | ||||
server.start(); | server.start(); | ||||
@@ -41,10 +39,8 @@ public class WxMpDemoServer { | |||||
} | } | ||||
private static void initWeixin() { | private static void initWeixin() { | ||||
try (InputStream is1 = ClassLoader | |||||
.getSystemResourceAsStream("test-config.xml")) { | |||||
WxMpDemoInMemoryConfigStorage config = WxMpDemoInMemoryConfigStorage | |||||
.fromXml(is1); | |||||
try (InputStream is1 = ClassLoader.getSystemResourceAsStream("test-config.xml")) { | |||||
WxMpDemoInMemoryConfigStorage config = WxMpDemoInMemoryConfigStorage.fromXml(is1); | |||||
wxMpConfigStorage = config; | wxMpConfigStorage = config; | ||||
wxMpService = new WxMpServiceHttpClientImpl(); | wxMpService = new WxMpServiceHttpClientImpl(); | ||||