snsapi_userinfo方式获取用户信息
config.php 存放appid和appsecret
<?php
$config = [
'appid' => '************',
'appsecret' => '*******************',
];
test.php跳转并获取code
<?php require_once './config.php'; $appid = $config['appid']; $redirect_uri = urlencode('http://www.haoyiya.cn/weixin/auth.php'); //授权url $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; //如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。 header("location:$url"); exit;
auth.php获取用户信息
<?php header("Content-type:text/html;charset=utf-8"); require_once './config.php'; //获取code if (isset($_GET['code'])){ $code = $_GET['code']; }else{ die("NO CODE"); } $obj = new snsapi_userinfo; //获取access_token和openid $res = $obj->access_token($config['appid'],$config['appsecret'],$code); //获取用户信息 $userInfo = $obj->userInfo($res->access_token,$res->openid); //输出用户信息 echo "<h1>"; print_r($userInfo); echo "</h1>"; /** * Class snsapi_userinfo * 获取用户信息 */ class snsapi_userinfo{ //获取access_token和openid public function access_token($appid,$appsecret,$code){ $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code"; $res = json_decode($this->httpGet($url)); return $res; } public function userInfo($access_token,$openid){ $userUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN"; $res = json_decode($this->httpGet($userUrl)); return $res; } //curl方式获取返回值 public function httpGet($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res; } }