国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

微信自動登錄并獲取昵稱的例子

2024-05-04 21:49:54
字體:
來源:轉載
供稿:網友

微信自動登錄并獲取昵稱是可以通過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. //Vevb.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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陆河县| 清河县| 西畴县| 张家界市| 乐山市| 乡城县| 宜川县| 九龙城区| 中西区| 宁阳县| 利川市| 东方市| 明溪县| 颍上县| 盐池县| 葫芦岛市| 朝阳县| 绥滨县| 上栗县| 张掖市| 滁州市| 侯马市| 元阳县| 拜泉县| 长阳| 朝阳区| 丰顺县| 洛扎县| 姚安县| 大埔区| 蓬莱市| 准格尔旗| 巢湖市| 特克斯县| 淅川县| 金沙县| 长葛市| 天全县| 祁阳县| 平塘县| 政和县|