微信授权问题
在web开发者工具调试就有
没问题
授权登陆的页面
但是到了手机测试
就没有这个页面但是也可以获取openid 这是什么原因?
代码应该是没问题的,因为另一个项目没有出现这种问题
//根据授权code获取用户id
public static function weixin(){
$code=!empty($_GET['code'])?trim($_GET['code']):'';
if(!$code){
header("location:https://open.weixin.qq.com/connect/oauth2/authorize?appid=".APPID."&redirect_uri=http%3a%2f%2fjiaogui.sunaon.com&response_type=code&scope=snsapi_userinfo#wechat_redirect");
exit;
}
//获取access_token跟openid
$pdata=array(
'appid'=>APPID,
'secret'=>APPSECRET,
'code'=>$code,
'grant_type'=>'authorization_code'
);
$data=self::post("https://api.weixin.qq.com/sns/oauth2/access_token",$pdata);
$data=json_decode($data);
$access_token=$data->access_token;
$openid=$data->openid;
//将用户的信息录到数据库去
self::post_user_info($openid,$access_token);
//var_dump($openid);exit;
echo $openid;
}
public static function post($url,$data){
$postdata = http_build_query($data);
$opts = array('http' =>array('method'=>'POST','header'=>'Content-type: application/x-www-form-urlencoded','content'=>$postdata));
$context = stream_context_create($opts);
$result = file_get_contents($url,true,$context);
return $result;
}
public static function post_user_info($openid,$access_token){
$sql="select * from `user_info` where `openid`='{$openid}'";
$user=Db::getAll($sql);
if(!$user){
$url = "https://api.weixin.qq.com/sns/userinfo?access_token={$access_token}&openid={$openid}&lang=zh_CN";
$json = file_get_contents($url);
$std = json_decode($json);
$nickname=$std->nickname;
$sex=$std->sex;
$city=$std->city;
$country=$std->country;
$province=$std->province;
$headimgurl=$std->headimgurl;
$subscribe_time=$regtime=time();
$sql="INSERT INTO `user_info` (`openid`,`sex`, `nickname`,`city`,`country`,`province`,`headimgurl`,`subscribe_time`) VALUES ('{$openid}','{$sex}','{$nickname}','{$city}','{$country}','{$province}','{$headimgurl}','{$subscribe_time}')";
$act1=Db::execute($sql);
if(!$act1){
self::error('404','获取openid失败','404');
}
session_start();
$_SESSION["userid"]=$openid;
}else{
$_SESSION["userid"]=$openid;
}
}
我将 获取用户的信息的json数据 打印出来
在web开发者工具
另一个用户手机测试是
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
微信网页授权有两种
一种是至获取openid,静默授权,不能获取昵称 地区头像等信息
另一种是 可以获取 昵称 地区头像等信息 需要像你截图的弹窗确认
微信公众号获取有两种授权方式,请认真看一下微信公众号开发文档