asp.net开发微信公众平台(4)关注事件、用户记录、回复文本消息

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

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 == 0)                {                    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 = 0;                mUser.OpenId = mSub.FromUserName;                mUser.GroupId = 0;                mUser.NickName = "";                mUser.CreateTime = System.DateTime.Now;                mUser.State = 1;                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;        }
登录后复制

效果:

更多asp.net开发微信公众平台(4)关注事件、用户记录、回复文本消息相关文章请关注PHP中文网!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。

作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:小程序中数据拷贝的问题解析
下一篇:已是最新文章

发表评论

关闭广告
关闭广告