php版微信自动登录并获取昵称的方法

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php版微信自动登录并获取昵称的方法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP版微信自动登录获取昵称方法分享给大家供大家参考,具体如下:

微信自动登录获取昵称是可以通过api接口来获取的也是通过微信开放的接口来实现了,下面我们一起来看一个例子

仅记录:微信获取昵称自动登录

经过反复几次验证,发现我这个方法有缺陷:

微信内 未关注进入网站,无法获得昵称。

关注后用我这个方法可以获得昵称。

是否是因为第一次生成oPEnid 所以还未生成昵称?待测试.

 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;
}

脚本宝典总结

以上是脚本宝典为你收集整理的php版微信自动登录并获取昵称的方法全部内容,希望文章能够帮你解决php版微信自动登录并获取昵称的方法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。