zoukankan      html  css  js  c++  java
  • 微信.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

  • 相关阅读:
    在Eclipse中运行JAVA代码远程操作HBase的示例
    hbase基本概念和hbase shell常用命令用法
    如何使用putty远程连接linux
    如何在Eclipse下安装SVN插件——subclipse
    solr之创建core(搜索核心,包括索引和数据)的方法
    百度地图api基本用法
    四年大学不如选择培训一年?
    树常见的算法操作
    二叉树常见遍历算法
    Java多线程实现生产者消费者延伸问题
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5335773.html
Copyright © 2011-2022 走看看