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