Exemplo n.º 1
0
        private Task ParseMessageAsync(NotifyMessageContext context)
        {
            if (string.IsNullOrEmpty(context.Body))
            {
                return(Task.CompletedTask);
            }

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(context.Body);
            XmlElement rootElement = doc.DocumentElement;
            var        msgType     = rootElement.SelectSingleNode("MsgType").InnerText;

            if (msgType != MsgTypes.Event)
            {
                var commonContext = new CommonMessageContext()
                {
                    Body        = context.Body,
                    HttpContext = context.HttpContext,
                    AppConfig   = context.AppConfig,
                    MsgType     = msgType
                };

                if (MsgTypeMaps.MsgMaps.TryGetValue(msgType, out var messageType))
                {
                    commonContext.Message = WeChatNotifyMessage.FromXml(context.Body, messageType);
                }

                this.notifier.OnCommonMessage(commonContext);
            }
            else
            {
                var evt          = rootElement.SelectSingleNode("Event").InnerText;
                var eventContext = new EventMessageContext()
                {
                    Body        = context.Body,
                    HttpContext = context.HttpContext,
                    AppConfig   = context.AppConfig,
                    Event       = evt
                };

                if (MsgTypeMaps.EventMaps.TryGetValue(msgType, out var messageType))
                {
                    eventContext.Message = WeChatNotifyMessage.FromXml(context.Body, messageType);
                }
                this.notifier.OnEventMessage(eventContext);
            }

            return(Task.CompletedTask);
        }
Exemplo n.º 2
0
        public Task OnCommonMessage(CommonMessageContext context)
        {
            var doc = new ReplyImageMessage()
            {
                CreateTime   = "123",
                FromUserName = "******",
                MsgType      = "text",
                ToUserName   = "******",
                Image        = new Image()
                {
                    MediaId = "12313"
                }
            }.CreateXml();

            context.HttpContext.Response.WriteXmlAsync(doc);
            return(Task.CompletedTask);
        }
Exemplo n.º 3
0
 public Task OnCommonMessage(CommonMessageContext context) => Task.CompletedTask;