PHP 微信开发(获取用户信息):
重点:scope参数:(授权方式)
snsapi_basic 静默登录,不需要用户授权,只能获取到openid;
snsapi_userinfo ,需要用户点击授权,能获取到openid和所有用户信息;
第一步:先获取用户的code值;
第二步:根据code值去获取access_token,每次请求的值都不一样,如果没有使用,每五分钟更新一次;
第三步:根据access_token获取用户信息;
- 配置:
- 获取code代码实现:
$url_old= 'http://xxxx.cn/index.php/xxxx';//回调地址
$url_new = urlencode($url_old);//回调地址转义
$scope='snsapi_userinfo';//获取的方式;
$url='https://open.weixin.qq.com/connect/oauth2/authorize?'
appid='.$appid.'&redirect_uri='.$redirect_url.'&response_type=code&scope='.$scope.'&state=123#wechat_redirect';
2.根据code获取access_token和openid然后根据access_token获取用户信息;
/**
* 用code换取userinfo(openid)
* @return mixed
*/
public function get_info(){
$code=$_GET['code'];//获取code
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".APP_ID."&secret=".SECRET."&code=".$code."&grant_type=authorization_code";
$info=$this->postcurl($url);//获取access_token
$access_token = $info['access_token'];
$url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=OPENID&lang=zh_CN";
$u_info=$this->postcurl($url);//获取userinfo
return $u_info;
}