docs: protected WxCpXmlOutMessage service(WxCpXmlMessage wxMessage,
        WxCpService wxCpService,
        WxSessionManager sessionManager,
        WxErrorExceptionHandler exceptionHandler) {
  
      try {
  
        Map<String, Object> context = new HashMap<String, Object>();
        // 如果拦截器不通过
        for (WxCpMessageInterceptor interceptor : this.interceptors) {
          if (!interceptor.intercept(wxMessage, context, wxCpService, sessionManager)) {
            return null;
          }
        }
  
        // 交给handler处理
        WxCpXmlOutMessage res = null;
        for (WxCpMessageHandler handler : this.handlers) {
          // 返回最后handler的结果
          res = handler.handle(wxMessage, context, wxCpService, sessionManager);
        }
        return res;
  
      } catch (WxErrorException e) {
        exceptionHandler.handle(e);
      }
  
      return null;
  
    }