binarywang/weixin-java-mp-demo

配置多个公众号,SubscribeHandler怎么获取一个用户订阅的是哪一个公众号呢?

hoony96 opened this issue · 6 comments

配置多个公众号,SubscribeHandler怎么获取一个用户订阅的是哪一个公众号呢?

service里对应有config吧

从service中获取的一直是第一个公众号的配置
WxMpConfigStorage wxMpConfigStorage = weixinService.getWxMpConfigStorage();
wxMpConfigStorage.getAppId()

image
WxMpConfigStorage wxMpConfigStorage = weixinService.getWxMpConfigStorage();
这个获取的是你配置的xxxxx在你项目的配置里边对应的config,不是你说的第一个,进去看weixinService.getWxMpConfigStorage()方法里边是维护的Map<String, WxMpConfigStorage> configStorageMap;
key是appid 就是xxxxx

WxMpConfigStorageHolder.get() 可以拿到appid。
但是不会用WxMpConfigStorageHolder.remove()。不知道会不会存在高并发串值的问题?

多个微信号使用 weixinService.getWxMpConfigStorage();这个方法,获取出来的是null,请问有遇到过吗

w2cl commented

image WxMpConfigStorage wxMpConfigStorage = weixinService.getWxMpConfigStorage(); 这个获取的是你配置的xxxxx在你项目的配置里边对应的config,不是你说的第一个,进去看weixinService.getWxMpConfigStorage()方法里边是维护的Map<String, WxMpConfigStorage> configStorageMap; key是appid 就是xxxxx

return this.configStorageMap.size() == 1 ? (WxMpConfigStorage)this.configStorageMap.values().iterator().next() : (WxMpConfigStorage)this.configStorageMap.get(WxMpConfigStorageHolder.get()); 这个不是获取的第一个吗?
image