1. 程式人生 > >微信 獲取 使用者資訊訪問授權管理

微信 獲取 使用者資訊訪問授權管理

define( "WX_APPID" ,$appid); //公眾號的appid
define( "WX_SRC" , $screat ); 公眾號seceat

 

define( "WX_CALLBACK_URLL" , $serverName.'/parter/weixin/callback2.php' ); //登入之後回撥地址

1.微信通過 appid 和 appsereat 獲取 code; 


header('location:https://open.weixin.qq.com/connect/oauth2/authorize?appid='.WX_APPID.'&redirect_uri='.urlencode(WX_CALLBACK_URLL).'&response_type=code&scope='.WX_U.'&state=STATE#wechat_redirect');

 

array ( [code] => 061CVJUq0F85Pp1xXPXq02M8Vq0CVJUx [state] => STATE ) 獲取到code

 

 

 

2.通過code 獲取 token,和 openid 繫結微信開放平臺會有 unid;

 

使用code換取access_token

換取網頁授權access_token頁面的構造方式:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

引數說明

引數

是否必須

說明

appid

公眾號的唯一標識

secret

公眾號的appsecret

code

填寫第一步獲取的code引數

grant_type

填寫為authorization_code

code:在這裡填寫為上一步獲得的值。

curl_get_https請求方法。(提示 :高版本的 直接 用 file_get_content 就可以)

function curl_get_https($url){
    $curl = curl_init(); // 啟動一個CURL會話
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳過證書檢查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);  // 從證書中檢查SSL加密演算法是否存在
    $tmpInfo = curl_exec($curl);     //返回api的json物件
    //關閉URL請求
    curl_close($curl);
    return $tmpInfo;    //返回json物件

}

列印如下: 

$get_token_url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.WX_APPID.'&secret='.WX_SRC.'&code='.$code.'&grant_type=authorization_code';
$res = curl_get_https($get_token_url); //獲取檔案內容或獲取網路請求的內容
$json_obj = json_decode($res,true); 

 

3.通過token 和 openid 請求獲取到 使用者資訊和 跳轉。

 

通過access_token、openid獲取使用者資訊 

請求方法:

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

  引數說明

引數

描述

access_token

網頁授權介面呼叫憑證,注意:此access_token與基礎支援的access_token不同

openid

使用者的唯一標識

$get_user_info_url='https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN'; 
$res = curl_get_https($get_user_info_url); //獲取檔案內容或獲取網路請求的內


//解析json 

$user_obj = json_decode($res,true);