前言
- 一直在用整理下tp5 开发微信公众号获取用户信息的简单笔记 废话不多说 直接贴代码如下:
正文
准备工作
- 在微信公众平台的开发者工具中申请公众平台测试账号如下图

- 在网页账号中 修改网页授权获取基本信息


代码
Route::any("getWxBase",'home/Index/getWxForBase');
Route::any("getWxInfo",'home/Index/getWxBaseInfo');
Route::any("getWxForDetail",'home/Index/getWxForDetail');
Route::any("getWxDetail",'home/Index/getWxDetail');
public function get_by_curl($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);
}
public function getWxForBase()
{
$appid = "wx****************2";
$redirect_uri = urlencode("http://XXXXXXXXX.cn/Index/getWxInfo");
$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_base&state=123#wechat_redirect";
$this->redirect($url, 302);
}
public function getWxBaseInfo()
{
$appID = "wx***********2";
$appSecret = "5b9************35";
$Code = $_GET['code'];
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appID."&secret=".$appSecret."&code=".$Code."&grant_type=authorization_code";
$res = $this->get_by_curl($url);
var_dump($res);
die;
return $res;
}
public function getWxForDetail()
{
$appid = "wx***********22";
$redirect_uri = urlencode("http://XXXXXXXXXXXXX.cn/Index/getWxDetail");
$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_userinfo&state=1234#wechat_redirect";
$this->redirect($url, 302);;
}
public function getWxDetail()
{
$appID = "wx**********2";
$appSecret = "5b9**************1c35";
$Code = $_GET['code'];
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appID."&secret=".$appSecret."&code=".$Code."&grant_type=authorization_code";
$res = $this->get_by_curl($url);
$access_token = $res['access_token'];
$openId = $res['openid'];
$url1 = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openId."&lang=zh_CN";
$info = $this->get_by_curl($url1);
var_dump($info);die;
return $info;
}