最近朋友的微信公眾號準(zhǔn)備做活動,,靠固定的微信公眾平臺模版搞定不了,,于是請我代為開發(fā)微信后臺。鑒于我也是第一次嘗試開發(fā)微信后臺,,所以也踩了不少坑,,此系列博客將會描述微信公眾號各項功能的實現(xiàn)。
先決條件 1.一臺可部署web服務(wù)的服務(wù)器或者云平臺(我采用的是Microsoft Azure) 2.一個可以正常使用的微信公眾賬號 3.Visual Studio
開發(fā)準(zhǔn)備 1.采用ASP.NET Web API網(wǎng)站項目作為微信公眾號后臺服務(wù)
成為微信公眾號開發(fā)者
這一步很簡單,,只要在微信公眾號后臺的開發(fā)者中心同意協(xié)議即可,,同意之后頁面如下:
服務(wù)器配置
登錄微信公眾平臺官網(wǎng)后,在公眾平臺后臺管理頁面 - 開發(fā)者中心頁,,點擊“修改配置”按鈕,,填寫服務(wù)器地址(URL)、Token和EncodingAESKey,,其中URL是開發(fā)者用來接收微信消息和事件的接口URL,。Token可由開發(fā)者可以任意填寫,用作生成簽名(該Token會和接口URL中包含的Token進(jìn)行比對,,從而驗證安全性),。EncodingAESKey由開發(fā)者手動填寫或隨機生成,將用作消息體加解密密鑰,。 同時,,開發(fā)者可選擇消息加解密方式:明文模式、兼容模式和安全模式,。模式的選擇與服務(wù)器配置在提交后都會立即生效,請開發(fā)者謹(jǐn)慎填寫及選擇,。加解密方式的默認(rèn)狀態(tài)為明文模式,,選擇兼容模式和安全模式需要提前配置好相關(guān)加解密代碼。
詳細(xì)內(nèi)容參考官方指南:http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html 這里我給出c#實現(xiàn)的簽名生成代碼:
//注意返回echostr字符串類型微信只接受“application/x-www-form-urlencoded”,直接返回是不被接受的 public HttpResponseMessage Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSource(signature, timestamp, nonce)) { var result = new StringContent(echostr, UTF8Encoding.UTF8, "application/x-www-form-urlencoded"); var response = new HttpResponseMessage { Content = result }; return response; } return new HttpResponseMessage(); } //檢驗是否來自微信的簽名 public bool CheckSource(string signature, string timestamp, string nonce) { var str = string.Empty; var token = "cwtesttoken"; var parameter = new List<string> { token, timestamp, nonce }; parameter.Sort(); var parameterStr = parameter[0] + parameter[1] + parameter[2]; var tempStr = GetSHA1(parameterStr).Replace("-", "").ToLower(); if (tempStr == signature) return true; return false; } //SHA1加密 public string GetSHA1(string input) { var output = string.Empty; var sha1 = new SHA1CryptoServiceProvider(); var inputBytes = UTF8Encoding.UTF8.GetBytes(input); var outputBytes = sha1.ComputeHash(inputBytes); sha1.Clear(); output = BitConverter.ToString(outputBytes); return output; }
這樣在我們填入我們服務(wù)器端API地址后,,就能夠順利搞定服務(wù)器配置,,綁定微信公眾號后臺了。
配置完成
總結(jié)
我們完成了配置微信公眾號開發(fā)的第一步,,后續(xù)將會利用微信的api進(jìn)行更多的操作,,比如自動回復(fù)語音、文章,、圖文等消息,。 |
|