public override IResponseMessageBase OnShortVideoRequest(RequestMessageShortVideo requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(requestMessage);

            responseMessage.Content = "你发送了小视频:MediaId=" + requestMessage.MediaId;
            return(responseMessage);
        }
        public override IResponseMessageBase OnVoiceRequest(RequestMessageVoice requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(requestMessage);

            responseMessage.Content = "你发送了语音:MediaId=" + requestMessage.MediaId + ";Recognition:" + requestMessage.Recognition;
            return(responseMessage);
        }
        public override IResponseMessageBase OnEventUnsubscribeRequest(RequestMessageEventUnsubscribe requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(requestMessage);

            responseMessage.Content = "取消关注事件:" + requestMessage.Event.ToString() + ";EventKey:" + requestMessage.EventKey;
            return(responseMessage);
        }
        public override IResponseMessageBase OnLocationRequest(RequestMessageLocation requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(requestMessage);

            responseMessage.Content = "你发送了位置,Label:" + requestMessage.Label + ";Location_X:" + requestMessage.Location_X + ";Location_Y:" + requestMessage.Location_Y;
            return(responseMessage);
        }
        public override IResponseMessageBase OnEventViewRequest(RequestMessageEventView requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(requestMessage);

            responseMessage.Content = "点击菜单跳转链接时的事件:" + requestMessage.Event.ToString() + ";EventKey:" + requestMessage.EventKey;
            return(responseMessage);
        }
        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);
        }
        public override IResponseMessageBase OnEventLocationRequest(RequestMessageEventLocation requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(requestMessage);

            responseMessage.Content = "你上报地理位置事件:" + requestMessage.Event.ToString() + ";EventKey:" + requestMessage.EventKey + "位置信息Latitude:" + requestMessage.Latitude + ";Longitude:" + requestMessage.Longitude + ";Precision:" + requestMessage.Precision;
            return(responseMessage);
        }
        public override IResponseMessageBase OnEventClickRequest(RequestMessageEventClick requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(requestMessage);

            responseMessage.Content = "你触发自定义菜单事件:" + requestMessage.Event.ToString() + ";EventKey:" + requestMessage.EventKey;
            return(responseMessage);
        }
        public override IResponseMessageBase DefaultResponseMessage(IRequestMessageBase requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(requestMessage);

            responseMessage.Content = "对不起,暂时不能处理你的消息,请联系客服!";
            return(responseMessage);
        }
示例#10
0
        public override IResponseMessageBase OnVideoRequest(RequestMessageVideo requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageMusic>(requestMessage);

            responseMessage.Music            = new Music();
            responseMessage.Music.HQMusicUrl = "http://h5ds-cdn.oss-cn-beijing.aliyuncs.com/upload/dfeb140f-4446-4a05-846b-7f71382e9367.mp3";
            responseMessage.Music.MusicUrl   = "http://h5ds-cdn.oss-cn-beijing.aliyuncs.com/upload/dfeb140f-4446-4a05-846b-7f71382e9367.mp3";
            return(responseMessage);
        }
示例#11
0
        public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage)
        {
            TemplateService templateService = new TemplateService();
            var             result          = templateService.templateSend(requestMessage.FromUserName);
            var             responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(requestMessage);

            responseMessage.Content = "对不起,暂时不能处理你的消息,请联系客服!";
            return(responseMessage);
        }
示例#12
0
        public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
        {
            var responseMessage = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageNews>(requestMessage);

            responseMessage.Articles = new List <Article>();
            var artcle = new Article();

            artcle.Description = "你发送了图片消息";
            artcle.PicUrl      = "http://h5ds-cdn.oss-cn-beijing.aliyuncs.com/upload/53a1bad4-c27b-4e9b-8432-c85d10f2880b.png";
            artcle.Title       = "植物";
            artcle.Url         = "www.baidu.com";
            responseMessage.Articles.Add(artcle);
            return(responseMessage);
        }
示例#13
0
        public string HandleErrorRequest(SignModel signModel, string requestXml, string error)
        {
            this.SignModel  = signModel;
            this.RequestXml = requestXml;

            var val = new RequestMessageBase();

            val.FillEntityWithXml <RequestMessageBase>(XDocument.Parse(requestXml));
            this.RequestMessage = val;

            var responseMessageText = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(this.RequestMessage);

            responseMessageText.Content = error;

            this.ResponseMessage = responseMessageText;
            var response = ResponseMessageFactory.ConvertEntityToXmlStr(this.ResponseMessage);

            this.EncryptMsg(ref response);
            return(response);
        }
示例#14
0
        public override string HandleRequest()
        {
            string response = string.Empty;

            if (this.exception != null)
            {
                var responseMessageText = ResponseMessageFactory.CreateFromRequestMessage <ResponseMessageText>(this.RequestMessage);
                responseMessageText.Content = this.exception.Message;

                this.ResponseMessage = responseMessageText;
                response             = ResponseMessageFactory.ConvertEntityToXmlStr(this.ResponseMessage);
                EncryptMsg(ref response);
                return(response);
            }
            var requestMsgType = this.RequestMessage.MsgType;

            switch (requestMsgType)
            {
            case RequestMsgType.text:
                this.ResponseMessage = OnTextRequest((RequestMessageText)this.RequestMessage);
                break;

            case RequestMsgType.voice:
                this.ResponseMessage = OnVoiceRequest((RequestMessageVoice)this.RequestMessage);
                break;

            case RequestMsgType.video:
                this.ResponseMessage = OnVideoRequest((RequestMessageVideo)this.RequestMessage);
                break;

            case RequestMsgType.shortvideo:
                this.ResponseMessage = OnShortVideoRequest((RequestMessageShortVideo)this.RequestMessage);
                break;

            case RequestMsgType.location:
                this.ResponseMessage = OnLocationRequest((RequestMessageLocation)this.RequestMessage);
                break;

            case RequestMsgType.link:
                this.ResponseMessage = OnLinkRequest((RequestMessageLink)this.RequestMessage);
                break;

            case RequestMsgType.image:
                this.ResponseMessage = OnImageRequest((RequestMessageImage)this.RequestMessage);
                break;

            case RequestMsgType.@event:
                var eventBase = this.RequestMessage as RequestMessageEventBase;
                switch (eventBase.Event)
                {
                case Event.CLICK:
                    this.ResponseMessage = OnEventClickRequest((RequestMessageEventClick)this.RequestMessage);
                    break;

                case Event.LOCATION:
                    this.ResponseMessage = OnEventLocationRequest((RequestMessageEventLocation)this.RequestMessage);
                    break;

                case Event.scan:
                    this.ResponseMessage = OnEventScanRequest((RequestMessageEventScan)this.RequestMessage);
                    break;

                case Event.subscribe:
                    this.ResponseMessage = OnEventSubscribeRequest((RequestMessageEventSubscribe)this.RequestMessage);
                    break;

                case Event.unsubscribe:
                    this.ResponseMessage = OnEventUnsubscribeRequest((RequestMessageEventUnsubscribe)this.RequestMessage);
                    break;

                case Event.VIEW:
                    this.ResponseMessage = OnEventViewRequest((RequestMessageEventView)this.RequestMessage);
                    break;
                }
                break;
            }
            response = ResponseMessageFactory.ConvertEntityToXmlStr(this.ResponseMessage);
            EncryptMsg(ref response);
            return(response);
        }
示例#15
0
 /// <summary>
 /// ResponseMessageBase.CreateFromRequestMessage&lt;T&gt;(requestMessage)的扩展方法
 /// </summary>
 /// <typeparam name="T">需要生成的ResponseMessage类型</typeparam>
 /// <param name="requestMessage">IRequestMessageBase接口下的接收信息类型</param>
 /// <returns></returns>
 public static T CreateResponseMessage <T>(this IRequestMessageBase requestMessage) where T : class, IResponseMessageBase
 {
     return(ResponseMessageFactory.CreateFromRequestMessage <T>(requestMessage));
 }