搜尋
首頁微信小程式微信開發網頁授權取得使用者資訊的方法

取得使用者資訊步驟如下:

1 第一步:使用者同意授權,取得code
2 第二步:透過code換取網頁授權access_token
3 第三步:刷新access_token(如果需要)
4 第四步:拉取用戶資訊(需scope為snsapi_userinfo)

1 取得code

在確保微信公眾帳號擁有授權作用域( scope參數)的權限的前提下(服務號碼獲得高級介面後,預設擁有scope參數中的snsapi_base和snsapi_userinfo),引導追蹤者開啟如下頁面:

#open .weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

#提示“該連結無法存取錯誤”,請檢查參數是否填寫錯誤”,請檢查參數是否填寫錯誤,是否擁有scope參數對應的授權作用域權限。

尤其註意:由於授權操作安全性等級較高,所以在發起授權請求時,微信會對授權連結做正規則強匹配校驗,如果連結的參數順序不對,授權頁面將無法正常存取

其中:

AppID - 公眾號碼的唯一識別
REDIRECT_URI - 跳轉url
SCOPE - 值為snsapi_base(不彈出授權頁面,直接跳轉,只能取得使用者openid) 或snsapi_userinfo (彈出授權頁面,可透過openid拿到暱稱、性別、所在地。並且,即使在未關注的情況下,只要使用者授權,也能取得其資訊)
STATE - 開發者可以自訂填寫a-zA-Z0-9的參數值

2 透過code換取網頁授權access_token

如果使用者同意授權,頁面將跳轉至redirect_uri/?code=CODE&state=STATE。
state就是上面的STATE參數原樣傳過來的

實作程式碼:

 <code class="hljs php">$code = I(&#39;get.code&#39;);if (empty($code)) {   //todo 非微信访问   exit(&#39;</code>&#39;); }
else
{ //授权后操作 }

在這裡我們就可以得到code來當作後續的取得access_token。

獲取code後,請求以下鏈接獲取access_token:

api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

appid - 公眾號碼的唯一識別
secret - 金鑰
code - 上述所傳回的code
grant_type - 值為authorization_code

實作碼:

 <code class="hljs bash">$url = &#39;https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=&#39; . C(&#39;wechat.AppID&#39;) . &#39;&secret=&#39; . C(&#39;wechat.AppSecret&#39;);$str = 
file_get_contents
($url);$str = 
json
_decode($str, true);$access_token = $str[&#39;access_token&#39;];</code>

這裡access_token可以做快取處理,避免造成頻繁取得
實作程式碼,以TP框架為例:

 <code class="hljs php">$access_token = S(&#39;access_token&#39;);if (empty($access_token)) {  $url = &#39;https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=&#39; . C(&#39;wechat.AppID&#39;) . &#39;&secret=&#39; . C(&#39;wechat.AppSecret&#39;);  $str = file_get_contents($url);  $str = json_decode($str, true);  $access_token = $str[&#39;access_token&#39;];  S(&#39;access_token&#39;, $access_token, 3600);}</code>

在取得access_token後,也會一併返回openid(用戶唯一標識),微信官方文檔的解釋是:用戶唯一標識,請注意,在未關注公眾號時,用戶訪問公眾號的網頁,也會產生一個用戶和公眾號唯一的OpenID

openid是唯一標識微信用戶的,如果用戶不是第一次登陸,可以在得到openid後查詢資料庫是否有綁定此openid的用戶,之後就無需重新獲取用戶數據,直接取得的資料庫user_id設定session,直接登陸存取

3 第三步忽略,只在需要的時間重新取得access_token而已

4 拉取用戶資訊(需scope為snsapi_userinfo)

在資料庫無此微訊號使用者的綁定下,就相當於使用者首次造訪登陸,則透過第四步驟來取得使用者資訊(在使用者授權情況下,網頁授權作用域為snsapi_userinfo,則此時開發者可以透過access_token和openid拉取使用者資訊了),然後後台建立user並綁定此微

訊號使用者(透過openid)

請求方法

http:GET(請使用https協定)api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang =zh_CN

access_token - 上述所取得的access_token
openid - 公眾號碼唯一識別

實現程式碼:

 <code class="hljs php">$access_token = S(&#39;access_token&#39;);if (empty($access_token)) {  $url = &#39;https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=&#39; . C(&#39;wechat.AppID&#39;) . &#39;&secret=&#39; . C(&#39;wechat.AppSecret&#39;);  $str = file_get_contents($url);  $str = json_decode($str, true);  $access_token = $str[&#39;access_token&#39;];  S(&#39;access_token&#39;, $access_token, 3600);}</code>

以上就是微信公眾號獲取用戶資訊的具體步驟。

【相關推薦】

1. 微信公眾號平台原始碼下載 

2. 微信公眾號T+微信機器人原始碼

以上是網頁授權取得使用者資訊的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境