新聞中心
這篇文章主要介紹網(wǎng)頁(yè)授權(quán)獲取用戶(hù)信息的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
獲取用戶(hù)信息步驟如下:
1 第一步:用戶(hù)同意授權(quán),獲取code
2 第二步:通過(guò)code換取網(wǎng)頁(yè)授權(quán)access_token
3 第三步:刷新access_token(如果需要)
4 第四步:拉取用戶(hù)信息(需scope為 snsapi_userinfo)
1 獲取code
在確保微信公眾賬號(hào)擁有授權(quán)作用域(scope參數(shù))的權(quán)限的前提下(服務(wù)號(hào)獲得高級(jí)接口后,默認(rèn)擁有scope參數(shù)中的snsapi_base和snsapi_userinfo),引導(dǎo)關(guān)注者打開(kāi)如下頁(yè)面:
open.weixin.qq.com/connect/oauth3/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
若提示“該鏈接無(wú)法訪問(wèn)”,請(qǐng)檢查參數(shù)是否填寫(xiě)錯(cuò)誤,是否擁有scope參數(shù)對(duì)應(yīng)的授權(quán)作用域權(quán)限。
尤其注意:由于授權(quán)操作安全等級(jí)較高,所以在發(fā)起授權(quán)請(qǐng)求時(shí),微信會(huì)對(duì)授權(quán)鏈接做正則強(qiáng)匹配校驗(yàn),如果鏈接的參數(shù)順序不對(duì),授權(quán)頁(yè)面將無(wú)法正常訪問(wèn)
其中:
AppID - 公眾號(hào)的標(biāo)識(shí)
REDIRECT_URI - 跳轉(zhuǎn)url
SCOPE - 值為snsapi_base(不彈出授權(quán)頁(yè)面,直接跳轉(zhuǎn),只能獲取用戶(hù)openid) 或snsapi_userinfo (彈 出授權(quán)頁(yè)面,可通過(guò)openid拿到昵稱(chēng)、性別、所在地。并且,即使在未關(guān)注的情況下,只要用戶(hù)授權(quán),也能獲取其信息)
STATE - 開(kāi)發(fā)者可以自定義填寫(xiě)a-zA-Z0-9的參數(shù)值
2 通過(guò)code換取網(wǎng)頁(yè)授權(quán)access_token
如果用戶(hù)同意授權(quán),頁(yè)面將跳轉(zhuǎn)至 redirect_uri/?code=CODE&state=STATE。
state就是上面的STATE參數(shù)原樣傳過(guò)來(lái)的
實(shí)現(xiàn)代碼:
$code = I('get.code');if (empty($code)) { //todo 非微信訪問(wèn) exit('
'); }
else
{ //授權(quán)后操作 }
在這里我們就可以得到code用作后續(xù)的獲取access_token。
獲取code后,請(qǐng)求以下鏈接獲取access_token:
api.weixin.qq.com/sns/oauth3/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
appid - 公眾號(hào)的標(biāo)識(shí)
secret - 密鑰
code - 上述所返回的code
grant_type - 值為authorization_code
實(shí)現(xiàn)代碼:
$url = '/tupian/20230522/token
file_get_contents
($url);$str =
json
_decode($str, true);$access_token = $str['access_token'];
這里access_token可以做緩存處理,避免造成頻繁獲取
實(shí)現(xiàn)代碼,以TP框架為例:
$access_token = S('access_token');if (empty($access_token)) { $url = '/tupian/20230522/token 第三步忽略,只在需要的時(shí)間重新獲取access_token而已4 拉取用戶(hù)信息(需scope為 snsapi_userinfo)
在數(shù)據(jù)庫(kù)無(wú)此微信號(hào)用戶(hù)的綁定下,就相當(dāng)于用戶(hù)首次訪問(wèn)登陸,則通過(guò)第四步來(lái)獲取用戶(hù)信息(在用戶(hù)授權(quán)情況下,網(wǎng)頁(yè)授權(quán)作用域?yàn)閟nsapi_userinfo,則此時(shí)開(kāi)發(fā)者可以通過(guò)access_token和openid拉取用戶(hù)信息了),然后后臺(tái)創(chuàng)建user并綁定此微
信用戶(hù)(通過(guò)openid)
請(qǐng)求方法
http:GET(請(qǐng)使用https協(xié)議)api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
access_token - 上述所獲取的access_token
openid - 公眾號(hào)標(biāo)識(shí)
實(shí)現(xiàn)代碼:
$access_token = S('access_token');if (empty($access_token)) { $url = '/tupian/20230522/token>以上是“網(wǎng)頁(yè)授權(quán)獲取用戶(hù)信息的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
標(biāo)題名稱(chēng):網(wǎng)頁(yè)授權(quán)獲取用戶(hù)信息的方法-創(chuàng)新互聯(lián)
分享鏈接:http://www.dlmjj.cn/article/csgdjs.html