wx-tools WxMessageInterceptor接口實現例子

2023-03-22 17:19 更新

WxMessageInterceptor(攔截器)功能與Matcher相同,用于過濾攔截,但是與Matcher最大的不同就是,它支持更復雜的業(yè)務處理,因為它攜帶了IService和上下文context,可以利用這兩個參數進行業(yè)務處理。

  • IService : 統(tǒng)一接口調用入口。
  • context :上下文,可以向handler傳遞參數。

WxMessageInterceptor攔截器接口,可以處理更加復雜的驗證。例如身份驗證,時效校驗等等。

由于我的音樂爬蟲項目并沒有涉及到這么深的處理,所以這里只給出一個DemoInterceptor看看。


假設需求:只有用戶關注公眾號時長大于3天才能參與活動。

  • 創(chuàng)建DemoInterceptor.java 實現 WxMessageInterceptor接口

  1. /**
  2. * Demo 攔截器,可以通過WxService做更加復雜的攔截,例如身份驗證,權限驗證等操作。
  3. * @author antgan
  4. *
  5. */
  6. public class DemoInterceptor implements WxMessageInterceptor{
  7. public boolean intercept(WxXmlMessage wxMessage, Map context, IService wxService) throws WxErrorException {
  8. //可以使用wxService的微信API方法
  9. //可以在Handler和Interceptor傳遞消息,使用context上下文
  10. //可以實現自己的業(yè)務邏輯
  11. //這里就不編寫驗證關注三天以上的用戶了
  12. if(/*用戶關注時長大于3天*/){
  13. return true;
  14. }
  15. return false;
  16. }
  17. }

  • 接下來你們都知道的,修改路由器規(guī)則,添加interceptor。

例如:

  1. router.rule().matcher(new DemoMatcher()).interceptor(new DemoInterceptor()).handler(new DemoMessageHandler()).end();

搞定。接下來交給wx-tools去做吧~ 簡單吧!

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號