public void MustSerializable_ResponseTextMessage() { string excepted = @"<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1490872329</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[你好]]></Content> </xml>"; var o = new ResponseMessageText { ToUserName = "******", FromUserName = "******", CreateTime = WeixinTimestampHelper.ToLocalTime(1490872329), Content = "你好" }; var result = XmlConvert.SerializeObject(o); var deserializedExcepted = XmlConvert.DeserializeObject <ResponseMessageText>(excepted); var reserializedExcepted = XmlConvert.SerializeObject(deserializedExcepted); Assert.Equal(reserializedExcepted, result); }
public void LocationMessageReceivedEventArgs() { string s = @"<xml> <ToUserName><![CDATA[gh_712b448adf85]]></ToUserName> <FromUserName><![CDATA[oI3UkuL9uZxTOuj--HHMSMTlO3ks]]></FromUserName> <CreateTime>1490872329</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Location_X>23.134521</Location_X> <Location_Y>113.358803</Location_Y> <Scale>20</Scale> <Label><![CDATA[位置信息]]></Label> <MsgId>6403247895999455936</MsgId> </xml>"; var result = XmlConvert.DeserializeObject <LocationMessageReceivedEventArgs>(s); Assert.Equal("gh_712b448adf85", result.ToUserName); Assert.Equal("oI3UkuL9uZxTOuj--HHMSMTlO3ks", result.FromUserName); Assert.Equal(1490872329, WeixinTimestampHelper.FromLocalTime(result.CreateTime)); Assert.Equal(ReceivedMsgType.text, result.MsgType); Assert.Equal((decimal)23.134521, result.Latitude); Assert.Equal((decimal)113.358803, result.Longitude); Assert.Equal(20, result.Scale); Assert.Equal("位置信息", result.Label); Assert.Equal(6403247895999455936, result.MsgId); }
public void MustSerializable_ResponseNewsMessage() { string excepted = @"<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1490872329</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>2</ArticleCount> <Articles> <item> <Title><![CDATA[title1]]></Title> <Description><![CDATA[description1]]></Description> <PicUrl><![CDATA[picurl]]></PicUrl> <Url><![CDATA[url]]></Url> </item> <item> <Title><![CDATA[title]]></Title> <Description><![CDATA[description]]></Description> <PicUrl><![CDATA[picurl]]></PicUrl> <Url><![CDATA[url]]></Url> </item> </Articles> </xml>"; var o = new ResponseMessageNews { ToUserName = "******", FromUserName = "******", CreateTime = WeixinTimestampHelper.ToLocalTime(1490872329), }; o.Articles.Add(new Article { Title = "title1", Description = "description1", PicUrl = "picurl", Url = "url" }); o.Articles.Add(new Article { Title = "title", Description = "description", PicUrl = "picurl", Url = "url" }); var result = XmlConvert.SerializeObject(o); var deserializedExcepted = XmlConvert.DeserializeObject <ResponseMessageNews>(excepted); var reserializedExcepted = XmlConvert.SerializeObject(deserializedExcepted); Assert.Equal(reserializedExcepted, result); }
public void SubscribeEventReceivedEventArgs() { string s = @"<xml><ToUserName><![CDATA[gh_712b448adf85]]></ToUserName> <FromUserName><![CDATA[oI3UkuL9uZxTOuj--HHMSMTlO3ks]]></FromUserName> <CreateTime>1490872329</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[subscribe]]></Event> </xml>"; var result = XmlConvert.DeserializeObject <SubscribeEventReceivedEventArgs>(s); Assert.Equal("gh_712b448adf85", result.ToUserName); Assert.Equal("oI3UkuL9uZxTOuj--HHMSMTlO3ks", result.FromUserName); Assert.Equal(1490872329, WeixinTimestampHelper.FromLocalTime(result.CreateTime)); Assert.Equal(ReceivedMsgType.@event, result.MsgType); Assert.Equal(ReceivedEventType.subscribe, result.Event); }
public void ReceivedEventArgs() { string s = @"<xml> <ToUserName><![CDATA[gh_712b448adf85]]></ToUserName> <FromUserName><![CDATA[oI3UkuL9uZxTOuj--HHMSMTlO3ks]]></FromUserName> <CreateTime>1490872329</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[中文字符]]></Content> <MsgId>6403247895999455936</MsgId> </xml>"; var result = XmlConvert.DeserializeObject <ReceivedEventArgs>(s); Assert.Equal("gh_712b448adf85", result.ToUserName); Assert.Equal("oI3UkuL9uZxTOuj--HHMSMTlO3ks", result.FromUserName); Assert.Equal(1490872329, WeixinTimestampHelper.FromLocalTime(result.CreateTime)); Assert.Equal(ReceivedMsgType.text, result.MsgType); }
public void ImageMessageReceivedEventArgs() { string s = @"<xml> <ToUserName><![CDATA[gh_712b448adf85]]></ToUserName> <FromUserName><![CDATA[oI3UkuL9uZxTOuj--HHMSMTlO3ks]]></FromUserName> <CreateTime>1490872329</CreateTime> <MsgType><![CDATA[text]]></MsgType> <PicUrl><![CDATA[this is a url]]></PicUrl> <MediaId><![CDATA[media_id]]></MediaId> <MsgId>6403247895999455936</MsgId> </xml>"; var result = XmlConvert.DeserializeObject <ImageMessageReceivedEventArgs>(s); Assert.Equal("gh_712b448adf85", result.ToUserName); Assert.Equal("oI3UkuL9uZxTOuj--HHMSMTlO3ks", result.FromUserName); Assert.Equal(1490872329, WeixinTimestampHelper.FromLocalTime(result.CreateTime)); Assert.Equal(ReceivedMsgType.text, result.MsgType); Assert.Equal("this is a url", result.PicUrl); Assert.Equal("media_id", result.MediaId); Assert.Equal(6403247895999455936, result.MsgId); }
public void QrscanEventReceivedEventArgs() { string s = @"<xml><ToUserName><![CDATA[gh_712b448adf85]]></ToUserName> <FromUserName><![CDATA[oI3UkuL9uZxTOuj--HHMSMTlO3ks]]></FromUserName> <CreateTime>1490872329</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[SCAN]]></Event> <EventKey><![CDATA[123123]]></EventKey> <Ticket><![CDATA[gQE28TwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyUkhQZWgzelI4QVUxMDAwMGcwN3kAAgR6ittYAwQAAAAA]]></Ticket> </xml>"; var result = XmlConvert.DeserializeObject <QrscanEventReceivedEventArgs>(s); Assert.Equal("gh_712b448adf85", result.ToUserName); Assert.Equal("oI3UkuL9uZxTOuj--HHMSMTlO3ks", result.FromUserName); Assert.Equal(1490872329, WeixinTimestampHelper.FromLocalTime(result.CreateTime)); Assert.Equal(ReceivedMsgType.@event, result.MsgType); Assert.Equal(ReceivedEventType.SCAN, result.Event); Assert.Equal("123123", result.EventKey); Assert.Equal("123123", result.Scene); Assert.Equal("gQE28TwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyUkhQZWgzelI4QVUxMDAwMGcwN3kAAgR6ittYAwQAAAAA", result.Ticket); }
public void LocationEventReceivedEventArgs() { string s = @"<xml><ToUserName><![CDATA[gh_712b448adf85]]></ToUserName> <FromUserName><![CDATA[oI3UkuL9uZxTOuj--HHMSMTlO3ks]]></FromUserName> <CreateTime>1490872329</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[LOCATION]]></Event> <Latitude>23.137466</Latitude> <Longitude>113.352425</Longitude> <Precision>119.385040</Precision> </xml>"; var result = XmlConvert.DeserializeObject <LocationEventReceivedEventArgs>(s); Assert.Equal("gh_712b448adf85", result.ToUserName); Assert.Equal("oI3UkuL9uZxTOuj--HHMSMTlO3ks", result.FromUserName); Assert.Equal(1490872329, WeixinTimestampHelper.FromLocalTime(result.CreateTime)); Assert.Equal(ReceivedMsgType.@event, result.MsgType); Assert.Equal(ReceivedEventType.LOCATION, result.Event); Assert.Equal((decimal)23.137466, result.Latitude); Assert.Equal((decimal)113.352425, result.Longitude); Assert.Equal((decimal)119.385040, result.Precision); }
public void LinkMessageReceivedEventArgs() { string s = @"<xml> <ToUserName><![CDATA[gh_712b448adf85]]></ToUserName> <FromUserName><![CDATA[oI3UkuL9uZxTOuj--HHMSMTlO3ks]]></FromUserName> <CreateTime>1490872329</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Title><![CDATA[我的官网]]></Title> <Description><![CDATA[公众平台官网链接]]></Description> <Url><![CDATA[http://url.com/q?something]]></Url> <MsgId>6403247895999455936</MsgId> </xml>"; var result = XmlConvert.DeserializeObject <LinkMessageReceivedEventArgs>(s); Assert.Equal("gh_712b448adf85", result.ToUserName); Assert.Equal("oI3UkuL9uZxTOuj--HHMSMTlO3ks", result.FromUserName); Assert.Equal(1490872329, WeixinTimestampHelper.FromLocalTime(result.CreateTime)); Assert.Equal(ReceivedMsgType.text, result.MsgType); Assert.Equal("我的官网", result.Title); Assert.Equal("公众平台官网链接", result.Description); Assert.Equal("http://url.com/q?something", result.Url); Assert.Equal(6403247895999455936, result.MsgId); }
public void VoiceMessageReceivedEventArgs_WithRecognition() { string s = @"<xml> <ToUserName><![CDATA[gh_712b448adf85]]></ToUserName> <FromUserName><![CDATA[oI3UkuL9uZxTOuj--HHMSMTlO3ks]]></FromUserName> <CreateTime>1490872329</CreateTime> <MsgType><![CDATA[text]]></MsgType> <MediaId><![CDATA[media_id]]></MediaId> <Format><![CDATA[Format]]></Format> <Recognition><![CDATA[腾讯微信团队]]></Recognition> <MsgId>6403247895999455936</MsgId> </xml>"; var result = XmlConvert.DeserializeObject <VoiceMessageReceivedEventArgs>(s); Assert.Equal("gh_712b448adf85", result.ToUserName); Assert.Equal("oI3UkuL9uZxTOuj--HHMSMTlO3ks", result.FromUserName); Assert.Equal(1490872329, WeixinTimestampHelper.FromLocalTime(result.CreateTime)); Assert.Equal(ReceivedMsgType.text, result.MsgType); Assert.Equal("media_id", result.MediaId); Assert.Equal("Format", result.Format); Assert.Equal("腾讯微信团队", result.Recognition); Assert.Equal(6403247895999455936, result.MsgId); }
public async Task <bool> OnTextMessageReceived(object sender, TextMessageReceivedEventArgs e) { _logger.LogDebug(XmlConvert.SerializeObject(e)); var msg = new ReceivedTextMessage(); msg.Content = e.Content; msg.From = e.FromUserName; msg.To = e.ToUserName; msg.ReceivedTime = new DateTimeOffset(WeixinTimestampHelper.ToUtcTime(e.CreateTimeStr)); _db.ReceivedTextMessages.Add(msg); var saveResult = await _db.SaveChangesAsync(); if (saveResult > 0) { _logger.LogDebug($"已将微信文本消息存入数据库。Result:{saveResult}, From:{msg.From}, To:{msg.To}, Time:{msg.ReceivedTime}, Content:{msg.Content}"); } _logger.LogDebug($"微信文本消息在数据库中共{_db.ReceivedTextMessages.ToList().Count()}条记录。"); var messageHandler = sender as WeixinMessageHandler; var responseMessage = new ResponseMessageText(); { var result = new StringBuilder(); result.AppendFormat("您刚才发送了文本信息:{0}", e.Content); responseMessage.FromUserName = e.ToUserName; responseMessage.ToUserName = e.FromUserName; responseMessage.Content = result.ToString(); } await messageHandler.WriteAsync(responseMessage); _logger.LogDebug(XmlConvert.SerializeObject(responseMessage)); return(true); }