1         //事件
2         public string EventHandle(XmlDocument xmldoc)
3         {
4             string responseContent = "";
5             XmlNode Event = xmldoc.SelectSingleNode("/xml/Event");
6             XmlNode EventKey = xmldoc.SelectSingleNode("/xml/EventKey");
7             XmlNode ToUserName = xmldoc.SelectSingleNode("/xml/ToUserName");
8             XmlNode FromUserName = xmldoc.SelectSingleNode("/xml/FromUserName");
9             if (Event!=null)
10             {
11                 //菜单单击事件
12                 if (Event.InnerText.Equals("CLICK"))
13                 {
14                     if (EventKey.InnerText.Equals("click_one"))//click_one
15                     {
16                         responseContent = string.Format(ReplyType.Message_Text,
17                             FromUserName.InnerText,
18                             ToUserName.InnerText,
19                             DateTime.Now.Ticks,
20                             "你点击的是click_one");
21                     }
22                     else if (EventKey.InnerText.Equals("click_two"))//click_two
23                     {
24                         responseContent = string.Format(ReplyType.Message_News_Main,
25                             FromUserName.InnerText,
26                             ToUserName.InnerText,
27                             DateTime.Now.Ticks,
28                             "2",
29                              string.Format(ReplyType.Message_News_Item,"我要寄件","",
30                              "http://www.soso.com/orderPlace.jpg",
31                              "http://www.soso.com/")+
32                              string.Format(ReplyType.Message_News_Item, "订单管理", "",
33                              "http://www.soso.com/orderManage.jpg",
34                              "http://www.soso.com/"));
35                     }
36                     else if (EventKey.InnerText.Equals("click_three"))//click_three
37                     {
38                         responseContent = string.Format(ReplyType.Message_News_Main,
39                             FromUserName.InnerText,
40                             ToUserName.InnerText,
41                             DateTime.Now.Ticks,
42                             "1",
43                              string.Format(ReplyType.Message_News_Item, "标题", "摘要",
44                              "http://www.soso.com/jieshao.jpg",
45                              "http://www.soso.com/"));
46                     }
47                 }
48             }
49             return responseContent;
50         }
51         /// <summary>
52         /// 图文消息主体
53         /// </summary>
54         public static string Message_News_Main
55         {
56             get
57             {
58                 return @"<xml>
59                             <ToUserName><![CDATA[{0}]]></ToUserName>
60                             <FromUserName><![CDATA[{1}]]></FromUserName>
61                             <CreateTime>{2}</CreateTime>
62                             <MsgType><![CDATA[news]]></MsgType>
63                             <ArticleCount>{3}</ArticleCount>
64                             <Articles>
65                             {4}
66                             </Articles>
67                             </xml> ";
68             }
69         }
70         /// <summary>
71         /// 图文消息项
72         /// </summary>
73         public static string Message_News_Item
74         {
75             get
76             {
77                 return @"<item>
78                             <Title><![CDATA[{0}]]></Title>
79                             <Description><![CDATA[{1}]]></Description>
80                             <PicUrl><![CDATA[{2}]]></PicUrl>
81                             <Url><![CDATA[{3}]]></Url>
82                             </item>";
83             }
84         }
  需要注意的是:XmlNode Event = xmldoc.SelectSingleNode("/xml/Event")表示获取的是事件类型,XmlNode EventKey = xmldoc.SelectSingleNode("/xml/EventKey")表示事件标示,是我们创建菜单添加click的key,通过key我们可以判断出是点的哪个菜单。
  还有一点是回复超链接,有时候在服务号会发送一些链接,我们打开直接会链接到相关网址,只需要在回复内容中添加:<a href="http://www.baidu.com">点击进入</a>,可以了。
  示例Demo下载
  下载地址:http://yun.baidu.com/s/1mgI9nde
  后记
  关于微信公众平台当然还有许多其他的东西,本篇只是一些经验之谈,希望可以起到抛砖引玉的作用。有时候我们发现一些新鲜事物,觉得很难,远远的看着,如果你用心的去感受它,其实也这么回事。