微信公眾平台開發-01-接入篇
在微信用戶達到4億用戶的時候,我相信很多開發者已經加入了微信開發這個那么有客戶市場的競爭中去了,我相信已經有很多的公眾號服務了。例如天氣預報,聊天機器人,等等,已經很多很多的服務賬號了,很多公眾賬號已經由團隊開發經營了,想對於個人興趣的開發看似已經不能擠身於這個領域了。而作為開發者,我們更應該從不同的角度去看待這一資源吧。
在接着網易和電信合作推出了 易信,再接着阿里巴巴推出的 來往,大家可以知道基於這種模式的平台,大集團們都紛紛加入了競爭,我們可想,在未來這一塊的發展了。我相信會有越來越多的企業會推出自己的公眾微信號,大家可以發揮想象這一塊的前景。
相信已經有一部分開發者已經紛紛申請了自己的開發測試公眾號了,再或者會有一部分熟悉.net的初級開發者想加入這個領域,但是可能開始的時候是無從下手,我也是剛剛接觸微信公眾股平台開發,相信我剛經歷過得經驗更能幫助想加入這個開發領域的初級開發者們了。
在我們注冊申請了公眾賬號並且通過驗證之后(我相信那些注冊小伙伴們只要跟着步驟走是沒有什么問題的了),然后我們需要選擇高級功能里面的開發者模式,在微信的接入指南里也很詳細的教導我們一步步的去接入。
第一步:申請消息接口
OK,URL地址就是你服務器的地址,也就是微信向你服務器請求的地址,不是用戶直接請求的。Token就是你服務器里填驗證時的Token,這個可以亂填,只要你服務器用的Token和你填的一樣就好了。蛋疼的微信,不知為啥只能讓我們填80端口,不知道這樣的蛋疼要求對他們有什么好處,反正對一些開發者來說是沒啥好處的。簡單的說整個流程就是
1、微信服務器接收了用戶發過來的信息。
2、微信服務器把信息封裝成XML文檔傳遞給你的服務器(也就是傳給你填寫的URL地址,或者說你的頁面)
3、經過你服務器處理以后,把要反饋的信息封裝成微信固定XML格式返回個微信服務器。
4、然后微信把信息發送給用戶。
整個公眾號開發服務就是這樣子的鳥。
第二步:驗證URL有效性
填寫完URL和TOken點擊提交就是要驗證我們服務器的地址是否正確,是否有響應,當然首先要驗證服務器是否與開發者是同一個人,所以就設定了Token這個屬性了,微信服務器講發送GET請求到填寫的URL上,GET請求攜帶四個參數,OK,這個我就直接貼出代碼好了

private string Token = ""; public void Auth() { string echoStr=System.Web.HttpContext.Current.Request.QueryString["echoStr"]; if (CheckSignature())//驗證微信簽名通過 { if (!string.IsNullOrEmpty(echoStr)) { System.Web.HttpContext.Current.Response.Write(echoStr); System.Web.HttpContext.Current.Response.End(); } } } //驗證微信簽名 private bool CheckSignature() { //加密/校驗流程: //1. 將token、timestamp、nonce三個參數進行字典序排序 //2. 將三個參數字符串拼接成一個字符串進行sha1加密 //3. 開發者獲得加密后的字符串可與signature對比,標識該請求來源於微信 string signature=System.Web.HttpContext.Current.Request.QueryString["signature"]; string timestamp=System.Web.HttpContext.Current.Request.QueryString["timestamp"]; string nonce=System.Web.HttpContext.Current.Request.QueryString["nonce"]; string[] ArrTmp = {Token,timestamp,nonce }; Array.Sort(ArrTmp);//字典排序 string tmpStr = string.Join("", ArrTmp); tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "sha1"); tmpStr = tmpStr.ToLower(); if (tmpStr == signature.ToLower()) { return true; } else { return false; } }
上面的Token就是填你自己的哦,不要留空白了哦。
假如我們的URL地址是http://cnblogs.com/zknu/weixin.aspx ,好的,我們在weixin.aspx的page_load里調用Auth這個方法就好了。
這里告訴大家一個秘密,大家看一下截圖:大家有沒發現,他要我原樣返回echostr參數內容,也就是說,其實我驗不驗證請求是否來自微信服務器,我們只需要接收他echostr參數內容,然后照樣返回就可以了。也就是說,在weixin.aspx的page_load里
寫上這樣的代碼:

string echoStr=System.Web.HttpContext.Current.Request.QueryString["echoStr"]; System.Web.HttpContext.Current.Response.Write(echoStr); System.Web.HttpContext.Current.Response.End();
這樣就可以通過驗證了,然后你就會成為開發者啦,簡單吧,哈哈。我也是才剛剛加入微信公眾平台的開發中,希望大家能幫到有需要的人,也希望大神們多多指教哈。
附上我的微信公眾號,希望大家關注一下,有什么可以給我留言哦!