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



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

    本文使用的接口库是  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

  • 相关阅读:
    免费第三方API平台整合
    接口使用数据库缓存考虑的不周到之处
    找了两个小时的错误,net.sf.json.JSONException: JSON keys cannot be null.
    jsp动态页面访问报错:HTTP Status 500
    JAVA中json转换为集合(对象)之间的相互转换
    听头条
    使用DataOutputStream输出流的read方法出现读取字节不一致解决办法,本地和测试环境不一致
    ibatis中的xml配置文件
    poj 1325 Machine Schedule 题解
    poj 1469 COURSES 题解
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5335773.html
Copyright © 2020-2023  润新知