根據微信公眾號開發官方文件:
取得使用者資訊步驟如下:
1 第一步:使用者同意授權,取得code
2 第二步:透過code換取網頁授權access_token
3 第三步:刷新access_token(如果需要)
4 第四步:拉取用戶資訊(需scope為snsapi_userinfo)
1 取得code
在確保微信公眾帳號擁有授權作用域(scope參數)的權限的前提下(服務號碼獲得高級介面後,預設擁有scope參數中的snsapi_base和snsapi_userinfo).
若提示“該連結無法存取”,請檢查參數是否填寫錯誤,是否擁有scope參數對應的授權作用域權限。 ,授權頁面將無法正常存取
AppID - 公眾號碼的唯一識別
REDIRECT_URI - 跳轉url
STATE - 開發者可以自訂填寫a-zA-Z0-9的參數值
2 透過code換取網頁授權access_token
grant_type - 值為authorization_code
實作程式碼:
<code class="hljs php">$code = I('get.code'); if (empty($code)) { //todo 非微信访问 exit('</code>'); }else{ //授权后操作 }
這裡access_token可以做快取處理
,避免造成頻繁取得
實作程式碼,以TP框架為例:<code class="hljs bash">$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret'); $str = file_get_contents($url); $str = json_decode($str, true); $access_token = $str['access_token'];</code>在取得access_token後,也會一併回傳openid(使用者唯一標識),微信官方文件的解釋是:使用者唯一標識,請注意,在未關注公眾號時,使用者造訪公眾號的網頁,也會產生一個使用者和公眾號唯一的OpenID
openid是唯一標識微信使用者的,如果使用者不是第一次登陸,可以在得到openid後
查詢
資料庫是否有綁定此openid的用戶,之後就無需重新獲取用戶數據,直接獲取的資料庫user_id設定
session
4 拉取用戶資訊(需scope為snsapi_userinfo)
在資料庫無此微訊號用戶的綁定下,就相當於用戶第一次造訪登陸,則透過第四步驟來取得使用者資訊(在使用者授權情況下,網頁授權作用域為snsapi_userinfo,則此時開發者可以透過access_token和openid拉取使用者資訊了),然後後台建立user並綁定此微
信用戶(透過openid)
openid - 公用號碼唯一識別
<code class="hljs php">$access_token = S('access_token'); if (empty($access_token)) { $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret'); $str = file_get_contents($url); $str = json_decode($str, true); $access_token = $str['access_token']; S('access_token', $access_token, 3600); }</code>
以上是微信公眾號之網頁授權取得的實現步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)