微信公眾號第三方開發之七提交全網釋出【個人收藏】
【原文:http://blog.csdn.net/eadio/article/details/51546687,如有版權問題請告知我進行刪除】
在開始這個章節前,我要特別說明下,“公眾號訊息與事件接收URL ”微信有說明尾數一定要帶字串/$APPID$/,而這個固定字串,到時微信post訊息過來的時候會自動替換成授權公眾號。
一開始我也是不明白為什麼要這樣處理,我不是需要動態建立無數個方法,後來經大神提醒可以做成偽靜態來處理。才恍然醒悟啊!!!
比如微信上填寫: http://www.weixin.com/eventmsg/$APPID$/
我用的是mvc框架,那麼我只要在路由裡頭重寫下規則
routes.MapRoute(null,"eventmsg/{appid}", new { controller = "Event", action ="DoEvent" });
那麼我只要建立一個event的控制器檔案裡頭新增如下操作方法:
//公眾號訊息與事件接收URL 當普通使用者關注授權給第三方公眾號觸發的url地址
public ContentResult DoEvent(string appid = "0"){
////do something
////使用者關注自動回覆處理....
}
以上都做好後,我提交了全網釋出,然後微信反饋回來的訊息如下:
然後我點選了下面的連結跳轉到這個頁面上,才發現微信在提交全網釋出的時候還需要一個流程----“全網釋出接入檢測說明”。
接入全網釋出地址:
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318611&token=05f36979d4762c1277fa9578578c50ad85befaa5&lang=zh_CN
這裡還需要做到3步驗證,文件內描述如下:
當然如果你建立微信第三方的時候沒有勾選
是不需要檢測2、3步驟的,由於我預設都勾選的,所以上述提及的驗證都需要在測試一遍才行。
接下來我們監控事件接收url地址,發現我點擊發布的時候微信post過來三段xml文字訊息
那麼,現在我們只需要針對post過來的這三段測試訊息體進行對應的回覆。
經過一番測試發現步驟1、2回覆xml訊息體的還是都要經過加密成xml訊息體在進行返回給微信伺服器的哦,最後只需要根據獲取到的content文字和訊息型別進行xml封裝回復。步驟如下:
1、模擬粉絲觸發專用測試公眾號的事件
2、模擬粉絲髮送文字訊息給專用測試公眾號
3、模擬粉絲髮送文字訊息給專用測試公眾號[返回Api文字訊息]
最後一步驗證比較麻煩,
首先,需要根據微信post過來的query_code和微信api獲取測試公眾號的access_token
然後,根據微信API"傳送客服訊息api回覆文字訊息給粉絲"介面傳送寫好的訊息體。
微信api:客服介面-發訊息【記住,這裡不需要在加密啦】
http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
程式碼如下:
最後上傳伺服器再次提交測試,成功!