《微信开发日志》之被动响应多图文消息

被动响应多图文消息官方文档:

news消息

<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</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> 
参数 说明
ToUserName 员工UserID
FromUserName 企业号CorpID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:news
ArticleCount 图文条数,默认第一条为大图。图文数不能超过10,否则将会无响应
Title 图文消息标题
Description 图文消息描述
PicUrl 图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200
Url 点击图文消息跳转链接


 

我们在项目中新增一个News类

image

代码如下:

    /// <summary>

    /// 图文消息

    /// </summary>

    public class ResponseNews : ResponseBase

    {



        /// <summary>

        /// 图文条数,默认第一条为大图。图文数不能超过10,否则将会无响应

        /// </summary>

        public int ArticleCount

        {

            get

            {

                return ArticleCollection.Count;

            }

        }

        public string Articles { get; set; }



        /// <summary>

        /// 图文内容,集合

        /// </summary>

        public List<ArticleItem> ArticleCollection { get; set; }



        /// <summary>

        /// 构造函数,自动生成消息创建时间(整型),参考:APITools.GetCreateTime()

        /// </summary>

        /// <param name="toUser">员工UserID </param>

        /// <param name="fromUser">企业号CorpID </param>

        /// <param name="content">文本消息内容  </param>

        public ResponseNews(string toUser, string fromUser)

            : base(RequestMessageType.news)

        {

            this.ToUserName = toUser;

            this.FromUserName = fromUser;

            this.CreateTime = CorpTools.GetCreateTime();



        }



        /// <summary>

        /// 获得XML文本

        /// </summary>

        /// <returns></returns>

        public override string GenerateXML()

        {

            /*

            const string xmlformat = @" <xml>

               <ToUserName><![CDATA[toUser]]></ToUserName>

               <FromUserName><![CDATA[fromUser]]></FromUserName>

               <CreateTime>12345678</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>";

            */

            //获得文章列表xml

            string xmlArticles = "";

            foreach (ArticleItem item in ArticleCollection)

            {

                xmlArticles += item.GenerateXML();

            }



            string XML = " <xml>"

                            + String.Format("<ToUserName><![CDATA[{0}]]></ToUserName>", ToUserName)

                            + String.Format("<FromUserName><![CDATA[{0}]]></FromUserName>", FromUserName)

                            + String.Format("<CreateTime>{0}</CreateTime>", CreateTime)

                            + String.Format("<MsgType><![CDATA[{0}]]></MsgType>", MsgType)

                            + String.Format("<ArticleCount>{0}</ArticleCount>", ArticleCollection.Count)

                            + String.Format("<Articles>{0}</Articles>", xmlArticles)

                        + "</xml>";

            return String.Format(xmlformat, ToUserName, FromUserName, CreateTime, MsgType, "");

        }

    }



    /// <summary>

    /// 图文消息,单图文类

    /// </summary>

    public class ArticleItem

    {

        /// <summary>

        /// 文章标题

        /// </summary>

        public string Title { get; set; }

        /// <summary>

        /// 文章描述

        /// </summary>

        public string Description { get; set; }

        /// <summary>

        /// 图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200

        /// </summary>

        public string PicUrl { get; set; }

        /// <summary>

        /// 点击图文消息跳转链接

        /// </summary>

        public string Url { get; set; }



        public string GenerateXML()

        {

            string xml = "<item>"

                            + String.Format("<Title><![CDATA[{0}]]></Title>", Title)

                            + String.Format("<Description><![CDATA[{0}]]></Description>", Description)

                            + String.Format("<PicUrl><![CDATA[{0}]]></PicUrl>", PicUrl)

                            + String.Format("<Url><![CDATA[{0}]]></Url>", Url)

                        + "</item>";

            return xml;

        }

        public string GenerateJSON()

        {

            throw new NotImplementedException();

        }

    }

查询返回

你可能感兴趣的:(微信开发)