From 0a99706b7460ec30a565b360a0e0ff4c7696c5c9 Mon Sep 17 00:00:00 2001 From: S Date: Sun, 8 Mar 2020 16:18:09 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20#1426=20=E4=BF=AE=E5=A4=8D=E5=A4=9A?= =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E7=AE=A1=E7=90=86=E7=9A=84=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、允许动态更新公众号的配置,原有逻辑:更新配置时会报“该公众号标识已存在,请更换其他标识!”; 2、多公众号的消息路由,原有逻辑问题:handler里WxMpConfigStorageHolder不能获取到appid,意味着用的wxmpservice不对,只会走默认的,已测试存在该问题 --- .../me/chanjar/weixin/mp/api/WxMpMessageRouter.java | 11 +++++++++++ .../weixin/mp/api/impl/BaseWxMpServiceImpl.java | 3 --- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java index 2571ebaa6..98ef7716f 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageRouter.java @@ -152,6 +152,13 @@ public class WxMpMessageRouter { return route(wxMessage, context, null); } + /** + * 处理不同appid微信消息 + */ + public WxMpXmlOutMessage route(final String appid, final WxMpXmlMessage wxMessage, final Map context) { + return route(wxMessage, context, this.wxMpService.switchoverTo(appid)); + } + /** * 处理微信消息. */ @@ -228,6 +235,10 @@ public class WxMpMessageRouter { return this.route(wxMessage, new HashMap(2)); } + public WxMpXmlOutMessage route(String appid, final WxMpXmlMessage wxMessage) { + return this.route(appid, wxMessage, new HashMap(2)); + } + private boolean isMsgDuplicated(WxMpXmlMessage wxMessage) { StringBuilder messageId = new StringBuilder(); if (wxMessage.getMsgId() == null) { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java index e57099e9d..73b548c24 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java @@ -399,9 +399,6 @@ public abstract class BaseWxMpServiceImpl implements WxMpService, RequestH @Override public void addConfigStorage(String mpId, WxMpConfigStorage configStorages) { synchronized (this) { - if (this.configStorageMap.containsKey(mpId)) { - throw new RuntimeException("该公众号标识已存在,请更换其他标识!"); - } this.configStorageMap.put(mpId, configStorages); } }