微信公众平台开发之发送图文消息.Net代码解析

 更新时间:2016年06月29日 12:15:19   作者:hemeng  
这篇文章主要为大家详细解析了微信公众平台开发之发送图文消息.Net代码,感兴趣的小伙伴们可以参考一下

之前我们讲过让微信发送给我们普通的文本信息,下面我们来看看如何发送图文信息,需要注意的是这里说的是,让微信发给我们,而不是我们拍个图片发给微信处理,我们上传图片在以后的章节介绍.下面是发送图文消息的函数,涉及title(标题),description(摘要),picurl(图片),链接(url)几个关键的参数: 

protected string sendPicTextMessage(Msg _mode,string title,string description,string picurl,string url)
  {
    
    string res = string.Format(@"<xml>
    <ToUserName><![CDATA[{0}]]></ToUserName>
    <FromUserName><![CDATA[{1}]]></FromUserName>
    <CreateTime>{2}</CreateTime>
    <MsgType><![CDATA[news]]></MsgType>
    <ArticleCount>1</ArticleCount>
    <Articles>
     <item>
     <Title><![CDATA[{3}]]></Title> 
     <Description><![CDATA[{4}]]></Description>
     <PicUrl><![CDATA[{5}]]></PicUrl>
     <Url><![CDATA[{6}]]></Url>
     </item>
     </Articles>
     </xml> ",
      _mode.FromUserName, _mode.ToUserName, DateTime.Now,title, description, picurl, url);

    return res;

   }

直接在调用函数即可: 

protected void Page_Load(object sender, EventArgs e)
   {
    
     MyMenu();
     wxmessage wx = GetWxMessage();
     string res = "";

     if (!string.IsNullOrEmpty(wx.EventName) && wx.EventName.Trim() == "subscribe")
     {
       string content = "";
       content = "/:rose欢迎北京永杰友信科技有限公司/:rose\n直接回复“你好”";
       res = sendTextMessage(wx, content);
     }
     else if (!string.IsNullOrEmpty(wx.EventName) && wx.EventName.Trim() == "CLICK")
     {
       if(wx.EventKey=="Hello")
         res = sendTextMessage(wx, "你好,欢迎使用北京永杰友信科技有限公司公共微信平台!");
       if(wx.EventKey=="P1")
         res = sendTextMessage(wx, "你好,点击了产品1");
       if(wx.EventKey=="P2")
         res = sendTextMessage(wx, "你好,点击了产品2");
     }
     else
     {
       if (wx.MsgType == "text" && wx.Content == "你好")
       {
         res = sendTextMessage(wx, "你好,欢迎使用北京永杰友信科技有限公司公共微信平台!");
       }
       if (wx.MsgType == "text" && wx.Content == "图文")
       {
         res = sendPicTextMessage(wx,"这里是一个标题","这里是摘要","http://mp.weixin.qq.com/wiki/skins/common/images/weixin_wiki_logo.png","http://www.4ugood.net");
       }
       else if (wx.MsgType == "voice")
       {
         res = sendTextMessage(wx, wx.Recognition);
       }
       else
       {
         res = sendTextMessage(wx, "你好,未能识别消息!");
       }
     }

     Response.Write(res);
   }



   private wxmessage GetWxMessage()
   {
     wxmessage wx = new wxmessage();
     StreamReader str = new StreamReader(Request.InputStream, System.Text.Encoding.UTF8);
     XmlDocument xml = new XmlDocument();
     xml.Load(str);
     wx.ToUserName = xml.SelectSingleNode("xml").SelectSingleNode("ToUserName").InnerText;
     wx.FromUserName = xml.SelectSingleNode("xml").SelectSingleNode("FromUserName").InnerText;
     wx.MsgType = xml.SelectSingleNode("xml").SelectSingleNode("MsgType").InnerText;
     if (wx.MsgType.Trim() == "text")
     {
       wx.Content = xml.SelectSingleNode("xml").SelectSingleNode("Content").InnerText;
     }
     if (wx.MsgType.Trim() == "event")
     {
       wx.EventName = xml.SelectSingleNode("xml").SelectSingleNode("Event").InnerText;
       wx.EventKey = xml.SelectSingleNode("xml").SelectSingleNode("EventKey").InnerText;
     }
     if (wx.MsgType.Trim() == "voice")
     {
       wx.Recognition = xml.SelectSingleNode("xml").SelectSingleNode("Recognition").InnerText;
     }
     
     return wx;
   }


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • ASP.NET连接MySql数据库的2个方法及示例

    ASP.NET连接MySql数据库的2个方法及示例

    这篇文章主要介绍了ASP.NET连接MySql数据库的2个方法及示例,使用的是MySQL官方组件和ODBC.NET,需要的朋友可以参考下
    2014-03-03
  • 浅谈ASP.NET中多层架构

    浅谈ASP.NET中多层架构

    Asp.net的多层架构主要是为了解决数据层,逻辑层,表示层等之间的关系。我的做法是这样的:首先建立一个DataCore的基类。基类里面封装了一些低层的数据库的基本操作,比如说数据库联接,调用存储过程等等。
    2015-06-06
  • ASP.NET Core利用Jaeger实现分布式追踪详解

    ASP.NET Core利用Jaeger实现分布式追踪详解

    这篇文章主要给大家介绍了关于ASP.NET Core利用Jaeger实现分布式追踪的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • .NET Core 3.0之创建基于Consul的Configuration扩展组件

    .NET Core 3.0之创建基于Consul的Configuration扩展组件

    在本文里小编给大家分享了关于.NET Core 3.0之创建基于Consul的Configuration扩展组件相关知识点,需要的朋友们学习下。
    2019-05-05
  • .NET Core如何获取操作系统中的各种信息

    .NET Core如何获取操作系统中的各种信息

    .net core是最近讨论频率很高的话题,下面这篇文章主要给大家介绍了关于利用.NET Core如何获取操作系统中各种信息的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧
    2018-05-05
  • 如何为asp.net core添加protobuf支持详解

    如何为asp.net core添加protobuf支持详解

    这篇文章主要给大家介绍了关于如何为asp.net core添加protobuf支持的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-02-02
  • asp.net+sqlserver实现的简单高效的权限设计示例

    asp.net+sqlserver实现的简单高效的权限设计示例

    大部分系统都有权限系统。一般来说,它能管控人员对某个否页面的访问;对某些字段、控件可见或者不可见。对gridview中的数据是否可删除、可添加、可新增等等。
    2010-04-04
  • ASP.NET Gridview与checkbox全选、全不选实现代码

    ASP.NET Gridview与checkbox全选、全不选实现代码

    ASP.NET Gridview checkbox全选与全不选实现代码,其实原理就是利用js来实现的,但需要简单的设置下回传。
    2010-04-04
  • Asp.net 弹出对话框基类(输出alet警告框)

    Asp.net 弹出对话框基类(输出alet警告框)

    asp.net输出alert警告框
    2008-11-11
  • .net C#生成缩略图实现思路分解

    .net C#生成缩略图实现思路分解

    生成缩略图的方式:HW指定高宽缩放(可能变形);W指定宽,高按比例 H指定高,宽按比例 Cut指定高宽裁减(不变形),具体实现如下,感兴趣的朋友可以参考下
    2013-05-05

最新评论