Esempio n. 1
0
        public override IResponseMessageBase OnEventScanRequest(RequestMessageEventScan requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(requestMessage);

            responseMessage.Content = "扫码事件:" + requestMessage.Event.ToString() + ";EventKey:" + requestMessage.EventKey + ";Ticket" + requestMessage.Ticket;
            return(responseMessage);
        }
Esempio n. 2
0
 public abstract IResponseMessageBase OnEventScanRequest(RequestMessageEventScan requestMessage);
Esempio n. 3
0
        /// <summary>
        /// 获取XDocument转换后的IRequestMessageBase实例。
        /// </summary>
        /// <returns></returns>
        public static IRequestMessageBase GetRequestEntity(XDocument doc)
        {
            RequestMessageBase val            = null;
            RequestMsgType     requestMsgType = default(RequestMsgType);
            Event eventType = default(Event);

            try
            {
                requestMsgType = MsgTypeHelper.GetRequestMsgType(doc);
                switch (requestMsgType)
                {
                case RequestMsgType.text:
                    val = new RequestMessageText();
                    break;

                case RequestMsgType.location:
                    val = new RequestMessageLocation();
                    break;

                case RequestMsgType.image:
                    val = new RequestMessageImage();
                    break;

                case RequestMsgType.voice:
                    val = new RequestMessageVoice();
                    break;

                case RequestMsgType.video:
                    val = new RequestMessageVideo();
                    break;

                case RequestMsgType.link:
                    val = new RequestMessageLink();
                    break;

                case RequestMsgType.shortvideo:
                    val = new RequestMessageShortVideo();
                    break;

                case RequestMsgType.@event:
                    eventType = EventHelper.GetEventType(doc.Root.Element("Event").Value);

                    switch (eventType)
                    {
                    case Event.CLICK:
                        val = new RequestMessageEventClick();
                        break;

                    case Event.LOCATION:
                        val = new RequestMessageEventLocation();
                        break;

                    case Event.subscribe:
                        val = new RequestMessageEventSubscribe();
                        break;

                    case Event.scan:
                        val = new RequestMessageEventScan();
                        break;

                    case Event.unsubscribe:
                        val = new RequestMessageEventUnsubscribe();
                        break;

                    case Event.VIEW:
                        val = new RequestMessageEventView();
                        break;
                    }
                    break;
                }
                if (val == null)
                {
                    throw new Exception();
                }
                val.FillEntityWithXml <RequestMessageBase>(doc);
                return(val);
            }
            catch (Exception ex)
            {
                throw new Exception($"RequestMessage转换出错!可能是MsgType不存在!,requestMsgType:{requestMsgType},Event:{eventType}");
            }
        }