亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#微信公眾號開發系列教程二(新手接入指南)

2019-11-14 16:20:44
字體:
來源:轉載
供稿:網友

此系列前面已經更新了兩篇博文了,都是微信開發的前期準備工作,現在切入正題,本篇講解新手接入的步驟與方法,大神可直接跳過,也歡迎大神吐槽。


微信公眾號開發系列教程一(調試環境部署)

微信公眾號開發系列教程一(調試環境部署續:vs遠程調試)

C#微信公眾號開發系列教程二(新手接入指南)

C#微信公眾號開發系列教程三(消息體簽名及加解密)

C#微信公眾號開發系列教程四(接收普通消息)

C#微信公眾號開發系列教程五(接收事件推送與消息排重)

 C#微信公眾號開發系列教程六(被動回復與上傳下載多媒體文件)

微信公眾平臺消息接口的工作原理大概可以這樣理解:從用戶端到公眾號端一個流程是這樣的,用戶發送消息到微信服務器,微信服務器將接收到的消息post到用戶接入時填寫的url中,在url處理程序中,首先判斷消息的合法性,判斷成功后根據消息體的內容做相應的相應。原理很容易理解,接觸過socket的可能理解起來更容易。

然而,微信的文檔有的時候確實有點讓人摸不著頭腦,關于微信接入的文檔寫的確實不敢恭維啊。官方文檔寫的第一步是“申請消息接口”,這里是需要填寫一個url的,此url用來處理微信發送的消息的,但微信把url中相關的配置寫在了第二步,一不小心就把新手給坑了。下面我按照我的理解來進行解釋。

首先,開發者在接入時,微信服務器將發送get請求到你填寫的url上,此請求攜帶四個參數,分別signature(微信加密簽名,signature結合了開發者填寫的token參數和請求中的timestamp參數、nonce參數。),timestamp(時間戳),nonce(隨機數),echostr(隨機字符串).用 HttpContext.Current.Request.RawUrl可以獲取當前請求的原始url,如下圖所示:

image

開發者通過檢驗signature對請求進行校驗(下面有校驗方式)。若確認此次GET請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,成為開發者成功,否則接入失敗。

加密/校驗流程如下:1. 將token、timestamp、nonce三個參數進行字典序排序2. 將三個參數字符串拼接成一個字符串進行sha1加密3. 開發者獲得加密后的字符串可與signature對比,標識該請求來源于微信。
下面是代碼實現。
首先,在你的處理程序中(我是新建了一個一般處理程序wx.ashx),判斷當前請求的類型,因為接入時,是發送的GET請求,消息處理是發送的POST請求。如下圖:
image
這里我對驗證url的方法進行封裝。
/// <summary>        /// 驗證url權限, 接入服務器        /// </summary>        /// <param name="token"></param>        /// <returns></returns>        public static bool ValidUrl(string token)        {            string echoStr = VqiRequest.GetQueryString("echoStr");            if (CheckSignature(token))            {                if (!string.IsNullOrEmpty(echoStr))                {                    Utils.ResponseWrite(echoStr);                    return true;                }            }            return false;        }/// <summary>        /// 驗證微信簽名        /// </summary>        /// * 將token、timestamp、nonce三個參數進行字典序排序        /// * 將三個參數字符串拼接成一個字符串進行sha1加密        /// * 開發者獲得加密后的字符串可與signature對比,標識該請求來源于微信。        /// <returns></returns>        public static bool CheckSignature(string token)        {            string signature = VqiRequest.GetQueryString("signature");            string timestamp = VqiRequest.GetQueryString("timestamp");            string nonce = VqiRequest.GetQueryString("nonce");            string[] ArrTmp = { token, timestamp, nonce };            Array.Sort(ArrTmp);     //字典排序            string tmpStr = string.Join("", ArrTmp);            tmpStr = Utils.HashPassWordForStoringInConfigFile(tmpStr, "SHA1");            tmpStr = tmpStr.ToLower();            if (tmpStr == signature)            {                return true;            }            else            {                return false;            }        }

 

注:代碼VqiRequest.GetQueryString是封裝的QueryString請求的方法,使用的時候可以改成QueryString[“”]

處理過程如圖:

image

image

將signature,timestamp,nonce三個參數放在數組中,

image

image

排序后的ArrTmp:

image

將三個將三個參數字符串拼接成一個字符串:

image

將tmpStr進行sha1加密,加密后的字符串轉換成小寫:

image

然后和簽名進行對比,相同則表示驗證成功。

image

驗證成功將echoStr返回給微信。

image

/// <summary>        /// 根據指定的密碼和哈希算法生成一個適合于存儲在配置文件中的哈希密碼        /// </summary>        /// <param name="str">要進行哈希運算的密碼</param>        /// <param name="type"> 要使用的哈希算法</param>        /// <returns>經過哈希運算的密碼</returns>        public static string HashPasswordForStoringInConfigFile(string str, string type)        {            return FormsAuthentication.HashPasswordForStoringInConfigFile(str, type);        }        public static void ResponseWrite(string str)        {            HttpContext.Current.Response.Write(str);            HttpContext.Current.Response.End();        }

 

處理程序編寫完畢后,部署到iis(方法請參照教程一),登錄微信管理后臺https://mp.weixin.QQ.com/在開發者中心頁,點擊“修改配置按鈕”填寫URL、Token和EncodingAESKey,其中URL是開發者用來接收微信服務器數據的接口URL。Token可由開發者可以任意填寫,用作生成簽名(該Token會和接口URL中包含的Token進行比對,從而驗證安全性)。EncodingAESKey由開發者手動填寫或隨機生成,將用作消息體加解密密鑰。同時,開發者可選擇消息加解密方式:明文模式、兼容模式和安全模式。模式的選擇與服務器配置在提交后都會立即生效。加解密方式的默認狀態為明文模式。加解密模式將在后期的系列中與大家共享,敬請期待。

如圖所示:

image

image

 

點擊提交后,微信服務器將get請求到上文中編寫的url中。驗證成功,則綁定成功。

image

 

 

END

 

如有疑問加群一起交流,我需要廣大屌絲小伙伴的反饋與建議,   點擊這里給我發消息

如果覺得本文對你有幫助,請點擊文章下面的推薦哦,去幫助更多的小伙伴了解微信開發的流程。

如果你是土豪,想支持筆者繼續更新本系列教程,可以掃描下面的二維碼懸賞一下,你的支持是筆者繼續更新下去的動力。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人精品免费视频| 欧美性猛交xxxx久久久| 中文字幕亚洲欧美在线| 欧美亚州一区二区三区| 91精品国产综合久久香蕉的用户体验| 精品国产一区二区三区久久狼5月| 最新日韩中文字幕| 国产精品精品视频一区二区三区| 国产精品久久久久久超碰| 亚洲第一页在线| 91精品国产精品| 精品无人区乱码1区2区3区在线| 国内精品一区二区三区| 欧美xxxx18性欧美| 日韩在线免费av| 亚洲三级 欧美三级| 亚洲自拍另类欧美丝袜| 最近2019中文字幕一页二页| 成人中文字幕在线观看| 国自在线精品视频| 国产日产欧美a一级在线| 日韩视频免费在线| 国产精品久久网| 国产精品嫩草影院一区二区| 久久免费视频这里只有精品| 爽爽爽爽爽爽爽成人免费观看| 欧美大人香蕉在线| 超碰日本道色综合久久综合| 欧美影院久久久| 91高潮精品免费porn| 成人激情在线观看| 亚洲欧美成人精品| 久久成人这里只有精品| www.欧美精品一二三区| 亚洲精品福利资源站| 亚洲最大成人免费视频| 中文字幕精品网| 久青草国产97香蕉在线视频| 久久久精品一区| 亚洲成人a级网| 欧美日韩美女在线| 在线视频国产日韩| 亚洲欧美激情精品一区二区| 欧美日韩免费区域视频在线观看| 亚洲成人精品久久久| 国产视频久久久| 久久久久久久久久久网站| 91在线精品播放| 社区色欧美激情 | 欧美日韩中国免费专区在线看| 亚洲第一二三四五区| 久久天堂电影网| 国产精品久久久久影院日本| 国色天香2019中文字幕在线观看| 亚洲第一福利视频| 青青在线视频一区二区三区| 精品中文字幕在线| 国产精品7m视频| 欧美日韩国产成人| 亚洲毛片一区二区| 在线观看欧美日韩| 欧美激情啊啊啊| 国产精品久久久久久久久借妻| 国产精品露脸自拍| 日韩福利在线播放| 国产成人小视频在线观看| 91精品久久久久久久久久久久久久| 日韩小视频在线观看| 色噜噜久久综合伊人一本| 国产精品露脸自拍| 欧美极品少妇xxxxⅹ喷水| 亚洲丁香婷深爱综合| 中文字幕欧美视频在线| 国产精品美女av| 欧美最猛性xxxxx(亚洲精品)| 国产成人精品日本亚洲专区61| 97超碰国产精品女人人人爽| 91精品啪在线观看麻豆免费| 国产精品极品尤物在线观看| 亚洲第一综合天堂另类专| 黑人巨大精品欧美一区免费视频| 欧美性猛交xxxx黑人猛交| 亚洲第一在线视频| 欧美激情免费观看| 日韩av影视综合网| 成人做爰www免费看视频网站| 日韩av黄色在线观看| 国产精品日日摸夜夜添夜夜av| 成人国产精品久久久| 日韩av不卡电影| 国产91在线播放精品91| 国外成人在线视频| 中文字幕亚洲欧美| 国产97在线亚洲| 精品国产一区二区三区久久狼5月| 日本精品视频在线播放| 国产成人福利夜色影视| 国产在线拍偷自揄拍精品| 欧美大秀在线观看| 日韩精品丝袜在线| 成人免费看片视频| 国产精品一区二区性色av| 欧美激情亚洲综合一区| 日韩av快播网址| 国产精品入口福利| 国产精品丝袜久久久久久不卡| 日韩精品高清在线观看| 91麻豆桃色免费看| 亚洲中国色老太| 精品福利一区二区| 国产午夜精品麻豆| 亚洲最大的成人网| 色多多国产成人永久免费网站| 欧美大片欧美激情性色a∨久久| 日本久久久久久久久久久| 国产91ⅴ在线精品免费观看| 欧美最猛黑人xxxx黑人猛叫黄| 一区二区三区 在线观看视| 91久久精品视频| 国产+成+人+亚洲欧洲| 成人激情视频小说免费下载| 欧美尺度大的性做爰视频| 亚洲第一网站免费视频| 欧美视频中文字幕在线| 亚洲激情中文字幕| 国产精品69久久久久| 在线观看久久久久久| 欧美专区中文字幕| 国产亚洲精品美女| 久久人人爽国产| 亚洲成人在线视频播放| 国产伦精品一区二区三区精品视频| 亚洲乱码一区av黑人高潮| 亚洲免费av电影| 国产极品jizzhd欧美| 97avcom| 欧美日韩激情视频| 久久久极品av| 欧美一级免费看| 成人激情在线观看| 一本色道久久88综合日韩精品| 欧美中文字幕在线观看| 国产精品成人av在线| 久久久久国产精品一区| 亚洲 日韩 国产第一| 怡红院精品视频| 国产精品十八以下禁看| 成人福利网站在线观看| 一区二区三区回区在观看免费视频| 久久久在线免费观看| 伊人久久五月天| 欧美激情videos| 美日韩精品免费观看视频| 上原亚衣av一区二区三区| 国产不卡视频在线| 亚洲欧洲美洲在线综合| 久久久成人精品| 久久99久久久久久久噜噜| 日本最新高清不卡中文字幕| 色婷婷亚洲mv天堂mv在影片| 欧美成人亚洲成人| 亚洲最新视频在线| 国产精品a久久久久久| 国产成人精品一区二区在线|