《PHP應用:微信公眾號OAuth2.0網頁授權問題淺析》要點:
本文介紹了PHP應用:微信公眾號OAuth2.0網頁授權問題淺析,希望對您有用。如果有疑問,可以聯系我們。
根據需求,我今天完成的是微信的網頁授權然后拉取用戶的一些基本信息的問題.PHP應用
1.修改網頁授權的基本信息.打開微信公眾平臺.PHP應用
PHP應用
PHP應用
在這個地方寫要授權的頁面的網址.PHP應用
2.我這邊只是測試這個功能,所以我頁面直接寫了個測試頁面,我在要測試的這個網站的根目錄新建了一個ceshi.htmlPHP應用
然后在他的控制器里面對其進行操作.PHP應用
1)首先是分享的也就是授權的網頁的鏈接要寫的正確PHP應用
PHP應用
然后url:PHP應用
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx444444444444&redirect_uri=http://www.erdangjiade.com/Admin/Wx/ceshi.html&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirectPHP應用
2)使用code獲取access_tokenPHP應用
我是直接在測試的那個網頁(也就是進行授權)的控制器直接對其操作PHP應用
PHP應用
代碼:PHP應用
$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);
這邊可以答應出我這邊寫的$userListsPHP應用
然后如果是正確的話,就能獲取access_token,因為access_token的時效性的問題,所以可以把access_token替換成refresh_token,我因為自己覺得并不需要,所以就沒有寫那一步.PHP應用
PHP應用
這邊要是換取的時候有錯的話,就會顯示{"errcode":40029,"errmsg":"invalid code"}
PHP應用
3)利用openid和access_token獲取用戶的頭像昵稱等基本信息.PHP應用
PHP應用
代碼:PHP應用
$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);
就可以打印出用戶的基本信息,然后只要入庫就可以了.PHP應用
這邊還有個問題,就是我這邊用到的一個函數https_requestPHP應用
他在function中的源代碼:PHP應用
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; }
這樣應該沒有問題了,就是授權的全部內容.PHP應用
以上所述是小編給大家介紹的微信公眾號OAuth2.0網頁授權問題淺析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的.在此也非常感謝大家對維易PHP網站的支持!PHP應用
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/1925.html