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
);
|