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去做吧~ 简单吧!

results matching ""

    No results matching ""