2.6)WxMessageInterceptor接口实现
WxMessageInterceptor拦截器接口,可以处理更加复杂的验证。例如身份验证。
- 业务场景:在上一篇的猜单词活动中,增加一个规则。
- 只有用户关注公众号时长大于3天才能参与活动。
- 创建DemoInterceptor.java 实现 WxMessageInterceptor接口
/**
* Demo 拦截器,可以通过WxService做更加复杂的拦截,例如身份验证,权限验证等操作。
* @author antgan
*
*/
public class DemoInterceptor implements WxMessageInterceptor{
public boolean intercept(WxXmlMessage wxMessage, Map<String, Object> context, IService wxService)
throws WxErrorException {
//可以使用wxService的微信API方法
//可以在Handler和Interceptor传递消息,使用context上下文
//可以实现自己的业务逻辑
//这里就不编写验证关注三天以上的用户了
if(/*用户关注时长大于3天*/){
return true;
}
return false;
}
}
- 修改
- DemoSerlvet里的doPost方法中的路由器规则,添加DemoInterceptor
router.rule().matcher(new DemoMatcher()).interceptor(new DemoInterceptor()).handler(new DemoMessageHandler()).end();
搞定。接下来交给wx-tools去做吧~ 简单吧!