微信公眾號(hào)OAuth2.0網(wǎng)頁(yè)授權(quán)問題淺析
根據(jù)需求,我今天完成的是微信的網(wǎng)頁(yè)授權(quán)然后拉取用戶的一些基本信息的問題。
1.修改網(wǎng)頁(yè)授權(quán)的基本信息。打開微信公眾平臺(tái)。


在這個(gè)地方寫要授權(quán)的頁(yè)面的網(wǎng)址。
2.我這邊只是測(cè)試這個(gè)功能,所以我頁(yè)面直接寫了個(gè)測(cè)試頁(yè)面,我在要測(cè)試的這個(gè)網(wǎng)站的根目錄新建了一個(gè)ceshi.html
然后在他的控制器里面對(duì)其進(jìn)行操作。
1)首先是分享的也就是授權(quán)的網(wǎng)頁(yè)的鏈接要寫的正確

然后url:
2)使用code獲取access_token
我是直接在測(cè)試的那個(gè)網(wǎng)頁(yè)(也就是進(jìn)行授權(quán))的控制器直接對(duì)其操作

代碼:
$code=$_GET['code']; dump($code); $url="https://api.weixin.qq.com/sns/oauth2/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);
這邊可以答應(yīng)出我這邊寫的$userLists
然后如果是正確的話,就能獲取access_token,因?yàn)閍ccess_token的時(shí)效性的問題,所以可以把a(bǔ)ccess_token替換成refresh_token,我因?yàn)樽约河X得并不需要,所以就沒有寫那一步。

這邊要是換取的時(shí)候有錯(cuò)的話,就會(huì)顯示{"errcode":40029,"errmsg":"invalid code"}
3)利用openid和access_token獲取用戶的頭像昵稱等基本信息。

代碼:
$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);就可以打印出用戶的基本信息,然后只要入庫(kù)就可以了。
這邊還有個(gè)問題,就是我這邊用到的一個(gè)函數(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;
}
這樣應(yīng)該沒有問題了,就是授權(quán)的全部?jī)?nèi)容。
以上所述是小編給大家介紹的微信公眾號(hào)OAuth2.0網(wǎng)頁(yè)授權(quán)問題淺析,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
PHPstorm啟用自動(dòng)換行的方法詳解(IDE)
這篇文章主要介紹了PHPstorm啟用自動(dòng)換行的方法詳解(IDE),本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
php 生成靜態(tài)頁(yè)面的辦法與實(shí)現(xiàn)代碼詳細(xì)版
首先說原理。查了那么多資料,發(fā)現(xiàn)不管用什么方法,原理都是一樣的。就是用程序讀取相應(yīng)的數(shù)據(jù)來替換模版中的變量,然后生成靜態(tài)頁(yè)。2010-02-02
php 提交表單 關(guān)閉layer彈窗iframe的實(shí)例講解
今天小編就為大家分享一篇php 提交表單 關(guān)閉layer彈窗iframe的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
Laravel框架實(shí)現(xiàn)model層的增刪改查(CURD)操作示例
這篇文章主要介紹了Laravel框架實(shí)現(xiàn)model層的增刪改查(CURD)操作,結(jié)合實(shí)例形式分析了Laravel框架模型model層進(jìn)行數(shù)據(jù)庫(kù)的增刪改查操作具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05
PHP設(shè)計(jì)模式之中介者模式(Mediator Pattern)入門與應(yīng)用案例詳解
這篇文章主要介紹了PHP設(shè)計(jì)模式之中介者模式(Mediator Pattern),結(jié)合實(shí)例形式詳細(xì)分析了PHP中介者模式的基本概念、原理、應(yīng)用案例與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-12-12

