自动回复消息-微信公众平台开发4(asp.net)

时间:2022-06-01 17:46:39

接着上一节的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)
        {

}
    }