微信公眾平臺開發(fā)者文檔-part2-(2016-7-27)
,五 、 微信網(wǎng)頁開發(fā)(一)網(wǎng)頁授權(quán)獲取用戶基本信息如果用戶在微信客戶端中訪問第三方網(wǎng)頁,公眾號可以通過微信網(wǎng)頁授權(quán)機制,來獲取用戶基本信息,進而實現(xiàn)業(yè)務邏輯。關于網(wǎng)頁授
五 、 微信網(wǎng)頁開發(fā)
(一)網(wǎng)頁授權(quán)獲取用戶基本信息
如果用戶在微信客戶端中訪問第三方網(wǎng)頁,公眾號可以通過微信網(wǎng)頁授權(quán)機制,來獲取用戶基本信息,進而實現(xiàn)業(yè)務邏輯。
關于網(wǎng)頁授權(quán)回調(diào)域名的說明
關于網(wǎng)頁授權(quán)的兩種scope 的區(qū)別說明
關于網(wǎng)頁授權(quán)access_token和普通access_token的區(qū)別
關于UnionID 機制
,關于特殊場景下的靜默授權(quán)
具體而言,網(wǎng)頁授權(quán)流程分為四步:
第一步:用戶同意授權(quán),獲取code
在確保微信公眾賬號擁有授權(quán)作用域(scope 參數(shù))的權(quán)限的前提下(服務號獲得高級接口后,默認擁有scope 參數(shù)中的snsapi_base和snsapi_userinfo),引導關注者打開如下頁面:
尤其注意:由于授權(quán)操作安全等級較高,所以在發(fā)起授權(quán)請求時,微信會對授權(quán)鏈接做正則強匹配校驗,如果鏈接的參數(shù)順序不對,授權(quán)頁面將無法正常訪問
,尤其注意:跳轉(zhuǎn)回調(diào)redirect_uri,應當使用https 鏈接來確保授權(quán)code 的安全性。 參數(shù)說明
下圖為scope 等于snsapi_userinfo時的授權(quán)頁面:
,用戶同意授權(quán)后
如果用戶同意授權(quán),頁面將跳轉(zhuǎn)至 redirect_uri/?code=CODE&state=STATE。若用戶禁止授權(quán),則重定向后不會帶上code 參數(shù),僅會帶上state 參數(shù)
redirect_uri?state=STATE
第二步:通過code 換取網(wǎng)頁授權(quán)access_token
首先請注意,這里通過code 換取的是一個特殊的網(wǎng)頁授權(quán)access_token,與基礎支持中的access_token(該access_token用于調(diào)用其他接口)不同。公眾號可通過下述接口來獲取網(wǎng)頁授權(quán)access_token。如果網(wǎng)頁授權(quán)的作用域為snsapi_base,則本步驟中獲取到網(wǎng)頁授權(quán)access_token的同時,也獲取到了openid ,snsapi_base式的網(wǎng)頁授權(quán)流程即到此為止。
,尤其注意:由于公眾號的secret 和獲取到的access_token安全級別都非常高,必須只保存在服務器,不允許傳給客戶端。后續(xù)刷新access_token、通過access_token獲取用戶信息等步驟,也必須從服務器發(fā)起。
請求方法
參數(shù)說明
返回說明
正確時返回的JSON 數(shù)據(jù)包如下:
錯誤時微信會返回JSON 數(shù)據(jù)包如下(示例為Code 無效錯誤):
全局返回碼說明
第三步:刷新access_token(如果需要)
由于access_token擁有較短的有效期,當access_token超時后,可以使用
refresh_token進行刷新,refresh_token擁有較長的有效期(7天、30天、60天、90天),當refresh_token失效的后,需要用戶重新授權(quán)。
請求方法
返回說明
正確時返回的JSON 數(shù)據(jù)包如下:
,錯誤時微信會返回JSON 數(shù)據(jù)包如下(示例為Code 無效錯誤):
全局返回碼說明
第四步:拉取用戶信息(需scope 為 snsapi_userinfo)
如果網(wǎng)頁授權(quán)作用域為snsapi_userinfo,則此時開發(fā)者可以通過access_token和openid 拉取用戶信息了。
請求方法
參數(shù)說明
返回說明
正確時返回的JSON 數(shù)據(jù)包如下:
錯誤時微信會返回JSON 數(shù)據(jù)包如下(示例為openid 無效):
全局返回碼說明
附:檢驗授權(quán)憑證(access_token)是否有效
請求方法
,參數(shù)說明
返回說明
正確的Json 返回結(jié)果:
錯誤時的Json 返回示例:
(二)微信網(wǎng)頁開發(fā)樣式庫
微信網(wǎng)頁開發(fā)樣式庫