[c#]asp.net开发微信公众平台(4)关注事件、用户记录、回复文本消息
上一篇已经把所有消息封装且都各自有方法处理了,这篇从使用第一步——关注开始, 关注之后进行消息记录,同时回复文本消息给用户,关注方法:DoSub,另外新用户扫描带参数的二维码关注方法:DoCodeNotSub。
1、用户关注公众号返回文本消息、用户记录:
根据解析的XML反射赋值给消息model, 现在进行用户判断:
tb_User mUser =DALWei.InfoEntities<tb_User>(dbHome,u=>u.OpenId==mSub.FromUserName);
if (mUser != null)
{
//说明此用户以前关注过后来取消了
}
else
{
//全新的用户,添加
}
完整方法代码如下:
tb_User mUser =DALWei.InfoEntities<tb_User>(dbHome,u=>u.OpenId==mSub.FromUserName);
if (mUser != null)
{ if (mUser.State == )
{
SText mStxt = new SText();
mStxt.ToUserName = mSub.FromUserName;
mStxt.FromUserName = mSub.ToUserName;
mStxt.CreateTime = mSub.CreateTime;
mStxt.Content = "很抱歉,您已经被系统拒绝服务,若有疑问请联系我们";
DALWei.SendText(mStxt);
return;
}
else
{
mUser.SubTime = DateTime.Now;
DALWei.UpdateEntity(dbHome, mUser);
}
}
else
{
mUser = new tb_User();
mUser.InId = ;
mUser.OpenId = mSub.FromUserName;
mUser.GroupId = ;
mUser.NickName = "";
mUser.CreateTime = System.DateTime.Now;
mUser.State = ;
mUser.PreFirst = "";
mUser.SubTime = DateTime.Now;
DALWei.AddEntity(dbHome,mUser); }
已经存在时修改用户最后次关注时间,不存在时添加新用户;其中在用户已经存在的情况下,需要考虑用户state=0的情况,即用户被禁用的, 直接返回文本消息, 提示已经被禁用。
2、回复文本消息
已经封装好的发送文本消息模型SText, 赋值并输出即可:
SText mStxtA = new SText();
mStxtA.ToUserName = mSub.FromUserName;
mStxtA.FromUserName = mSub.ToUserName;
mStxtA.CreateTime = mSub.CreateTime;
mStxtA.Content =ReadXml.Menu();
Often.ResponseToEnd(DALWei.SendText(mStxtA));
其中,ReadXml.Menu()方法是返回默认的一段字符,当做普通文字菜单用( 后面会有自定义菜单)。
文字如下:
public static string Menu()
{
string Content = "";
Content += "欢迎使用/微笑\n\n";
Content += "输入以下序号开始获取最新信息:\n";
Content += "1,企业快报\ue102\n";
Content += "2,行业要览\n";
Content += "3,行情动态\n";
Content += "4,焦点访谈\n";
Content += "5,下游资讯\n";
Content += "6,资讯中心\ue135\n";
Content += "7,采购\ue42f\n";
Content += "8,市场报告--VIP\ue035专属\n\n";
Content += "输入其他关键字可以搜索\ue114\n";
Content += "输入序号@关键字可以在指定类别下搜索,比如 1@马航\n";
Content += "输入?或帮助 可以显示此菜单";
return Content;
}
效果:

(名字都隐去了)
[c#]asp.net开发微信公众平台(4)关注事件、用户记录、回复文本消息的更多相关文章
- [C#]asp.net开发微信公众平台----目录汇总-持续更新
1.[c#]asp.net微信公众平台开发(1)数据库设计 2.[c#]asp.net微信公众平台开发(2)多层架构框架搭建和入口实现 3.[c#]asp.net微信公众平台开发(3)微信消息封装及反 ...
- [c#]asp.net开发微信公众平台(8)微信9大高级接口,自定义菜单
前7篇把最基础的消息接收和回复全做完了, 也把高级接口的入口和分拆处理写好了空方法, 此篇接着介绍微信的9大高级接口, 并着重讲解其中的自定义菜单. 微信9大接口为: 1.语音识别接口 2.客服接 ...
- [c#]asp.net开发微信公众平台(7)前6篇的整体框架demo源码
这里给出的demo是具备整体框架的微信公众平台源码, 所谓demo就是拿过去就可以直接演示使用的东西, 当然不会具备非常详细的具体到业务层面.数据层面的东西, 每个人都可以在此基础上自由发挥, 只 ...
- [c#]asp.net开发微信公众平台(6)阶段总结、服务搭建、接入
经过前5篇,跟着一步步来的话,任何人都能搭建好一个能处理各种微信消息的框架了,总结一下最容易忽略的问题: 1.文本消息中可以使用换行符\n : 2.微信发来的消息中带的那个长整型的时间,我们完全 ...
- [c#]asp.net开发微信公众平台(5)微信图文消息
上篇已经成功响应了关注事件,也实现了文本消息的发送,这篇开始图文消息处理, 微信中最常用的消息类型就是图文消息了,因为它图文并茂,最能表达信息. 图文消息在微信中的接口定义如下: <xml> ...
- asp.net开发微信公众平台----目录汇总-持续更新
1.[c#]asp.net微信公众平台开发(1)数据库设计 2.[c#]asp.net微信公众平台开发(2)多层架构框架搭建和入口实现 3.[c#]asp.net微信公众平台开发(3)微信消息封装及反 ...
- [c#]asp.net开发微信公众平台(1)数据库设计
开发微信公众平台之前,先去微信官方了解下大概的情况 这里:http://mp.weixin.qq.com/wiki/index.php :看了之后心里大致有数了,开始设计数据库,尽可能的考虑,未考虑到 ...
- [c#]asp.net开发微信公众平台(3)微信消息封装及反射赋值
上一篇已经搭建好整体框架,实现了入口的验证, 验证通过后就交给LookMsgType方法处理,LookMsgType方法主要是对微信发来的不同的消息进行分解,不同的类型交给业务逻辑层不同的方法处理 ...
- Delphi 开发微信公众平台 (二)- 用户管理
一.用户标签管理 开发者可以使用用户标签管理的相关接口,实现对公众号的标签进行创建.查询.修改.删除等操作,也可以对用户进行打标签.取消标签等操作. 1.创建标签 /// <summary> ...
随机推荐
- javascript之闭包深入理解(二)
在上一节中,详细理解了作用域链和垃圾回收机制,似乎这两点跟闭包关系不大,但是仔细想一想就会发现,其实不然.这一节将通过上一部分的说明详细理解闭包.请看代码: function createCompar ...
- DEDE常见的错误(转)
1:dedecms文章录入的时候,如何控制文章重复. 在dede/article_add.php里面,加入该程序就OK了 if($cfg_check_title == 'Y'){ ...
- 关于PHP加速eAccelerator、Xcache、APC和Zend Optimizer
以前只关注过Zend Optimizer,因为高胖子的书就是这样教的,但是遇到奇葩公司的面试题提问你知道多少个php加速器/缓存,我一下子楞了,因为我所知道的php5.2.x只用过Zend Optim ...
- Python实现类似switch...case功能
最近在使用Python单元测试框架构思自动化测试,在不段的重构与修改中,发现了大量的if...else之类的语法,有没有什么好的方式使Python具有C/C#/JAVA等的switch功能呢? 在不断 ...
- 两段小PYTHON,作啥用的,行内人才懂~~~:(
哎,作也不是,不作也不是.... 下次有更新文件时,直接刷新一次了. #coding: UTF-8 import sys reload(sys) sys.setdefaultencoding( &qu ...
- C++调用DLL有两种方法——静态调用和动态调用
C++调用DLL有两种方法——静态调用和动态调用 标签: dllc++winapinullc 2011-09-09 09:49 11609人阅读 评论(0) 收藏 举报 分类: cpp(30) [ ...
- hadoop深入研究:(十八)——Avro schema兼容
转载请写明来源地址:http://blog.csdn.net/lastsweetop/article/details/9900129 所有源码在github上,https://github.com/l ...
- COJ 0024 N皇后问题
N皇后问题 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 在N*N的方格棋盘放置N个皇,使得它们不相互攻击(即任意2个 ...
- C++ Primer笔记(一):字符串、向量和数组
3.1 命名空间 using namespace::name; using namespace::std using std::cin -- 头文件不应该包含using 3.2 类型string ge ...
- 黑马程序员_JavaIO流(一)
IO(Input Output)流 概述: IO流(数据流)用来处理设备之间的数据传输. Java对数据的操作是通过流的方式. Java用于操作流的对象都在IO包中. 流按操作数据分为两种:字节流与字 ...