asp.net開發微信公眾平台(4)關注事件、使用者記錄、回覆文字訊息

高洛峰
發布: 2017-02-23 14:13:32
原創
2070 人瀏覽過

     上一篇已經把所有訊息封裝且都各自有方法處理了,這篇從使用第一步——關注開始,  關注之後進行訊息記錄,同時回覆文字訊息給用戶,關注方法:DoSub,另外新用戶掃描帶參數的二維碼關注方法:DoCodeNotSub。

     

1、使用者追蹤公眾號回傳文字訊息、使用者記錄:

根據解析的XML反射賦值給予訊息 model, 現在進行使用者判斷:

tb_User mUser =DALWei.InfoEntities<tb_user>(dbHome,u=>u.OpenId==mSub.FromUserName);
            if (mUser != null)
            {
                  //说明此用户以前关注过后来取消了
            }
            else
            {
                 //全新的用户,添加
            }</tb_user>
登入後複製

完整方法代碼如下:

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);
            
            }</tb_user>
登入後複製

已經存在時修改用戶最後次關注時間,不存在時添加新用戶;其中在用戶已經存在的情況下,需要考慮用戶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)關注事件、使用者記錄、回覆文字訊息


#更多asp.net開發微信公眾平台(4)關注事件、用戶記錄、回覆文字訊息相關文章請關注PHP中文網!



#
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!