服務(wù)熱線
0755-33563420
做好微信開(kāi)發(fā)流程須知流程
2019-04-22 11:49:09 來(lái)源:網(wǎng)站建設(shè)微信APP開(kāi)發(fā)
新聞?wù)?/span>:做好微信開(kāi)發(fā)流程須知流程
一、綁定服務(wù)器成為開(kāi)發(fā)者
微信公眾號(hào)配置
登錄微信公眾平臺(tái)官網(wǎng)后,在公眾平臺(tái)官網(wǎng)的開(kāi)發(fā)-基本設(shè)置頁(yè)面,勾選協(xié)議成為開(kāi)發(fā)者,點(diǎn)擊“修改配置”按鈕,填寫服務(wù)器地址(URL)、Token和EncodingAESKey,其中URL是開(kāi)發(fā)者用來(lái)接收微信消息和事件的接口URL。Token可由開(kāi)發(fā)者可以任意填寫,用作生成簽名(該Token會(huì)和接口URL中包含的Token進(jìn)行比對(duì),從而驗(yàn)證安全性)。EncodingAESKey由開(kāi)發(fā)者手動(dòng)填寫或隨機(jī)生成,將用作消息體加解密密鑰。
同時(shí),開(kāi)發(fā)者可選擇消息加解密方式:明文模式、兼容模式和安全模式。模式的選擇與服務(wù)器配置在提交后都會(huì)立即生效,請(qǐng)開(kāi)發(fā)者謹(jǐn)慎填寫及選擇。加解密方式的默認(rèn)狀態(tài)為明文模式,選擇兼容模式和安全模式需要提前配置好相關(guān)加解密代碼,詳情請(qǐng)參考消息體簽名及加解密部分的文檔。
服務(wù)器代碼部分
開(kāi)發(fā)者提交信息后,微信服務(wù)器將發(fā)送GET請(qǐng)求到填寫的服務(wù)器地址URL上,如果服務(wù)器代碼編寫不正確,開(kāi)發(fā)者提交信息后,將會(huì)提示token驗(yàn)證失敗;
GET請(qǐng)求攜帶參數(shù)如下表所示:
參數(shù) 描述
signature 微信加密簽名,signature結(jié)合了開(kāi)發(fā)者填寫的token參數(shù)和請(qǐng)求中的timestamp參數(shù)、nonce參數(shù)。
timestamp 時(shí)間戳
nonce 隨機(jī)數(shù)
echostr 隨機(jī)字符串
開(kāi)發(fā)者通過(guò)檢驗(yàn)signature對(duì)請(qǐng)求進(jìn)行校驗(yàn)(下面有校驗(yàn)方式)。若確認(rèn)此次GET請(qǐng)求來(lái)自微信服務(wù)器,請(qǐng)?jiān)瓨臃祷豦chostr參數(shù)內(nèi)容,則接入生效,成為開(kāi)發(fā)者成功,否則接入失敗。加密/校驗(yàn)流程如下:
1)將token、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序 2)將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密 3)開(kāi)發(fā)者獲得加密后的字符串可與signature對(duì)比,標(biāo)識(shí)該請(qǐng)求來(lái)源于微信
檢驗(yàn)signature的PHP示例代碼:
$token = "*****";//微信服務(wù)器配置
$signkey = array($token, $_GET['timestamp'], $_GET['nonce']);
sort($signkey, SORT_STRING);
$signString = implode($signkey);
$signString = sha1($signString);
return $signString == $_GET['signature'];
exit(htmlspecialchars($_GET['echostr']));
這一步驟主要是認(rèn)證身份,如果不考慮安全,直接輸出 獲取到的 echostr,即可通過(guò)認(rèn)證。
使用接口文檔調(diào)用接口
成為開(kāi)發(fā)者后,用戶每次向公眾號(hào)發(fā)送消息、或者產(chǎn)生自定義菜單、或產(chǎn)生微信支付訂單等情況時(shí),開(kāi)發(fā)者填寫
的服務(wù)器配置URL將得到微信服務(wù)器推送過(guò)來(lái)的消息和事件,
所以這時(shí),開(kāi)發(fā)者可以依據(jù)自身業(yè)務(wù)邏輯進(jìn)行響應(yīng),如回復(fù)消息
接口調(diào)用說(shuō)明
access_token機(jī)制
access_token是公眾號(hào)的全局唯一接口調(diào)用憑據(jù),公眾號(hào)調(diào)用各接口時(shí)都需使用access_token。開(kāi)發(fā)者需要進(jìn)行妥善保存。access_token的存儲(chǔ)至少要保留512個(gè)字符空間。access_token的有效期目前為2個(gè)小時(shí),需定時(shí)刷新,重復(fù)獲取將導(dǎo)致上次獲取的access_token失效。
這時(shí)程序需要做好緩存延時(shí)機(jī)制
公眾號(hào)可以使用AppID和AppSecret調(diào)用本接口來(lái)獲取access_token。AppID和AppSecret可在“微信公眾平臺(tái)-開(kāi)發(fā)-基本配置”頁(yè)中獲得(需要已經(jīng)成為開(kāi)發(fā)者,且?guī)ぬ?hào)沒(méi)有異常狀態(tài))。調(diào)用接口時(shí),請(qǐng)登錄“微信公眾平臺(tái)-開(kāi)發(fā)-基本配置”提前將服務(wù)器IP地址添加到IP白名單中,點(diǎn)擊查看設(shè)置方法,否則將無(wú)法調(diào)用成功。
關(guān)于網(wǎng)頁(yè)授權(quán)access_token和普通access_token的區(qū)別
1、微信網(wǎng)頁(yè)授權(quán)是通過(guò)OAuth2.0機(jī)制實(shí)現(xiàn)的,在用戶授權(quán)給公眾號(hào)后,公眾號(hào)可以獲取到一個(gè)網(wǎng)頁(yè)授權(quán)特有的接口調(diào)用憑證(網(wǎng)頁(yè)授權(quán)access_token),通過(guò)網(wǎng)頁(yè)授權(quán)access_token可以進(jìn)行授權(quán)后接口調(diào)用,如獲取用戶基本信息;
2、其他微信接口,需要通過(guò)基礎(chǔ)支持中的“獲取access_token”接口來(lái)獲取到的普通access_token調(diào)用。
自定義菜單
調(diào)用接口時(shí),請(qǐng)登錄“微信公眾平臺(tái)-開(kāi)發(fā)-基本配置”提前將服務(wù)器IP地址添加到IP白名單中,點(diǎn)擊查看設(shè)置方法,否則將無(wú)法調(diào)用成功。
發(fā)送消息
網(wǎng)頁(yè)授權(quán)
【責(zé)任編輯:藝之都網(wǎng)站微信APP開(kāi)發(fā)公司】 (Top) 返回頁(yè)面頂端
最新更新