溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解微信公眾號OAuth2.0網(wǎng)頁授權問題

發(fā)布時間:2021-09-29 10:11:03 來源:億速云 閱讀:118 作者:iii 欄目:開發(fā)技術

這篇文章主要介紹“如何理解微信公眾號OAuth2.0網(wǎng)頁授權問題”,在日常操作中,相信很多人在如何理解微信公眾號OAuth2.0網(wǎng)頁授權問題問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何理解微信公眾號OAuth2.0網(wǎng)頁授權問題”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1.修改網(wǎng)頁授權的基本信息。打開微信公眾平臺。

如何理解微信公眾號OAuth2.0網(wǎng)頁授權問題

如何理解微信公眾號OAuth2.0網(wǎng)頁授權問題

在這個地方寫要授權的頁面的網(wǎng)址。

2.我這邊只是測試這個功能,所以我頁面直接寫了個測試頁面,我在要測試的這個網(wǎng)站的根目錄新建了一個ceshi.html

然后在他的控制器里面對其進行操作。

1)首先是分享的也就是授權的網(wǎng)頁的鏈接要寫的正確

如何理解微信公眾號OAuth2.0網(wǎng)頁授權問題

然后url:

https://open.weixin.qq.com/connect/oauth3/authorize?appid=wx444444444444&redirect_uri=http://www.erdangjiade.com/Admin/Wx/ceshi.html&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect

2)使用code獲取access_token

我是直接在測試的那個網(wǎng)頁(也就是進行授權)的控制器直接對其操作

如何理解微信公眾號OAuth2.0網(wǎng)頁授權問題

代碼:

$code=$_GET['code'];
dump($code);
$url="https://api.weixin.qq.com/sns/oauth3/access_token?appid=wxd1caae7&secret=0a72c866233ab4cf6f1ad6d&code=".$code."&grant_type=authorization_code";
//var_dump($url);
$resInfo = https_request($url,true);
$userLists=json_decode($resInfo,true);
dump($userLists);

這邊可以答應出我這邊寫的$userLists

然后如果是正確的話,就能獲取access_token,因為access_token的時效性的問題,所以可以把access_token替換成refresh_token,我因為自己覺得并不需要,所以就沒有寫那一步。

如何理解微信公眾號OAuth2.0網(wǎng)頁授權問題

這邊要是換取的時候有錯的話,就會顯示{"errcode":40029,"errmsg":"invalid code"}

3)利用openid和access_token獲取用戶的頭像昵稱等基本信息。

如何理解微信公眾號OAuth2.0網(wǎng)頁授權問題

代碼:

$access_token=$userLists['access_token'];
$openid=$userLists['openid'];
$userClick=M('maiclub_userclick');
if($userClick->where("openid = '{$openid}'")->find()){
//echo 1111;
}else{
$urlInfo="https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid;
$resltInfo=https_request($urlInfo,true);
$userInfo=json_decode($resltInfo,true);
$userClick->add($userInfo);
}
dump($userInfo);
// dump($access_token);
$this->display();

dump($userInfo);就可以打印出用戶的基本信息,然后只要入庫就可以了。

這邊還有個問題,就是我這邊用到的一個函數(shù)https_request

他在function中的源代碼:

function https_request($url, $data = null){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}

這樣應該沒有問題了,就是授權的全部內(nèi)容。

到此,關于“如何理解微信公眾號OAuth2.0網(wǎng)頁授權問題”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI