コード例 #1
0
            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);
            }
コード例 #2
0
ファイル: ReplayPassiveMessage.cs プロジェクト: netnr/blog
        /// <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());
        }
コード例 #3
0
        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);
        }
コード例 #4
0
            /// <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);
            }
コード例 #5
0
 public static WeChatNews ToEntity(this WeChatNewsModel model, WeChatNews destination, IObjectMapper ObjectMapper)
 {
     return(model.MapTo(destination, ObjectMapper));
 }
コード例 #6
0
 public static WeChatNewsModel ToModel(this WeChatNews entity, IObjectMapper ObjectMapper)
 {
     return(entity.MapTo <WeChatNews, WeChatNewsModel>(ObjectMapper));
 }