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