mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-08-25 01:14:36 +08:00
开放平台增加 MessageRouter
This commit is contained in:
parent
5c9ec87bb8
commit
a0768510af
@ -130,6 +130,16 @@ public class WxMpMessageRouter {
|
|||||||
* 处理微信消息
|
* 处理微信消息
|
||||||
*/
|
*/
|
||||||
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);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 处理微信消息
|
||||||
|
*/
|
||||||
|
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context, WxMpService wxMpService) {
|
||||||
|
if(wxMpService == null){
|
||||||
|
wxMpService = this.wxMpService;
|
||||||
|
}
|
||||||
|
final WxMpService mpService = wxMpService;
|
||||||
if (isMsgDuplicated(wxMessage)) {
|
if (isMsgDuplicated(wxMessage)) {
|
||||||
// 如果是重复消息,那么就不做处理
|
// 如果是重复消息,那么就不做处理
|
||||||
return null;
|
return null;
|
||||||
@ -159,12 +169,12 @@ public class WxMpMessageRouter {
|
|||||||
this.executorService.submit(new Runnable() {
|
this.executorService.submit(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
rule.service(wxMessage, context, WxMpMessageRouter.this.wxMpService, WxMpMessageRouter.this.sessionManager, WxMpMessageRouter.this.exceptionHandler);
|
rule.service(wxMessage, context, mpService, WxMpMessageRouter.this.sessionManager, WxMpMessageRouter.this.exceptionHandler);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
res = rule.service(wxMessage, context, this.wxMpService, this.sessionManager, this.exceptionHandler);
|
res = rule.service(wxMessage, context, mpService, this.sessionManager, this.exceptionHandler);
|
||||||
// 在同步操作结束,session访问结束
|
// 在同步操作结束,session访问结束
|
||||||
this.log.debug("End session access: async=false, sessionId={}", wxMessage.getFromUser());
|
this.log.debug("End session access: async=false, sessionId={}", wxMessage.getFromUser());
|
||||||
sessionEndAccess(wxMessage);
|
sessionEndAccess(wxMessage);
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
package me.chanjar.weixin.open.api.impl;
|
||||||
|
|
||||||
|
import me.chanjar.weixin.mp.api.WxMpMessageRouter;
|
||||||
|
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
|
||||||
|
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
|
||||||
|
import me.chanjar.weixin.open.api.WxOpenService;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class WxOpenMessageRouter extends WxMpMessageRouter {
|
||||||
|
private WxOpenService wxOpenService;
|
||||||
|
public WxOpenMessageRouter(WxOpenService wxOpenService) {
|
||||||
|
super(null);
|
||||||
|
this.wxOpenService = wxOpenService;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, String appId) {
|
||||||
|
return route(wxMessage, new HashMap<String, Object>(), appId);
|
||||||
|
}
|
||||||
|
public WxMpXmlOutMessage route(final WxMpXmlMessage wxMessage, final Map<String, Object> context, String appId) {
|
||||||
|
return route(wxMessage, context, wxOpenService.getWxOpenComponentService().getWxMpServiceByAppid(appId));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user