示例#1
0
        public static WXMsg ParseWXMsgFromBodyString(string body)
        {
            WXMsg msg = new WXMsg();
            var   doc = new XmlDocument();

            doc.LoadXml(body);
            var toUserName    = doc.SelectSingleNode("/xml/ToUserName").InnerText;
            var fromUserName  = doc.SelectSingleNode("/xml/FromUserName").InnerText;
            var createTime    = int.Parse(doc.SelectSingleNode("/xml/CreateTime").InnerText);
            var msgTypeString = doc.SelectSingleNode("/xml/MsgType").InnerText;

            msg.ToUserName   = toUserName;
            msg.FromUserName = fromUserName;
            msg.CreateTime   = createTime;
            switch (msgTypeString)
            {
            case "event":
                msg.MsgType  = WXMsgType.Event;
                msg.Event    = doc.SelectSingleNode("/xml/Event").InnerText;
                msg.EventKey = doc.SelectSingleNode("/xml/EventKey").InnerText;
                break;

            case "text":
                msg.MsgType = WXMsgType.Text;
                msg.Content = doc.SelectSingleNode("/xml/Content").InnerText;
                msg.MsgId   = doc.SelectSingleNode("/xml/MsgId").InnerText;
                break;

            default:
                msg.MsgType = WXMsgType.Unknown;
                break;
            }
            return(msg);
        }
示例#2
0
        public static string ConstructWXTextMessage(WXMsg msg, string replyText)
        {
            var    createTime = Math.Round((DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1)).TotalSeconds);
            string xml        = $"<xml><ToUserName><![CDATA[{msg.FromUserName}]]></ToUserName><FromUserName><![CDATA[{msg.ToUserName}]]></FromUserName><CreateTime>{createTime}</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[{replyText}]]></Content></xml>";

            return(xml);
        }
示例#3
0
        public static string ConstructWXNewsMessage(WXMsg msg, WXMultipleNewsMessage newsMessages)
        {
            var itemString = "";

            for (int i = 0; i < newsMessages.ArticleCount; i++)
            {
                itemString += $"<item><Title><![CDATA[{newsMessages.NewsMessages[i].Title}]]></Title> <Description><![CDATA[{newsMessages.NewsMessages[i].Description}]]></Description><PicUrl><![CDATA[{newsMessages.NewsMessages[i].PicUrl}]]></PicUrl><Url><![CDATA[{newsMessages.NewsMessages[i].Url}]]></Url></item>";
            }
            var    createTime = Math.Round((DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1)).TotalSeconds);
            string xml        = $"<xml><ToUserName><![CDATA[{msg.FromUserName}]]></ToUserName><FromUserName><![CDATA[{msg.ToUserName}]]></FromUserName><CreateTime>{createTime }</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>{newsMessages.ArticleCount}</ArticleCount><Articles>{itemString}</Articles></xml>";

            return(xml);
        }