微信.NET 微信开发 自动内容回复 ASP.NET C#代码

来源:互联网 发布:半双工全双工网络跨距 编辑:程序博客网 时间:2024/04/30 03:45

微信开发中,首先遇到的问题就是处理如何接收和响应用户消息 , 本文将向大家介绍一下方法和关键的代码。

本文使用的接口库是  https://github.com/chendong152/Weixin_api_.net 非常感谢 TD的作者


ASP.NET开发的  接收微信消息和响应用户消息代码如下:

文件名 :  v.ashx

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Xml;using Td.Weixin.Public.Common;using Td.Weixin.Public.Message;namespace WeiWeiXin.Net6{    /// <summary>    /// v 的摘要说明    /// </summary>    public class v : IHttpHandler    {        /// <summary>        ///    开发者 验证 模块        /// </summary>        /// <param name="context"></param>        public bool ProcessRequest2(HttpContext context)        {            context.Response.ContentType = "text/plain";            //  context.Response.Write("Hello World");            try            {                string echoStr = context.Request["echoStr"];                 if (!string.IsNullOrEmpty(echoStr))                {                    context.Response.Write(echoStr);                    return true;                }                else                {                    // context.Response.Write("end");                    //   context.Response.End();                }            }            catch (Exception e)            {                //   context.Response.Write("end" + e.Message + e.ToString());                // context.Response.End();            }            return false;        }        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/plain";            //如果 是 验证  则 直接 退出             if (ProcessRequest2(context))                return;            context.Response.ContentType = "text/plain";            var m = ReceiveMessage.ParseFromContext();            if (m == null)                return;            //被关注            if (m.MsgType == MessageType.Event && m.InnerToXmlText().IndexOf("subscribe") >= 0)            {                       //发送AIML请求                var r2 = m.GetTextResponse();                string result = "[微笑]欢迎关注";                  r2.Data = (TextMsgData)result;                r2.Response();                return;            }            //数据解析            XmlDocument xmlDoc = new XmlDocument();            xmlDoc.LoadXml(m.ToXmlText());//"<xml><description><![CDATA[木子屋:http://www.mzwu.com/]]></description></xml>");            //菜单 或者 用户文本输入            if (m.MsgType == MessageType.Text || (m.MsgType == MessageType.Event && m.InnerToXmlText().IndexOf("subscribe") < 0))            {                //读取                string rr = "";                if (m.MsgType == MessageType.Text)                {                    rr = xmlDoc.SelectSingleNode("//Content").FirstChild.InnerText.ToLower().Trim();                }                else                {                    rr = xmlDoc.SelectSingleNode("//EventKey").FirstChild.InnerText.ToLower().Trim();                }                               //发送                 var r2 = m.GetTextResponse();                string result = "欢迎使用,您发送的是:" +rr;//                  r2.Data = (TextMsgData)result;                r2.Response();                return;            }        }        public bool IsReusable        {            get            {                return false;            }        }    }}

这段代码中具有开发者验证的功能,同时也考虑到了 由菜单发送到平台的文本的接收和响应。



最后 广告一下 : 完整的 微微信.NET 可以在这里找到  udoo123.taobao.com

3 0