微信 獲取 使用者資訊訪問授權管理
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);