diff --git a/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java b/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java index abd98a9..25c5c02 100644 --- a/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java +++ b/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java @@ -285,9 +285,8 @@ public class WechatCalllbackController extends BaseController { } else { getThreadCount( 0 ); // 公众号 - WxMpService mpService = openService.getWxOpenComponentService().getWxMpServiceByAppid(appId); try { - WxMpXmlOutMessage outMessage = mpManager.getRouter(mpService).route(inMessage); + WxMpXmlOutMessage outMessage = mpManager.getRouter(appId).route(inMessage); getThreadCount( 1 ); if (outMessage == null) { this.logger.info("2 return: success"); diff --git a/mlWechatOpen/src/main/java/com/iformall/mp/handler/SubscribeHandler.java b/mlWechatOpen/src/main/java/com/iformall/mp/handler/SubscribeHandler.java index 703dfac..b763d4f 100644 --- a/mlWechatOpen/src/main/java/com/iformall/mp/handler/SubscribeHandler.java +++ b/mlWechatOpen/src/main/java/com/iformall/mp/handler/SubscribeHandler.java @@ -31,10 +31,10 @@ public class SubscribeHandler extends AbstractHandler { public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map context, WxMpService weixinService, WxSessionManager sessionManager) throws WxErrorException { + String appId = weixinService.getWxMpConfigStorage().getAppId(); - this.logger.info("新关注用户 OPENID: " + wxMessage.getFromUser()); + this.logger.info("新关注用户 OPENID: " + wxMessage.getFromUser() + ", AppId: " + appId); - String appId = weixinService.getWxMpConfigStorage().getAppId(); WxAuthorizerInfo authQ = new WxAuthorizerInfo(); authQ.setAuthorizerAppid(appId); WxAuthorizerInfo authorizerInfo = wxAuthorizerInfoMapper.findWeChatMp(authQ); diff --git a/mlWechatOpen/src/main/java/com/iformall/mp/handler/UnsubscribeHandler.java b/mlWechatOpen/src/main/java/com/iformall/mp/handler/UnsubscribeHandler.java index a20d9a6..b9202e9 100644 --- a/mlWechatOpen/src/main/java/com/iformall/mp/handler/UnsubscribeHandler.java +++ b/mlWechatOpen/src/main/java/com/iformall/mp/handler/UnsubscribeHandler.java @@ -29,9 +29,10 @@ public class UnsubscribeHandler extends AbstractHandler { public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map context, WxMpService wxMpService, WxSessionManager sessionManager) { - String openId = wxMessage.getFromUser(); - this.logger.info("取消关注用户 OPENID: " + openId); String appId = wxMpService.getWxMpConfigStorage().getAppId(); + String openId = wxMessage.getFromUser(); + this.logger.info("取消关注用户 OPENID: " + openId+ ", AppId: " + appId); + WxAuthorizerInfo authQ = new WxAuthorizerInfo(); authQ.setAuthorizerAppid(appId); WxAuthorizerInfo authorizerInfo = wxAuthorizerInfoMapper.findWeChatMp(authQ); diff --git a/mlWechatOpen/src/main/java/com/iformall/mp/manager/WxMpManager.java b/mlWechatOpen/src/main/java/com/iformall/mp/manager/WxMpManager.java index ee62fe6..178e711 100644 --- a/mlWechatOpen/src/main/java/com/iformall/mp/manager/WxMpManager.java +++ b/mlWechatOpen/src/main/java/com/iformall/mp/manager/WxMpManager.java @@ -53,14 +53,17 @@ public class WxMpManager { return openService.getWxOpenComponentService().getWxMpServiceByAppid(appId); } - public WxMpMessageRouter getRouter(WxMpService mpService) { - String appId = mpService.getWxMpConfigStorage().getAppId(); + public WxMpMessageRouter getRouter(String appId) { + if (myRouterMap.containsKey(appId)) { logger.info("found appId : ", appId); return myRouterMap.get(appId); } else { + WxMpService wxMpService = openService.getWxOpenComponentService().getWxMpServiceByAppid(appId); + WxMpMessageRouter newRouter = newRouter(wxMpService); + myRouterMap.put(appId, newRouter); logger.info("found new appId : ", appId); - return newRouter(mpService); + return newRouter; } } @@ -134,8 +137,6 @@ public class WxMpManager { // 默认 newRouter.rule().async(false).handler(this.msgHandler).end(); - myRouterMap.put(wxMpService.getWxMpConfigStorage().getAppId(), newRouter); - return newRouter; }