微信公众平台 获取用户信息
建立 index.php getuserinfo.php
index.php:
$appid=’appid’;
$redirect_uri = urlencode(‘http://域名/getuserinfo’);
$url =”https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=1#wechat_redirect”;
header(“Location:”.$url);
getuserinfo.php:
$appid = “appid”;
$secret = “secret”;
$code = $_GET[“code”];
//第一步:取全局access_token
$url = “https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret”;
$token = $this->getJson($url);
//第二步:取得openid
$oauth2=array();
$oauth2Url = “https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code”;
$oauth2 = $this->getJson($oauth2Url);
session(‘openid’,isset($oauth2[‘openid’])?$oauth2[‘openid’]:””);
//第三步:根据全局access_token和openid查询用户信息
$access_token = $token[“access_token”];
$openid = session(‘openid’);
$get_user_info_url = “https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN”;
$userinfo = $this->getJson($get_user_info_url);
//用户信息$userinfo
print_r($userinfo)
}
session(‘nickname’,$nickname);
$city = Db::name(‘jing’)->where(‘wx’, ‘eq’, $nickname)->distinct(true)->field(‘city’)->select();
$this->assign(‘city’,$city);
$this->assign(‘nickname’,$nickname);
return view(‘index’);
}
function getJson($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output, true);
}
标签:function, PHP