微信.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)框架 需求:在微信公众号开发时,需要实现自动回复,即被关注回复.收到消息回复.关键词回复 发现问题: ...
随机推荐
- How to Cracked Sublime Text 3 Build 3065 in Ubuntu (Linux)
整理自How to Cracked Sublime Text 3 Build 3065 in Ubuntu (Linux) Sublime Text 3 Build 3065 Release Date ...
- 转一贴,今天实在写累了,也看累了--【Python异步非阻塞IO多路复用Select/Poll/Epoll使用】
下面这篇,原理理解了, 再结合 这一周来的心得体会,整个框架就差不多了... http://www.haiyun.me/archives/1056.html 有许多封装好的异步非阻塞IO多路复用框架, ...
- [JAVA]各种杂七杂八的东西......
BigInteger / BigDecimal / string 一些常用的函数: 加 add减 substract乘 multiply除 divid取余 mod / remainder (remin ...
- [codility]tree_height
http://codility.com/demo/take-sample-test/treeheight 非常非常简单的求树的深度.不忍直视. // you can also use includes ...
- js中replace用法
js中replace的用法 replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则 ...
- Nginx+Keepalived 做负载均衡器
1.安装 keepalived 1 2 3 4 5 6 7 8 9 tar zxvf keepalived-XXXX.tar.gz ./configure --prefix=/usr/local/ ...
- 基于LAMP平台的网站架构(或Web系统架构)
1.网站架构的前提(或者说需求) 我们公司是一电子商务的网站,因为线下家具建材项目的推广需求,从而有了我们公司的这个线上网站,在这里我贴一张公司的网站架构图. 总体来说网站规模不是太大,注册人数在15 ...
- Git submodule实战
http://blog.jqian.net/post/git-submodule.html 使用git管理的项目开发中,如果碰到公共库和基础工具,可以用submodule来管理. 常用操作 例如, 公 ...
- 采用软件nginx实现web服务器集群
nginx:软件负载均衡器 是高并发量http/反向代理服务器.实现windows下IIS的负载均衡 条件:2台服务器 1.cpu:Inter(R) 酷睿 i5 cpu 2.26GHz 内存:2G ...
- 使用PowerDesigner建立数据库模型
转自:http://www.cnblogs.com/tonyepaper/archive/2008/02/12/1067260.html 1. 打开PowerDesigner,点击File ...