博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[c#]asp.net开发微信公众平台(4)关注事件、用户记录、回复文本消息
阅读量:4562 次
发布时间:2019-06-08

本文共 2986 字,大约阅读时间需要 9 分钟。

     上一篇已经把所有消息封装且都各自有方法处理了,这篇从使用第一步——关注开始,  关注之后进行消息记录,同时回复文本消息给用户,关注方法:DoSub,另外新用户扫描带参数的二维码关注方法:DoCodeNotSub。    

     

1、用户关注公众号返回文本消息、用户记录:

根据解析的XML反射赋值给消息model,  现在进行用户判断:

1            tb_User mUser =DALWei.InfoEntities
(dbHome,u=>u.OpenId==mSub.FromUserName);2 if (mUser != null)3 {4 //说明此用户以前关注过后来取消了5 }6 else7 {8 //全新的用户,添加9 }

完整方法代码如下:

1             tb_User mUser =DALWei.InfoEntities
(dbHome,u=>u.OpenId==mSub.FromUserName); 2 if (mUser != null) 3 { 4 5 if (mUser.State == 0) 6 { 7 SText mStxt = new SText(); 8 mStxt.ToUserName = mSub.FromUserName; 9 mStxt.FromUserName = mSub.ToUserName;10 mStxt.CreateTime = mSub.CreateTime;11 mStxt.Content = "很抱歉,您已经被系统拒绝服务,若有疑问请联系我们";12 DALWei.SendText(mStxt);13 return;14 }15 else16 {17 mUser.SubTime = DateTime.Now;18 DALWei.UpdateEntity(dbHome, mUser);19 }20 }21 else22 {23 mUser = new tb_User();24 mUser.InId = 0;25 mUser.OpenId = mSub.FromUserName;26 mUser.GroupId = 0;27 mUser.NickName = "";28 mUser.CreateTime = System.DateTime.Now;29 mUser.State = 1;30 mUser.PreFirst = "";31 mUser.SubTime = DateTime.Now;32 DALWei.AddEntity(dbHome,mUser);33 34 }
View Code

已经存在时修改用户最后次关注时间,不存在时添加新用户;其中在用户已经存在的情况下,需要考虑用户state=0的情况,即用户被禁用的,  直接返回文本消息, 提示已经被禁用。

 

 

 

2、回复文本消息

已经封装好的发送文本消息模型SText,  赋值并输出即可:

1             SText mStxtA = new SText();2             mStxtA.ToUserName = mSub.FromUserName;3             mStxtA.FromUserName = mSub.ToUserName;4             mStxtA.CreateTime = mSub.CreateTime;5             mStxtA.Content =ReadXml.Menu();6             Often.ResponseToEnd(DALWei.SendText(mStxtA));

其中,ReadXml.Menu()方法是返回默认的一段字符,当做普通文字菜单用( 后面会有自定义菜单)。

文字如下:

1 public static string  Menu() 2         { 3             string Content = ""; 4             Content += "欢迎使用/微笑\n\n"; 5             Content += "输入以下序号开始获取最新信息:\n"; 6             Content += "1,企业快报\ue102\n"; 7             Content += "2,行业要览\n"; 8             Content += "3,行情动态\n"; 9             Content += "4,焦点访谈\n";10             Content += "5,下游资讯\n";11             Content += "6,资讯中心\ue135\n";12             Content += "7,采购\ue42f\n";13             Content += "8,市场报告--VIP\ue035专属\n\n";14             Content += "输入其他关键字可以搜索\ue114\n";15             Content += "输入序号@关键字可以在指定类别下搜索,比如 1@马航\n";16             Content += "输入?或帮助 可以显示此菜单";17             return Content;18         }

 

效果:

 

 

(名字都隐去了)

 

 

 

 

转载于:https://www.cnblogs.com/mochen/p/3664926.html

你可能感兴趣的文章
Paint Chain HDU - 3980(sg)
查看>>
Chales常用操作
查看>>
C++ 运算符重载<<
查看>>
windows镜像
查看>>
Flask 模板语法
查看>>
ZOJ FatMouse' Trade 贪心
查看>>
音乐播放器
查看>>
SQL COOKBOOK (Ch.1-10)
查看>>
创建数组
查看>>
dict使用
查看>>
[转] 移动平台Html5的viewport使用经验
查看>>
ASP.NET MVC的帮助类HtmlHelper和UrlHelper
查看>>
《Python数据科学手册》第五章机器学习的笔记
查看>>
ubuntu16.04 配置爬虫环境
查看>>
Centos7,PHP7安装swoole
查看>>
02_ListActive中响应事件 并LogCat输出
查看>>
doubleclick adx note
查看>>
Celery框架
查看>>
[c#]asp.net开发微信公众平台(4)关注事件、用户记录、回复文本消息
查看>>
[转载,感觉写的非常详细]DUBBO配置方式详解
查看>>