? ? ?上一篇已經(jīng)把所有消息封裝且都各自有方法處理了,這篇從使用第一步——關(guān)注開始, ?關(guān)注之后進(jìn)行消息記錄,同時(shí)回復(fù)文本消息給用戶,關(guān)注方法:DoSub,另外新用戶掃描帶參數(shù)的二維碼關(guān)注方法:DoCodeNotSub。 ? ?
? ? ?
1、用戶關(guān)注公眾號(hào)返回文本消息、用戶記錄:
根據(jù)解析的XML反射賦值給消息model, ?現(xiàn)在進(jìn)行用戶判斷:
tb_User?mUser?=DALWei.InfoEntities<tb_User>(dbHome,u=>u.OpenId==mSub.FromUserName); ????????????if?(mUser?!=?null) ????????????{ ??????????????????//說明此用戶以前關(guān)注過后來取消了 ????????????} ????????????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?=?"很抱歉,您已經(jīng)被系統(tǒng)拒絕服務(wù),若有疑問請(qǐng)聯(lián)系我們"; ????????????????????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); ???????????? ????????????}
已經(jīng)存在時(shí)修改用戶最后次關(guān)注時(shí)間,不存在時(shí)添加新用戶;其中在用戶已經(jīng)存在的情況下,需要考慮用戶state=0的情況,即用戶被禁用的, ?直接返回文本消息, 提示已經(jīng)被禁用。
?
?
?
2、回復(fù)文本消息
已經(jīng)封裝好的發(fā)送文本消息模型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()方法是返回默認(rèn)的一段字符,當(dāng)做普通文字菜單用(?后面會(huì)有自定義菜單)。
文字如下:
public?static?string??Menu() ????????{ ????????????string?Content?=?""; ????????????Content?+=?"歡迎使用/微笑\n\n"; ????????????Content?+=?"輸入以下序號(hào)開始獲取最新信息:\n"; ????????????Content?+=?"1,企業(yè)快報(bào)\ue102\n"; ????????????Content?+=?"2,行業(yè)要覽\n"; ????????????Content?+=?"3,行情動(dòng)態(tài)\n"; ????????????Content?+=?"4,焦點(diǎn)訪談\n"; ????????????Content?+=?"5,下游資訊\n"; ????????????Content?+=?"6,資訊中心\ue135\n"; ????????????Content?+=?"7,采購\ue42f\n"; ????????????Content?+=?"8,市場(chǎng)報(bào)告--VIP\ue035專屬\n\n"; ????????????Content?+=?"輸入其他關(guān)鍵字可以搜索\ue114\n"; ????????????Content?+=?"輸入序號(hào)@關(guān)鍵字可以在指定類別下搜索,比如?1@馬航\n"; ????????????Content?+=?"輸入?或幫助?可以顯示此菜單"; ????????????return?Content; ????????}
效果:
更多asp.net開發(fā)微信公眾平臺(tái)(4)關(guān)注事件、用戶記錄、回復(fù)文本消息相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)