php 微信开发获取用户信息
获取用户信息的大致算法是
用户授权登录第三方网站,
重点:scope参数:
snsapi_basic 静默登录,不需要用户授权,只能获取到openid;
snsapi_userinfo ,需要用户点击授权,能获取到openid和所有用户信息;
第一步:先获取用户的code值;
第二步:根据code值去获取access_token,每次请求的值都不一样,如果没有使用,每五分钟更新一次;
第三步:根据access_token获取用户信息;
1.获取code代码实现:
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 );
|