通过微信的接口获取用户的一些信息

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 17:49   11   0

先说下微信自动授权,在微信平台,为了获取用户的信息,都需要给初次登陆的微信用户弹出一个授权框给用户点击,允许之后进行跳转至指定页面,然后在这页面获取到用户的code信息,有了这个code信息,就可以获取用户N多的用户信息了(除了手机号码)。

首先,我们需要引入微信的公众类,引入类的同时需要传入相关验证信息,才可正常使用;

$param = array(
'token'=> '3**7c0*********************51',
'appid'=> 'w*****dd**********************6783fc',
'appsecret'=> 'db*****************************8b133'
);

$this->weixin = new \Library\Wechat\Wechat($param);

然后,设置一个外部调用的接口,这个接口在微信页面调用,然后接口内直接跳转至微信的授权页面,注意,要传入回调的Url,用户授权成功之后,会自动带上用户的code跳转至回调url处;

$state = "2";//默认
$scope = "snsapi_userinfo";//默认

$url = "http://自己的网址url/index.php/WechatInfo/get_unionid_info.html //用户授权之后,回调的地址Url

$u = $this->weixin->getOauthRedirect($url, $state, $scope);

//getOauthRedirect是微信公众类自带的方法,无需自己写,直接调用;

if (isset($u)) {
Header("HTTP/1.1 303 See Other");
Header("Location: $u"); //跳转之后,微信页面会自动弹出一个授权框
exit;
}

最后,用户授权之后,就可以在会调的方法接收回传的code,接收到code就可以通过微信的接口去调取用户的open_id,unionid,access_token和refresh_token这几项非常重要的信息。然后,如有必要,还可以利用获得的access_token和open_id通过微信的接口去获取用户的微信昵称、头像、性别、所在城市、所在国家、语言等等的相关信息呢。

(1)通过code,获取信息;

$new_code_now = I("code");

$info_url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=“.{$appid}.”&secret=".{$secret}."&code=".$new_code_now."&grant_type=authorization_code";

$info_arr = file_get_contents($info_url);

$info_arr = json_decode($info_arr , TRUE );

$open_id = $info_arr ['openid'];
$unionid = $info_arr ['unionid'];
$access_token = $info_arr ['access_token'];
$refresh_token = $info_arr ['refresh_token'];

(2)通过access_token和open_id获取微信用户的基本信息(不能获取手机号码)

$user_info_url= "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$open_id."&lang=zh_CN";

$user_arr = file_get_contents($user_info_url);
$user_arr = json_decode($user_arr, TRUE );

$nickname = $user_arr['nickname'];//昵称
$sex = $user_arr['sex'];//性别
$language = $user_arr['language'];//语言
$city = $user_arr['city'];//所在市
$province = $user_arr['province'];//所在市
$country = $user_arr['country'];//所在国家
$headimgurl = $user_arr['headimgurl'];//昵称

拿到这些参数,基本就可以满足业务了~

怎么样,非常简单吧!如有必要,可以随时查看微信的文档和下载微信的开发者工具调试。

以上内容仅是个人的简单理解,或许有所偏差,望理解和指出~

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP