Files
thinksaas_lmve/app/user/action/wxlogin.php
T
2023-06-22 13:33:25 +08:00

181 lines
5.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
defined('IN_TS') or die('Access Denied.');
use EasyWeChat\Factory;
$config = [
'app_id' => $TS_SITE['weixin_appid'],
'secret' => $TS_SITE['weixin_appsecret'],
];
$app = Factory::officialAccount($config);
$oauth = $app->oauth;
// 获取 OAuth 授权结果用户信息
$user = $oauth->user();
// $user 可以用的方法:
// $user->getId(); // 对应微信的 OPENID
// $user->getNickname(); // 对应微信的 nickname
// $user->getName(); // 对应微信的 nickname
// $user->getAvatar(); // 头像网址
// $user->getOriginal(); // 原始API返回的结果
// $user->getToken(); // access_token 比如用于地址共享时使用
if($user->getToken() && $user->getId()){
$openid = $user->getId();
$access_token = $user->getToken();
$strOpen = $new['user']->find('user_open',array(
'sitename'=>'weixin',
'openid'=>$openid,
));
//10天更换一次access_token
if(time()-10*86400>$strOpen['uptime']){
$new['user']->update('user_open',array(
'sitename'=>'weixin',
'openid'=>$openid,
),array(
'access_token'=>$access_token,
'uptime'=>time(),
));
}
if($strOpen['userid']){
/*
$userid = $strOpen['userid'];
$username = $user->getNickname();
$userface = $user->getAvatar();
//更新用户头像
if($userface!='' && $userface!='/0'){
//1000个图片一个目录
$menu2=intval($userid/1000);
$menu1=intval($menu2/1000);
$menu = $menu1.'/'.$menu2;
$photo = $userid.'.jpg';
$photos = $menu.'/'.$photo;
$dir = 'uploadfile/user/'.$menu;
$dfile = $dir.'/'.$photo;
createFolders($dir);
if(!is_file($dfile)){
$img = file_get_contents($userface);
file_put_contents($dfile,$img);
};
$new['user']->update('user_info',array(
'userid'=>$userid,
),array(
'path'=>$menu,
'face'=>$photos,
));
}
*/
//更新登录时间
$new['user']->update('user_info',array(
'userid'=>$strOpen['userid'],
),array(
//'username'=>$username,
'ip'=>getIp(), //更新登录ip
'uptime'=>time(), //更新登录时间
));
//用户session信息
$sessionData = $new['user']->sessionData($strOpen['userid']);
$_SESSION['tsuser'] = $sessionData;
if($_COOKIE['wx_jump']){
header("Location: ".$_COOKIE['wx_jump']);
}else{
header("Location: ".SITE_URL);
}
exit;
}else{
$salt = md5(rand());
$pwd = random(5,0);
$userid = $new['user']->create('user',array(
'pwd'=>md5($salt.$pwd),
'salt'=>$salt,
'email'=>$openid,
'phone'=>$openid,
));
$username = $user->getNickname();
$userface = $user->getAvatar();
//插入ts_user_info
$new['user']->create('user_info',array(
'userid' => $userid,
'username' => $username,
'email' => $openid,
'phone' => $openid,
'ip' => getIp(),
'addtime' => time(),
'uptime' => time(),
));
//插入ts_user_open
$new['user']->create('user_open',array(
'userid'=>$userid,
'sitename'=>'weixin',
'openid' => $openid,
'access_token'=>$access_token,
'uptime'=>time(),
));
//更新用户头像
if($userface!='' && $userface!='/0'){
//1000个图片一个目录
$menu2=intval($userid/1000);
$menu1=intval($menu2/1000);
$menu = $menu1.'/'.$menu2;
$photo = $userid.'.jpg';
$photos = $menu.'/'.$photo;
$dir = 'uploadfile/user/'.$menu;
$dfile = $dir.'/'.$photo;
createFolders($dir);
if(!is_file($dfile)){
$img = file_get_contents($userface);
file_put_contents($dfile,$img);
};
$new['user']->update('user_info',array(
'userid'=>$userid,
),array(
'path'=>$menu,
'face'=>$photos,
));
}
//发送系统消息(恭喜注册成功)
$msg_userid = '0';
$msg_touserid = $userid;
$msg_content = '亲爱的微信用户 '.$username.' :您成功加入了 '
.$TS_SITE['site_title'].'在遵守本站的规定的同时,享受您的愉快之旅吧!';
aac('message')->sendmsg($msg_userid,$msg_touserid,$msg_content);
//用户session信息
$sessionData = $new['user']->sessionData($userid);
$_SESSION['tsuser'] = $sessionData;
if($_COOKIE['wx_jump']){
header("Location: ".$_COOKIE['wx_jump']);
}else{
header("Location: ".SITE_URL);
}
exit;
}
}