wx-tools WxMessageInterceptor接口实现例子
2023-03-22 17:19 更新
WxMessageInterceptor(拦截器)功能与Matcher相同,用于过滤拦截,但是与Matcher最大的不同就是,它支持更复杂的业务处理,因为它携带了IService和上下文context,可以利用这两个参数进行业务处理。
- IService : 统一接口调用入口。
- context :上下文,可以向handler传递参数。
WxMessageInterceptor拦截器接口,可以处理更加复杂的验证。例如身份验证,时效校验等等。
由于我的音乐爬虫项目并没有涉及到这么深的处理,所以这里只给出一个DemoInterceptor看看。
假设需求:只有用户关注公众号时长大于3天才能参与活动。
- 创建DemoInterceptor.java 实现 WxMessageInterceptor接口
/**
* Demo 拦截器,可以通过WxService做更加复杂的拦截,例如身份验证,权限验证等操作。
* @author antgan
*
*/
public class DemoInterceptor implements WxMessageInterceptor{
public boolean intercept(WxXmlMessage wxMessage, Map context, IService wxService) throws WxErrorException {
//可以使用wxService的微信API方法
//可以在Handler和Interceptor传递消息,使用context上下文
//可以实现自己的业务逻辑
//这里就不编写验证关注三天以上的用户了
if(/*用户关注时长大于3天*/){
return true;
}
return false;
}
}
- 接下来你们都知道的,修改路由器规则,添加interceptor。
例如:
router.rule().matcher(new DemoMatcher()).interceptor(new DemoInterceptor()).handler(new DemoMessageHandler()).end();
搞定。接下来交给wx-tools去做吧~ 简单吧!
以上内容是否对您有帮助:
更多建议: