php 微信开发获取用户信息如何实现

php 微信开发获取用户信息

获取用户信息的大致算法是

用户授权登录第三方网站,

重点:scope参数:
snsapi_basic 静默登录,不需要用户授权,只能获取到openid;
snsapi_userinfo ,需要用户点击授权,能获取到openid和所有用户信息;

第一步:先获取用户的code值;
第二步:根据code值去获取access_token,每次请求的值都不一样,如果没有使用,每五分钟更新一次;
第三步:根据access_token获取用户信息;

1.获取code代码实现:

php 微信开发获取用户信息如何实现

php 微信开发获取用户信息如何实现

getcode.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(isset($_SESSION['user'])){
print_r($_SESSION['user']);
exit;
}
 
$appid='wx1d7c6fcd6131143b3';
 
$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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
getOpenid.php
 
 
 
<?php
//获取用户openid
$appid="your appid";
$appsecret="your appsecret";
$code=$_GET['code'];
 
 
 
function getOpenID($appid,$appsecret,$code){
$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);