微信公众号开发(—)接口与服务器关联
微信公眾號開發(—)
以下都是借鑒的微信公眾平臺的文檔加老師指點和自行的理解。
1.一臺有微信的手機.(別問我老人機可以不 有微信就可以!!!)
2.需要有一個微信公眾平臺的測試號(訂閱號,服務號也可以按自己需求來).
3.還需要一個能聯網并且配置域名(萬網購買)的服務器。
大家可能會問為什么。下面這個圖。說明了他們之間的關系。
以上都準備好的話開始準備阿里云環境(最好是一個全新的環境)不會配置環境看一下我的另一篇文章。怎么安裝composer和laravel框架。
都準備就緒后下載一個phpstorm(自行百度下載破解版本),使他本地與服務器可以連接。
—、設置接口(使測試號和服務器有聯系)
(1)去微信公眾平臺接口配置信息點擊修改
URL:填寫我們服務器地址
Token:隨便命名
token簡單理解可以說是一個通行證,用來驗證微信公眾平臺和服務器之間是否有聯系(就好比土匪頭子對暗號。因為你不知道他是敵是友。只有暗號對了,才能證明你確實是友。)
東北土匪的那些黑話《智取威虎山》剪輯
tips:但是現在點擊提交會說配置失敗。是因為服務器還有沒有驗證消息是否來自微信服務器
(2)驗證消息的確來自微信服務器(下面都是粘貼復制微信公眾平臺的接入概述 也可以自己去微信公眾平臺查看)
開發者提交信息后,微信服務器將發送GET請求到填寫的服務器地址URL上,GET請求攜帶參數如下表所示:
| signature | 微信加密簽名,signature結合了開發者填寫的token參數和請求中的timestamp參數、nonce參數。 |
| timestamp | 時間戳 |
| nonce | 隨機數 |
| echostr | 隨機字符串 |
開發者通過檢驗signature對請求進行校驗(下面有校驗方式)。若確認此次GET請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,成為開發者成功,否則接入失敗。加密/校驗流程如下:
1)將token、timestamp、nonce三個參數進行字典序排序 2)將三個參數字符串拼接成一個字符串進行sha1加密 3)開發者獲得加密后的字符串可與signature對比,標識該請求來源于微信
檢驗signature的PHP示例代碼:
//public function wechat(){//接收隨機字符串$echostr = request()->get('echostr','');//驗證signature正確性if($this->checkSignature()){echo $echostr;}}//驗證signature正確性private function checkSignature(){$signature = request()->get("signature");$timestamp = request()->get("timestamp");$nonce = request()->get("nonce");$token = "wechat";$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr, SORT_STRING);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}現在再點擊提交按鈕就提示配置成功了。
總結
以上是生活随笔為你收集整理的微信公众号开发(—)接口与服务器关联的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mybatis(2)---多表查询
- 下一篇: 史上最全 yum 入门使用教程和常见错误