zoukankan      html  css  js  c++  java
  • 微信公共服务平台开发(.Net 的实现)7-------发送图文消息

    之前我们讲过让微信发送给我们普通的文本信息,下面我们来看看如何发送图文信息,需要注意的是这里说的是,让微信发给我们,而不是我们拍个图片发给微信处理,我们上传图片在以后的章节介绍.下面是发送图文消息的函数,涉及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 直接回复“你好”";
    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;
    }

  • 相关阅读:
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 133 克隆图
  • 原文地址:https://www.cnblogs.com/lyl6796910/p/3661133.html
Copyright © 2011-2022 走看看