顺晟科技
2021-06-16 10:56:53
462
我们在开发微信公众号页面时,在里面的页面需要获取到用户信息。
按道理来说,网页是无法获取到微信用户到信息,但是只有从公众号打开到时候,就可以获取到了。
我们来看一下流程。
用户点击微信自定义菜单视角类型按钮后,微信客户端将会打开开发者在按钮中填写的全球资源定位器(统一资源定位符)值(即网页链接),
达到打开网页的目的,但是视角不能获取用户的openid,需要使用微信"网页授权获取用户基本信息"接口结合使用,获得用户的登入个人信息。
具体方法:
1、配置网页授权回调域名,如www.oicqzone.com
2、公众号的第三方登录网页
请求页面:http://www .oicqzone。请访问Microsoft.com/getcodeurl。服务器端编程语言(Professional Hypertext Preprocessor的缩写)
?服务器端编程语言(专业超文本预处理器的缩写)
if(isset($ _ SESSION[' user ']){
print _ r($ _ SESSION[' user ']);
退出;
}
$APPID='公众号在微信的appid ';
$ REDIRECT _ URI=' http://www .oicqzone。com/callback。PHP ';
$ scope=' snsapi _ base
//$ scope=' SNS API _ user info ';//需要授权
$ URL=' https://打开。微信。QQ。com/connect/oauth 2/authorize?appid=' .$APPID .重定向_uri=' .urlencode($REDIRECT_URI).response_type=codescope=' .$scope .状态=' .$state .#微信_重定向;
标题(' Location: ' .$ URL);
?
3、第三方网页的回跳全球资源定位器(统一资源定位符)中,首先从请求中取得代码,然后根据密码进一步换取信息和access_token,然后就可以根据信息和access_token调用微信的相关接口查询用户信息了。
回调页面:http://www .艾克斯。com/callback。服务器端编程语言(Professional Hypertext Preprocessor的缩写)
?服务器端编程语言(专业超文本预处理器的缩写)
$appid='公众号在微信的appid ';
$secret='公众号在微信的app secret ';
$ code=$ _ GET[' code '];
$ get _ token _ URL='https://api.weixin.qq.com/sns/oauth2/access_token?appid=' .$appid .秘密=' .$秘密。代码='。$代码grant _ type=authorization _ code ';
$ ch=curl _ init();
curl_setopt($ch,CURLOPT_URL,$ get _ token _ URL);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT _ CONNECTTIMEOUT,10);
$ RES=curl _ exec($ ch);
curl _ close($ ch);
$json_obj=json_decode($res,true);
//根据信息和access_token查询用户信息
$ access _ token=$ JSON _ obj[' access _ token '];
$ open id=$ JSON _ obj[' open id '];
$ get _ user _ info _ URL='https://api.weixin.qq.com/sns/userinfo?access_token=' .$access_token .openid=' .$openid .lang=zh _ CN ';
$ ch=curl _ init();
curl_setopt($ch,CURLOPT_URL,$ get _ user _ info _ URL);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT _ CONNECTTIMEOUT,10);
$ RES=curl _ exec($ ch);
curl _ close($ ch);
//解析数据
$user_obj=json_decode($res,true);
$ _ SESSION[' user ']=$ user _ obj;
print _ r($ user _ obj);
?
28
1990-12
02
2022-09
04
2022-06
17
2022-03
29
2021-08
29
2021-08