| @@ -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(); | ||||