public string Execute(WeChatMessage message) { var myDomain = "https://www.netnr.com";//请更改成你的域名 string myPic = myDomain + "/favicon.ico"; var mb = message.Body; var openId = mb.GetText("FromUserName"); var myUserName = mb.GetText("ToUserName"); var news = new WeChatNews { title = "NET牛人(Gist,Run,Doc,Draw)", description = "NET牛人,技术分享博客、代码片段、在线运行代码、接口文档、绘制 等等", picurl = myPic, url = myDomain }; //默认首页 string result = ReplayPassiveMessage.RepayNews(openId, myUserName, news); switch (message.Type) { //文字消息 case WeChatMessageType.Text: { string Content = mb.GetText("Content"); string repmsg = string.Empty; if ("sj".Split(' ').ToList().Contains(Content)) { repmsg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } else if ("xh".Split(' ').ToList().Contains(Content)) { repmsg = "笑话\nhttps://ss.netnr.com/qiushibaike"; } else if ("note".Split(' ').ToList().Contains(Content)) { repmsg = "记事\n" + myDomain + "/tool/note"; } else if ("cp lottery".Split(' ').ToList().Contains(Content)) { repmsg = "彩票\nhttps://ss.netnr.com/lottery"; } if (!string.IsNullOrWhiteSpace(repmsg)) { result = ReplayPassiveMessage.RepayText(openId, myUserName, repmsg); } } break; } return(result); }
/// <summary> /// 回复单图文消息 /// </summary> /// <param name="toUserName"></param> /// <param name="fromUserName"></param> /// <param name="news"></param> /// <returns></returns> public static string RepayNews(string toUserName, string fromUserName, WeChatNews news) { var builder = new StringBuilder(); builder.Append(string.Format("<xml><ToUserName><![CDATA[{0}]]></ToUserName>" + "<FromUserName><![CDATA[{1}]]></FromUserName>" + "<CreateTime>{2}</CreateTime>" + "<MsgType><![CDATA[news]]></MsgType>" + "<ArticleCount>{3}</ArticleCount><Articles>", toUserName, fromUserName, Util.Timestamp(), 1)); builder.Append(string.Format("<item><Title><![CDATA[{0}]]></Title>" + "<Description><![CDATA[{1}]]></Description>" + "<PicUrl><![CDATA[{2}]]></PicUrl>" + "<Url><![CDATA[{3}]]></Url>" + "</item>", news.title, news.description, news.picurl, news.url )); builder.Append("</Articles></xml>"); return(builder.ToString()); }
public void SendNewsMessage(WeChatNews news) { LoadMessageToken(); if (string.IsNullOrEmpty(AccessToken)) { return; } foreach (WeChatArticle art in news.news.articles) { this.LogWriter.Write("WeChat Send Url:" + art.url); if (string.IsNullOrEmpty(art.url)) { break; } art.url = WebUtility.HtmlEncode(art.url); string flag = news.flag; if (art.url.IndexOf("state=") > -1) { flag = art.url.Split(new string[] { "state=" }, StringSplitOptions.None)[1]; if (flag.IndexOf("&") > -1) { flag = flag.Substring(0, flag.IndexOf("&")); } } art.url = string.Format(URL_OAuth, CorpID, art.url, flag); } if (news.agentid == -1) { news.agentid = this.AgentID; } string res = JsonConvert.SerializeObject(news); res = res.Replace("\\u0026", "&"); // 处理URL res = PostWebRequest(string.Format(URL_NewsMessage, AccessToken), res, WeChatEncoding); this.LogWriter.Write("WeChat result:" + res + ", touser:" + news.touser); }
/// <summary> /// 处理微信消息 /// </summary> /// <param name="message"></param> /// <returns>已经打包成xml的用于回复用户的消息包</returns> public string Execute(WeChatMessage message) { var myDomain = GlobalTo.GetValue("Common:Domain"); string myPic = $"{myDomain}/favicon.svg"; var mb = message.Body; var openId = mb.GetText("FromUserName"); var myUserName = mb.GetText("ToUserName"); var news = new WeChatNews { title = GlobalTo.GetValue("Common:ChineseName") + "(Gist,Run,Doc,Draw)", description = GlobalTo.GetValue("Common:ChineseName") + ",技术分享博客、代码片段、在线运行代码、接口文档、绘制 等等", picurl = myPic, url = myDomain }; //默认首页 string result = ReplayPassiveMessage.RepayNews(openId, myUserName, news); switch (message.Type) { //文字消息 case WeChatMessageType.Text: { string Content = mb.GetText("Content"); string repmsg = string.Empty; if ("sj".Split(' ').ToList().Contains(Content)) { repmsg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } else if ("xh".Split(' ').ToList().Contains(Content)) { repmsg = "笑话\nhttps://ss.netnr.com/qiushibaike"; } else if ("note".Split(' ').ToList().Contains(Content)) { repmsg = $"记事\n{myDomain}/tool/note"; } else if ("gist".Split(' ').ToList().Contains(Content)) { repmsg = $"代码片段\n{myDomain}/gist/discover"; } else if ("doc".Split(' ').ToList().Contains(Content)) { repmsg = $"文档\n{myDomain}/doc/discover"; } else if ("cp lottery".Split(' ').ToList().Contains(Content)) { repmsg = "彩票\nhttps://ss.netnr.com/lottery"; } if (!string.IsNullOrWhiteSpace(repmsg)) { result = ReplayPassiveMessage.RepayText(openId, myUserName, repmsg); } } break; } return(result); }
public static WeChatNews ToEntity(this WeChatNewsModel model, WeChatNews destination, IObjectMapper ObjectMapper) { return(model.MapTo(destination, ObjectMapper)); }
public static WeChatNewsModel ToModel(this WeChatNews entity, IObjectMapper ObjectMapper) { return(entity.MapTo <WeChatNews, WeChatNewsModel>(ObjectMapper)); }