WxMessageInterceptor(攔截器)功能與Matcher相同,用于過濾攔截,但是與Matcher最大的不同就是,它支持更復(fù)雜的業(yè)務(wù)處理,因為它攜帶了IService和上下文context,可以利用這兩個參數(shù)進行業(yè)務(wù)處理。
WxMessageInterceptor攔截器接口,可以處理更加復(fù)雜的驗證。例如身份驗證,時效校驗等等。
由于我的音樂爬蟲項目并沒有涉及到這么深的處理,所以這里只給出一個DemoInterceptor看看。
假設(shè)需求:只有用戶關(guān)注公眾號時長大于3天才能參與活動。
/**
* Demo 攔截器,可以通過WxService做更加復(fù)雜的攔截,例如身份驗證,權(quán)限驗證等操作。
* @author antgan
*
*/
public class DemoInterceptor implements WxMessageInterceptor{
public boolean intercept(WxXmlMessage wxMessage, Map context, IService wxService) throws WxErrorException {
//可以使用wxService的微信API方法
//可以在Handler和Interceptor傳遞消息,使用context上下文
//可以實現(xiàn)自己的業(yè)務(wù)邏輯
//這里就不編寫驗證關(guān)注三天以上的用戶了
if(/*用戶關(guān)注時長大于3天*/){
return true;
}
return false;
}
}
例如:
router.rule().matcher(new DemoMatcher()).interceptor(new DemoInterceptor()).handler(new DemoMessageHandler()).end();
搞定。接下來交給wx-tools去做吧~ 簡單吧!
更多建議: