基本簡(jiǎn)介
微信公眾平臺(tái)是騰訊公司在微信基礎(chǔ)平臺(tái)上新增的功能模塊,通過微信公眾平臺(tái),每一個(gè)人都可以用一個(gè)QQ號(hào)碼,打造自己的一個(gè)微信的公眾號(hào),并在微信平臺(tái)上實(shí)現(xiàn)和特定群體的文字、圖片、語音的全方位溝通、互動(dòng)。
微信公眾平臺(tái)的功能定位
群發(fā)推送:公號(hào)主動(dòng)向用戶推送重要通知或趣味內(nèi)容。
自動(dòng)回復(fù):用戶根據(jù)指定關(guān)鍵字,主動(dòng)向公號(hào)提取常規(guī)消息;
1對(duì)1交流:公號(hào)針對(duì)用戶的特殊疑問,為用戶提供1對(duì)1的對(duì)話解答服務(wù)。
說明
壓縮包中包含三個(gè)文件夾:Senparc.Weixin.MP、Senparc.Weixin.MP.BuildOutPut、Senparc.Weixin.MP.Sample,分別對(duì)應(yīng)Senparc.Weixin.MP.dll源代碼項(xiàng)目、Senparc.Weixin.MP.dll輸出目錄、Web示例,Web示例建議放到公網(wǎng)測(cè)試,讓微信公眾平臺(tái)自動(dòng)發(fā)送
注意:開始開發(fā)之前需要到上面申請(qǐng)一個(gè)公眾賬號(hào),并開啟“關(guān)鍵詞自動(dòng)回復(fù) =>公眾平臺(tái)消息接口”,根據(jù)提示設(shè)置token等信息。
相關(guān)示例
效果測(cè)試賬號(hào)(添加后發(fā)送文本、位置、圖片信息,測(cè)試反饋效果):
Senparc.Weixin.MP所有項(xiàng)目文件如下:
Senparc.Weixin.MP幾個(gè)關(guān)鍵類介紹如下:
Entities/Request*.cs 用于接收微信平臺(tái)自動(dòng)發(fā)送到服務(wù)器的實(shí)體(發(fā)送過來的是XML),包括文本、位置、圖片三類
Entities/Response*.cs 用于反饋給發(fā)送人的信息實(shí)體(最終會(huì)轉(zhuǎn)成XML),包括文本、新聞(圖文)兩類
Helpers/EntityHelper.cs 用于實(shí)體和XML之間的轉(zhuǎn)換(由于其中有許多需要特殊處理的字段和類型,這里不能簡(jiǎn)單用XML序列化)
Helpers/MsgTypeHelper.cs 用于獲取消息類型
CheckSignature.cs 驗(yàn)證請(qǐng)求合法性類
Enums.cs 各種枚舉
RequestMessageFactory.cs 用于自動(dòng)生成不同Request類型的實(shí)體,并作必要的數(shù)據(jù)填充
Senparc.Weixin.MP幾個(gè)關(guān)鍵類及重要方法(按一般使用過程排序)
生成驗(yàn)證字符串:Senparc.Weixin.MP.CheckSignature.GetSignature(string timestamp, string nonce, string token = null),返回根據(jù)微信平臺(tái)提供的數(shù)據(jù),SHA1加密后的驗(yàn)證字符串(注意token必須跟公眾平臺(tái)的設(shè)置一直)
驗(yàn)證請(qǐng)求:Senparc.Weixin.MP.CheckSignature.Check(string signature, string timestamp, string nonce, string token = null),驗(yàn)證請(qǐng)求是否合法
獲取請(qǐng)求實(shí)體:var requestMessage = Senparc.Weixin.MP.RequestMessageFactory.GetRequestEntity(XDocument doc); 根據(jù)不同請(qǐng)求的類型,自動(dòng)生成可用于操作的實(shí)體(doc只需要用XDocument.Parse(xmlString)就能生成),requestMessage.MsgType就是請(qǐng)求枚舉類型。
進(jìn)行判斷及各類操作。
根據(jù)需要,創(chuàng)建響應(yīng)類型的實(shí)體,如:var responseMessage = ResponseMessageBase.CreateFromRequestMessage(requestMessage, ResponseMsgType.Text) as ResponseMessageText; 即可返回文本類型信息。
由于目前微信只接受XML的返回?cái)?shù)據(jù),所以在返回之前還需要做一次轉(zhuǎn)換:XDocument responseDoc = Senparc.Weixin.MP.Helpers.EntityHelper.ConvertEntityToXml(responseMessage); var xmlString =responseDoc.ToString();
至此整個(gè)微信公眾賬號(hào)的自動(dòng)響應(yīng)過程結(jié)束。
您的評(píng)論需要經(jīng)過審核才能顯示
有用
有用
有用