微信開發筆記:獲取用戶openid,以及用戶頭像昵稱等信息


微信開發的時候有一個很便利的途徑來進行一個用戶的一步注冊登錄,就是使用用戶的微信信息來直接進行登陸,可以省去很多不必要的麻煩。那具體這些信息是如何來獲取的呢?

首先呢,我們需要對微信進行一個授權,讓微信頁面有權限來讀取我們的用戶信息:

$redirect_uri = urlencode($url); //設置授權頁面,此處填寫回調的授權頁面地址
$scope = 'snsapi_userinfo'; 
$appid = APPID;

$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appid}&redirect_uri={$redirect_uri}&response_type=code&scope={$scope}&state=1#wechat_redirect";

header('location:'.$url);    

scope表示一個對用戶的一個授權方式,這里我們用snsapi_userinfo也就是彈出式的授權,可以在用戶沒有關注公主號的情況下一樣進行用戶信息的獲取。

appid就是我們公眾號的appid。

回調的地址是在跳轉完以后,微信平台會把用戶端的頁面跳轉到這個回調的地址上,並且將一個code以get的形式發送過來,具體的處理方式是這樣的:

function https_request($url){
    $curl = curl_init();  //初始化一個cURL會話
        
    //設置請求選項, 包括具體的url
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);  //禁用后cURL將終止從服務端進行驗證
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curl,CURLOPT_HEADER,0); //
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); //
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);        
    $response = curl_exec($curl);  
    curl_close($curl);
        
    $jsoninfo = json_decode($response,true); 
    return $jsoninfo;
}    

$code = $_GET["code"];
$token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code";
$token_info = https_request($token_url);

//根據openid和access_token查詢用戶信息 
$access_token = $token_info['access_token']; 
$openid = $token_info['openid'];

$userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN"; 
$user_info = https_request($userinfo_url);

我們從微信平台獲得了code以后,就可以去交換access_token以及open_id了,有了access_token和open_id就可以最終獲得我們需要的用戶信息了,最后提醒下讀者,不要忘記再頁面的最后跳轉回之前用戶訪問的頁面哦,否則用戶信息是獲取到了,而用戶界面就只有一個大白屏了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM