code: public static WxOutMsg handleEvent(WxInMsg msg, WxHandler handler) {
          WxOutMsg out = null;
          switch (WxEventType.valueOf(msg.getEvent())) {
          case subscribe:
              out = handler.eventSubscribe(msg);
              break;
          case unsubscribe:
              out = handler.eventUnsubscribe(msg);
              break;
          case LOCATION:
              out = handler.eventLocation(msg);
              break;
          case SCAN:
              out = handler.eventScan(msg);
              break;
          case CLICK:
              out = handler.eventClick(msg);
              break;
          case VIEW:
              out = handler.eventView(msg);
              break;
          case TEMPLATESENDJOBFINISH:
              out = handler.eventTemplateJobFinish(msg);
              break;
          default:
              log.infof("New EventType=%s ? fallback to defaultMsg", msg.getMsgType());
              out = handler.defaultMsg(msg);
              break;
          }
          return out;
      }
docs: 根据msg中Event的类型,调用不同的WxHandler方法