zoukankan      html  css  js  c++  java
  • 《微信开发日志》之被动响应多图文消息

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

    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();
            }
        }

    查询返回

    慎于行,敏于思!GGGGGG
  • 相关阅读:
    分布式事务解决方案1--使用Atomikos分布式事务(事务强一致方案)
    SringBoot集成Sharding-Jdbc 实践
    Sharding-Jdbc简介
    Mycat+haproxy中使用keepalived保障haproxy的高可用
    Angular CLI
    背压(Backpressure)机制
    Function.identity()
    解决Error: ENOENT: no such file or directory, scandir 安装node-sass报错
    Reactor flatMap
    Reactor map
  • 原文地址:https://www.cnblogs.com/GarsonZhang/p/4065669.html
Copyright © 2011-2022 走看看