微信.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
微信.NET 微信开发 自己主动内容回复 ASP.NET C#代码的更多相关文章
- Java微信公众平台开发(八)--多媒体消息回复之音乐
我们上一篇写了关注出发图片的回复.想着在发送一次音乐,最后基于回复消息分类情况下,实现一个简单的只能话回复.先附一张大致效果图. 下面我们进入代码阶段. (一)修改消息转发器MsgDispatcher ...
- Java微信公众平台开发(八)--多媒体消息回复
转自:http://www.cuiyongzhi.com/post/46.html 之前我们在做消息回复的时候我们对回复的消息简单做了分类,前面也有讲述如何回复[普通消息类型消息],这里将讲述多媒体消 ...
- Java微信公众平台开发(七)--多媒体消息回复之图片回复
之前我们在做消息回复的时候我们对回复的消息简单做了分类,前面也有讲述如何回复[普通消息类型消息],这里将讲述多媒体消息的回复方法,[多媒体消息]包含回复图片消息/回复语音消息/回复视频消息/回复音乐消 ...
- 微信公众号开发C#系列-7、消息管理-接收事件推送
1.概述 在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息.其中,某些事件推送在发生后,是允许 ...
- 微信公众平台开发教程--方培工作室,PHP语言版本
准备工作 微信公众平台的注册 介绍如何注册一个微信公众账号. 入门教程 微信公众平台开发入门教程 内容:1.申请SAE作为服务器; 2.启用开发模式; 3.微信公众平台PHP SDK; 4.接收发送消 ...
- 微信公众号开发之网页中及时获取当前用户Openid及注意事项
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 (四)微信公众号开发之网页授权获取用户基本信息 (五)微信公众号开发之网页中及 ...
- 微信公众号开发及时获取当前用户Openid及注意事项
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 (四)微信公众号开发之网页授权获取用户基本信息 (五)微信公众号开发之网页中及 ...
- 微信小程序开发简易计算器改进版
微信小程序开发计算器有多种方法,但是大部分代码比较复杂.不容易理解.本案例进行了改进,主要是组件bindtap属性绑定的自定义函数clickBtn(),采用了switch语句,使得代码结构更加清晰,学 ...
- 微信公众号开发被动回复用户消息,回复内容Content使用了"\n"换行符还是没有换行
使用语言和框架:本人后端开发使用的Python的DRF(Django REST framework)框架 需求:在微信公众号开发时,需要实现自动回复,即被关注回复.收到消息回复.关键词回复 发现问题: ...
随机推荐
- 关于 ASP.NET MVC 4 如果管理用户
很久没上来写博客,因为自己没写博客的日子里去学了一下OBJECTIVE-C 和 ASP.NET MVC.最近在学ASP.NET MVC 4,有个问题一直在困扰着我,就是怎样管理用SIMPLE MEMB ...
- SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-002-Controller的requestMapping、model
一.RequestMapping 1.可以写在方法上或类上,且值可以是数组 package spittr.web; import static org.springframework.web.bind ...
- ServletInvocableHandlerMethod:167 - Error resolving argument
at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(R ...
- Android-AttributeSet详解
public interface AttributeSet { /** * Returns the number of attributes available in the set. * * @re ...
- bzoj1267 3784
双倍经验题像这种方案太多不能全部求出来但求前k大一般有这样一个思路将所有方案无重复不漏的分为若干类,每个类的元素满足单调性,然后我们用堆维护就行了!对于这道题,可以想到用树的分治来处理路径,当处理根为 ...
- BZOJ_1778_[Usaco2010_Hol]_Dotp_驱逐猪猡_(期望动态规划+高斯消元+矩阵)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1778 炸弹从1出发,有\(\frac{P}{Q}\)的概率爆炸,如果不爆炸,等概率移动到连通的 ...
- UpdatePanel 无刷新弹出窗口
UpdatePanel下解决提示框不弹出的方法 用户体验上既想页面不刷新,也希望同时能够看到操作的效果(弹出提示框)! ①不刷新,我们可以使用UpdatePanel ②弹出消息框,这个有很多的方式:我 ...
- 获得设备型号(含iPhone6 , iPhone 6+)
//获得设备型号 + (NSString *)getCurrentDeviceModel:(UIViewController *)controller { int mib[2]; size_t len ...
- 用css控制cellspacing、cellpadding
用css控制cellspacing.cellpadding 发表于 2006 年 12 月 24 日 由 Silbo 在table中控制单元格之间的间距要用到cellspacing.cellpaddi ...
- C# 操作 Word 修改word的高级属性中的自定义属性
为 Microsoft Word 创建自动化客户端 启动 Visual Studio .NET. 在文件菜单上,单击新建,然后单击项目.从 Visual C# 项目类型中选择 Windows 应用程序 ...