接着上一节的processRequest 处理函数,代码如下:
/// <summary>
/// 处理微信发来的请求
/// </summary>
/// <param
name="xml"></param>
public void
processRequest(String xml,HttpContext context)
{
try
{
//context.Response.Write("文本消息响应成功,返回源码"+xml);
// xml请求解析
XmlDocument doc = new
XmlDocument();
doc.LoadXml(xml);
XmlElement root =
doc.DocumentElement;
//
发送方帐号(open_id)
string FromUserName =
root.SelectSingleNode("FromUserName").InnerText;
// 公众帐号
string ToUserName =
root.SelectSingleNode("ToUserName").InnerText;
// 消息类型
string msgType =
root.SelectSingleNode("MsgType").InnerText;
switch
(msgType)
{
case "text": //文本消息
//这个注释的是自动回复文本消息
//context.Response.Write("<xml><ToUserName><![CDATA[" +
FromUserName + "]]></ToUserName><FromUserName><![CDATA[" +
ToUserName + "]]></FromUserName><CreateTime>" +
Convert.ToInt64((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0,
0)).TotalSeconds).ToString() +
"</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[你好啊,wo
de keai]]></Content></xml>");
//这个是自动回复图文消息
context.Response.Write("<xml><ToUserName><![CDATA[" +
FromUserName + "]]></ToUserName><FromUserName><![CDATA[" +
ToUserName + "]]></FromUserName><CreateTime>" +
Convert.ToInt64((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0,
0)).TotalSeconds).ToString() +
"</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>2</ArticleCount><Articles><item><Title><![CDATA[标题1]]></Title>
<Description><![CDATA[我是描述,雷锋网接到网友反馈称,微信从今早七时许出现大规模宕机,现象包括无法登录微信、无法访问朋友圈以及微信网页版。我们也收到多家媒体的反馈,微信公众平台同样无法访问..]]></Description><PicUrl><![CDATA[http://hqfeijian.gotoip2.com/weixin/images/shop/test_1_360_200.png]]></PicUrl><Url><![CDATA[http://www.xin0.cn]]></Url></item><item><Title><![CDATA[我是标题2,标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2]]></Title><Description><![CDATA[我是描述,雷锋网接到网友反馈称,微信从今早七时许出现大规模宕机,现象包括无法登录微信、无法访问朋友圈以及微信网页版。我们也收到多家媒体的反馈,微信公众平台同样无法访问..]]></Description><PicUrl><![CDATA[http://hqfeijian.gotoip2.com/weixin/images/shop/test_1_200_200.png]]></PicUrl><Url><![CDATA[http://www.xin0.cn]]></Url></item></Articles></xml>");
break;
case "image":
//图片消息
context.Response.Write("图片消息响应成功");
break;
case "voice":
//语音消息
context.Response.Write("语音消息响应成功");
break;
case
"video"://视频消息
context.Response.Write("视频消息响应成功");
break;
case
"location"://地理位置消息
context.Response.Write("地理位置响应成功");
break;
case "link":
//链接消息
context.Response.Write("链接消息响应成功");
break;
case "event": //事件消息 Event 关注:subscribe
取消关注:unsubscribe
string Event =
root.SelectSingleNode("Event").InnerText;
if (Event == "subscribe")
//关注事件
{
//context.Response.Write("关注成功!");
context.Response.Write("<xml><ToUserName><![CDATA[" +
FromUserName + "]]></ToUserName><FromUserName><![CDATA[" +
ToUserName + "]]></FromUserName><CreateTime>" +
Convert.ToInt64((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0,
0)).TotalSeconds).ToString() +
"</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>2</ArticleCount><Articles><item><Title><![CDATA[标题1]]></Title>
<Description><![CDATA[我是描述,雷锋网接到网友反馈称,微信从今早七时许出现大规模宕机,现象包括无法登录微信、无法访问朋友圈以及微信网页版。我们也收到多家媒体的反馈,微信公众平台同样无法访问..]]></Description><PicUrl><![CDATA[http://hqfeijian.gotoip2.com/weixin/images/shop/test_1_360_200.png]]></PicUrl><Url><![CDATA[http://www.xin0.cn]]></Url></item><item><Title><![CDATA[我是标题2,标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2标题2]]></Title><Description><![CDATA[我是描述,雷锋网接到网友反馈称,微信从今早七时许出现大规模宕机,现象包括无法登录微信、无法访问朋友圈以及微信网页版。我们也收到多家媒体的反馈,微信公众平台同样无法访问..]]></Description><PicUrl><![CDATA[http://hqfeijian.gotoip2.com/weixin/images/shop/test_1_200_200.png]]></PicUrl><Url><![CDATA[http://www.xin0.cn]]></Url></item></Articles></xml>");
}
else if (Event == "unsubscribe")
//取消关注事件
{
context.Response.Write("取消关注成功!");
}
break;
}
}
catch (Exception
e)
{
}
}