php 實戰 微信公眾號 開發(獲取使用者資訊)
阿新 • • 發佈:2019-01-03
PHP 微信開發(獲取使用者資訊):
獲取使用者資訊的大致演算法是
使用者授權登入第三方網站,
重點:scope引數:
snsapi_basic 靜默登入,不需要使用者授權,只能獲取到openid;
snsapi_userinfo ,需要使用者點選授權,能獲取到openid和所有使用者資訊;
第一步:先獲取使用者的code值;
第二步:根據code值去獲取access_token,每次請求的值都不一樣,如果沒有使用,每五分鐘更新一次;
第三步:根據access_token獲取使用者資訊;
1.獲取code程式碼實現:
#getcode.php
if(isset ($_SESSION['user'])){
print_r($_SESSION['user']);
exit;
}
$appid='wx1d7c6fcd6131143b3';
$redirect_url="http://www.antfortune.vip/callback.php";
$scope='snsapi_userinfo';//獲取的方式;
$url='https://open.weixin.qq.com/connect/oauth2/authorize?'
appid='.$appid.'&redirect_uri='.urlencode($redirect_url).'&response_type=code&scope='.$scope.'&state=123#wechat_redirect';
header("Location:".$url);
2、根據code獲取access_token和openid
#getOpenid.php
<?php
//獲取使用者openid
$appid="your appid";
$appsecret="your appsecret" ;
$code=$_GET['code'];
function getOpenID($appid,$appsecret,$code){
$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".
$appsecret."&code=".$code."&grant_type=authorization_code";
$weixin=file_get_contents($url);//通過code換取網頁授權access_token
$jsondecode=json_decode($weixin); //對JSON格式的字串進行編碼
$array = get_object_vars($jsondecode);//轉換成陣列
$openid = $array['openid'];//輸出openid
return $openid;
}
echo getOpenID($appid,$appsecret,$code);