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

这篇文章主要为大家详细解析了微信公众平台开发之发送图文消息.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;
   }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。