C#微信開發(fā)(服務(wù)器配置)
小編對(duì)微信開發(fā)頗感興趣,查閱了網(wǎng)上相關(guān)文章進(jìn)行整理,方便大家一起學(xué)習(xí)。
1、注冊帳號(hào)--填寫服務(wù)器配置
在https://mp.weixin.qq.com/ 微信公眾平臺(tái)上注冊帳號(hào);
服務(wù)號(hào)是公司申請(qǐng)的微信公共賬號(hào),訂閱號(hào)是個(gè)人申請(qǐng)的,個(gè)人權(quán)限比較少;
登錄微信公眾平臺(tái)官網(wǎng)后,在公眾平臺(tái)后臺(tái)管理頁面 - 開發(fā)者中心頁,點(diǎn)擊“修改配置”按鈕,填寫服務(wù)器地址(URL)、Token和EncodingAESKey,其中URL是開發(fā)者用來接收微信消息和事件 的接口URL。Token可由開發(fā)者可以任意填寫,用作生成簽名(該Token會(huì)和接口URL中包含的Token進(jìn)行比對(duì),從而驗(yàn)證安全性)。 EncodingAESKey由開發(fā)者手動(dòng)填寫或隨機(jī)生成,將用作消息體加解密密鑰。
同時(shí),開發(fā)者可選擇消息加解密方式:明文模式、兼容模式和安全模式。模式的選擇與服務(wù)器配置在提交后都會(huì)立即生效,請(qǐng)開發(fā)者謹(jǐn)慎填寫及選擇。加解密方式的默認(rèn)狀態(tài)為明文模式,選擇兼容模式和安全模式需要提前配置好相關(guān)加解密代碼,詳情請(qǐng)參考消息體簽名及加解密部分的文檔。
URL 必須為80端口,并且只能在服務(wù)器上的?。?!
2、驗(yàn)證URL是否有效
private string Token = ConfigurationManager.AppSettings["Token"]; [HttpGet] [ActionName("Index")] public ActionResult Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { return Content(echostr);//返回隨機(jī)字符串則表示驗(yàn)證通過 } else { return Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。如果你在瀏覽器中看到這句話,說明此地址可以被作為微信公眾賬號(hào)后臺(tái)的Url,請(qǐng)注意保持Token一致。"); } } /// <summary> /// 檢查簽名是否正確 /// </summary> /// <param name="signature"></param> /// <param name="timestamp"></param> /// <param name="nonce"></param> /// <param name="token"></param> /// <returns></returns> public static bool Check(string signature, string timestamp, string nonce, string token = null) { return signature == GetSignature(timestamp, nonce, token); } /// <summary> /// 返回正確的簽名 /// </summary> /// <param name="timestamp"></param> /// <param name="nonce"></param> /// <param name="token"></param> /// <returns></returns> public static string GetSignature(string timestamp, string nonce, string token = null) { token = token ?? Token; var arr = new[] { token, timestamp, nonce }.OrderBy(z => z).ToArray(); var arrString = string.Join("", arr); //var enText = FormsAuthentication.HashPasswordForStoringInConfigFile(arrString, "SHA1");//使用System.Web.Security程序集 var sha1 = System.Security.Cryptography.SHA1.Create(); var sha1Arr = sha1.ComputeHash(Encoding.UTF8.GetBytes(arrString)); StringBuilder enText = new StringBuilder(); foreach (var b in sha1Arr) { enText.AppendFormat("{0:x2}", b); } return enText.ToString(); }
提交配置即可,驗(yàn)證成功才能夠繼續(xù)使用更多的功能。如果提交失敗的話,可以自己寫個(gè)日志查看原因。
精彩專題分享:ASP.NET微信開發(fā)教程匯總,歡迎大家學(xué)習(xí)。
小編也是剛剛接觸微信開發(fā),之前整理了幾篇asp.net微信開發(fā)的文章,今天開始整理關(guān)于C#微信開發(fā)的相關(guān)知識(shí),由于小編也是初學(xué),如果有嚴(yán)謹(jǐn)或者是錯(cuò)誤的地方,請(qǐng)大家多多諒解,大家共同進(jìn)步。
- java微信開發(fā)API第一步 服務(wù)器接入
- 微信JS接口匯總及使用詳解
- PHP對(duì)接微信公眾平臺(tái)消息接口開發(fā)流程教程
- 微信API接口大全
- .net實(shí)現(xiàn)微信公眾賬號(hào)接口開發(fā)實(shí)例代碼
- 微信公眾號(hào)支付(二)實(shí)現(xiàn)統(tǒng)一下單接口
- ASP 微信公共平臺(tái)接口實(shí)現(xiàn)代碼
- c#使用微信接口開發(fā)微信門戶應(yīng)用
- 微信公眾平臺(tái)開發(fā)接口PHP SDK完整版
- 微信公眾平臺(tái)開發(fā)-微信服務(wù)器IP接口實(shí)例(含源碼)
相關(guān)文章
C#中調(diào)用SAPI實(shí)現(xiàn)語音識(shí)別的2種方法
這篇文章主要介紹了C#中調(diào)用SAPI實(shí)現(xiàn)語音識(shí)別的2種方法,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-06-06Dynamic和Var的區(qū)別及dynamic使用詳解
C#中的很多關(guān)鍵詞用法比較容易混淆,var和dynamic就是其中一組,他們都可以申明動(dòng)態(tài)類型的變量,但是本質(zhì)上他們還是有不少區(qū)別的,下面通過本文給大家介紹Dynamic和Var的區(qū)別及如何正確使用dynamic,需要的朋友參考下2016-01-01C#數(shù)據(jù)結(jié)構(gòu)與算法揭秘二 線性結(jié)構(gòu)
本文中,我們討論了什么是線性結(jié)構(gòu),線性結(jié)構(gòu)有哪些特點(diǎn),并且詳細(xì)介紹了一個(gè)最簡單線性結(jié)構(gòu)順序表,并且通過源代碼對(duì)她進(jìn)行一些列的分析,最后還舉了兩個(gè)例子,讓我們更好的理解順序表2012-11-11