php版微信自动登录并获取昵称的方法
微信(小程序)  /  管理员 发布于 6年前   129
本文实例讲述了php版微信自动登录并获取昵称的方法。分享给大家供大家参考,具体如下: 微信自动登录并获取昵称是可以通过api接口来获取的也是通过微信开放的接口来实现了,下面我们一起来看一个例子 仅记录:微信获取昵称自动登录 经过反复几次验证,发现我这个方法有缺陷: 微信内 未关注进入网站,无法获得昵称。 关注后用我这个方法可以获得昵称。 是否是因为第一次生成openid 所以还未生成昵称?待测试. 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP微信开发技巧汇总》、《PHP编码与转码操作技巧汇总》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家PHP程序设计有所帮助。/*** 获取当前页面完整URL地址*/function get_url() {$sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';$php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];$path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';$relate_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$_SERVER['QUERY_STRING'] : $path_info);return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;}$wxch_config = $db -> getRow("SELECT * FROM `ecs_weixin_config` WHERE `id` = 1");$appid = $wxch_config['appid'];$appsecret = $wxch_config['appsecret'];$APPID = $appid;$SCRETID =$appsecret;if(!$_SESSION['user_id'] && strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false){if (!isset($_GET['code'])){$backurl = get_url();//$url = $jsApi->createOauthUrlForCode($backurl);$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$APPID."&redirect_uri=".urlencode($backurl)."&response_type=code&scope=snsapi_base&state=123#wechat_redirect";//echo $url;Header("Location: $url");}else{//获取code码,以获取openid$code = $_GET['code'];$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$APPID."&secret=".$SCRETID."&code=".$code."&grant_type=authorization_code";$re = curl_get_contents1($url);$rearr = json_decode($re,true);$openid = $rearr['openid'];//var_dump($rearr);//$jsApi->setCode($code);//$openid = $jsApi->getOpenid();$user_name = $db->getOne("select uname from ecs_weixin_user where wxid = '{$openid}'");if($openid && !$user_name){ //注册进入$passw = md5('shanmao.me'.rand(1,18650144002));$wxch_user_sql = "INSERT INTO `ecs_weixin_user` (`wxid`,`setp`) VALUES ('$openid','3')";$db -> query($wxch_user_sql);$ecs_user_id = $db -> insert_id();if($ecs_user_id<=0){exit('error get insert_id');}$url3 = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$APPID."&secret=".$SCRETID;$re3 = curl_get_contents1($url3);$re3arr = json_decode($re3,true);$token = $re3arr['access_token'];$url2 = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$openid."&lang=zh_CN";$re2 = curl_get_contents1($url2);$rearr2 = json_decode($re2,true);$uc_username = $rearr2['nickname']?$rearr2['nickname']: 'doubag' . $ecs_user_id;$time = gmtime();$user_sql = "INSERT INTO `ecs_users` (`user_name`,`password`,`reg_time`) VALUES ('$uc_username','$passw','$time')";$db -> query($user_sql);$uc_update = "UPDATE ecs_weixin_user SET `uname` = '$uc_username' WHERE `uid` = '$ecs_user_id'";$db -> query($uc_update);$user->set_session($uc_username);$user->set_cookie($uc_username,1);update_user_info();/*$up_uid = get_affiliate();if($up_uid>0){$sql = 'UPDATE ecs_users SET parent_id = ' . $up_uid . ' WHERE user_id = ' . $ecs_user_id;$db ->query($sql);header('Location: user.php?newuser=1');}*/}else{$user->set_session($user_name);$user->set_cookie($user_name,1);update_user_info();}//setcookie("sopenid",$openid,time()+864000,'/');}}//var_dump($openid);function curl_get_contents1($url) {$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_TIMEOUT, 2);curl_setopt($ch, CURLOPT_USERAGENT, "IE 6.0");curl_setopt($ch, CURLOPT_REFERER, "");curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$r = curl_exec($ch);curl_close($ch);return $r;}
您可能感兴趣的文章:
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号