[c#]asp.net開發微信公眾平台(4)關注事件、用戶記錄、回復文本消息


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

     

1、用戶關注公眾號返回文本消息、用戶記錄:

根據解析的XML反射賦值給消息model,  現在進行用戶判斷:

1            tb_User mUser =DALWei.InfoEntities<tb_User>(dbHome,u=>u.OpenId==mSub.FromUserName);
2             if (mUser != null)
3             {
4                   //說明此用戶以前關注過后來取消了
5             }
6             else
7             {
8                  //全新的用戶,添加
9

完整方法代碼如下:

 1             tb_User mUser =DALWei.InfoEntities<tb_User>(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                 else
16                 {
17                     mUser.SubTime = DateTime.Now;
18                     DALWei.UpdateEntity(dbHome, mUser);
19                 }
20             }
21             else
22             {
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         }

 

效果:

 

 

(名字都隱去了)

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM