PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > CMS教程 > ecshop教程 > 正文

    微信自动登录并获取昵称的例子

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:微信自动登录并获取昵称是可以通过api接口来获取的也是通过微信开放的接口来实现了,下面我们一起来看一个例子仅记录:微信获取昵称自动登...
    微信自动登录并获取昵称是可以通过api接口来获取的也是通过微信开放的接口来实现了,下面我们一起来看一个例子

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

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

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

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

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

    1. /**
    2. * 获取当前页面完整URL地址
    3. */
    4. function get_url() { 
    5. $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://'
    6. $php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']; 
    7.  
    8. $path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : ''
    9. $relate_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$_SERVER['QUERY_STRING'] : $path_info); 
    10. return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url
    11.  
    12.  
    13. $wxch_config = $db -> getRow("SELECT * FROM `ecs_weixin_config` WHERE `id` = 1"); 
    14. $appid = $wxch_config['appid']; 
    15. $appsecret = $wxch_config['appsecret']; 
    16.  
    17. $APPID = $appid
    18. $SCRETID =$appsecret
    19.  
    20. if(!$_SESSION['user_id'] && strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false){ 
    21.  
    22. if (!isset($_GET['code'])) 
    23.  
    24. $backurl = get_url(); 
    25. //$url = $jsApi->createOauthUrlForCode($backurl);
    26. $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"
    27. //echo $url;
    28. Header("Location: $url"); 
    29. }else
    30. //获取code码,以获取openid
    31. $code = $_GET['code']; 
    32.  
    33. $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$APPID."&secret=".$SCRETID."&code=".$code."&grant_type=authorization_code"
    34. $re = curl_get_contents1($url); 
    35. $rearr = json_decode($re,true); 
    36. $openid = $rearr['openid']; 
    37.  
    38.  
    39.  
    40.  
    41. //var_dump($rearr);
    42. //$jsApi->setCode($code);
    43. //$openid = $jsApi->getOpenid();
    44.  
    45. $user_name = $db->getOne("select uname from ecs_weixin_user where wxid = '{$openid}'"); 
    46.  
    47. if($openid && !$user_name){ //注册进入
    48. $passw = md5('shanmao.me'.rand(1,18650144002)); 
    49. $wxch_user_sql = "INSERT INTO `ecs_weixin_user` (`wxid`,`setp`) VALUES ('$openid','3')"
    50. $db -> query($wxch_user_sql);  
    51. $ecs_user_id = $db -> insert_id(); 
    52. if($ecs_user_id<=0){ 
    53. exit('error get insert_id'); 
    54.  
    55. $url3 = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$APPID."&secret=".$SCRETID
    56. $re3 = curl_get_contents1($url3); 
    57. $re3arr = json_decode($re3,true); 
    58. $token = $re3arr['access_token']; 
    59. $url2 = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$openid."&lang=zh_CN"
    60. $re2 = curl_get_contents1($url2);  
    61. $rearr2 = json_decode($re2,true); 
    62.  
    63. $uc_username = $rearr2['nickname']?$rearr2['nickname']: 'doubag' . $ecs_user_id
    64. $time = gmtime(); 
    65. $user_sql = "INSERT INTO `ecs_users` (`user_name`,`password`,`reg_time`) VALUES ('$uc_username','$passw','$time')"
    66. $db -> query($user_sql); 
    67. $uc_update = "UPDATE ecs_weixin_user SET `uname` = '$uc_username' WHERE `uid` = '$ecs_user_id'"
    68. $db -> query($uc_update);  
    69. $user->set_session($uc_username);  
    70. $user->set_cookie($uc_username,1); 
    71. update_user_info(); 
    72.  
    73. /*
    74. $up_uid = get_affiliate();
    75. if($up_uid>0){ 
    76. $sql = 'UPDATE ecs_users SET parent_id = ' . $up_uid . ' WHERE user_id = ' . $ecs_user_id;
    77. $db ->query($sql);
    78. header('Location: user.php?newuser=1');
    79. }*/
    80.  
    81. }else
    82. $user->set_session($user_name);  
    83. $user->set_cookie($user_name,1); 
    84. update_user_info(); 
    85.  
    86.  
    87.  
    88. //setcookie("sopenid",$openid,time()+864000,'/');
    89. //var_dump($openid);
    90. //www.bcty365.com
    91. function curl_get_contents1($url) { 
    92. $ch = curl_init(); 
    93. curl_setopt($ch, CURLOPT_URL, $url); 
    94. curl_setopt($ch, CURLOPT_TIMEOUT, 2); 
    95. curl_setopt($ch, CURLOPT_USERAGENT, "IE 6.0"); 
    96. curl_setopt($ch, CURLOPT_REFERER, ""); 
    97. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    98. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    99. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    100. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
    101. $r = curl_exec($ch); 
    102. curl_close($ch); 
    103. return $r
    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-104-3141-1.html
    相关热词搜索: