View Javadoc
1   package com.foxinmy.weixin4j.interceptor;
2   
3   import com.foxinmy.weixin4j.handler.WeixinMessageHandler;
4   import com.foxinmy.weixin4j.request.WeixinMessage;
5   import com.foxinmy.weixin4j.request.WeixinRequest;
6   import com.foxinmy.weixin4j.response.WeixinResponse;
7   
8   import io.netty.channel.ChannelHandlerContext;
9   
10  /**
11   * 微信消息拦截器
12   *
13   * @className WeixinMessageInterceptor
14   * @author jinyu(foxinmy@gmail.com)
15   * @date 2015年5月7日
16   * @since JDK 1.6
17   * @see MessageInterceptorAdapter
18   */
19  public interface WeixinMessageInterceptor {
20  
21  	/**
22  	 * 执行handler前
23  	 *
24  	 * @param context
25  	 *            通道环境
26  	 * @param request
27  	 *            微信请求
28  	 * @param message
29  	 *            微信消息
30  	 * @param handler
31  	 *            消息处理器
32  	 * @return 返回true执行下一个拦截器
33  	 * @throws WeixinException
34  	 */
35  	boolean preHandle(ChannelHandlerContext context, WeixinRequest request,
36  			WeixinMessage message, WeixinMessageHandler handler);
37  
38  	/**
39  	 * 执行handler后
40  	 *
41  	 * @param context
42  	 *            通道环境
43  	 * @param request
44  	 *            微信请求
45  	 * @param response
46  	 *            微信响应
47  	 * @param message
48  	 *            微信消息
49  	 * @param handler
50  	 *            消息处理器
51  	 * @throws WeixinException
52  	 */
53  	void postHandle(ChannelHandlerContext context, WeixinRequest request,
54  			WeixinResponse response, WeixinMessage message,
55  			WeixinMessageHandler handler);
56  
57  	/**
58  	 * 全部执行后
59  	 *
60  	 * @param context
61  	 *            通道环境
62  	 * @param request
63  	 *            微信请求
64  	 * @param message
65  	 *            微信消息
66  	 * @param handler
67  	 *            消息处理器
68  	 * @param exception
69  	 *            执行异常
70  	 * @throws WeixinException
71  	 */
72  	void afterCompletion(ChannelHandlerContext context, WeixinRequest request,
73  			WeixinResponse response, WeixinMessage message,
74  			WeixinMessageHandler handler, Exception exception);
75  
76  	/**
77  	 * 用于匹配到多个MessageHandler时权重降序排列,数字越大优先级越高
78  	 *
79  	 * @return 权重
80  	 */
81  	int weight();
82  }