123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- <?php
- /**
- * QQ互联登录
- *
- *
- ***/
- defined('InShopNC') or exit('Access Invalid!');
- class connectControl extends BaseHomeControl{
- public function __construct(){
- parent::__construct();
- Language::read("home_login_register,home_login_index,home_qqconnect");
- /**
- * 判断qq互联功能是否开启
- */
- if (C('qq_isuse') != 1){
- showMessage(Language::get('home_qqconnect_unavailable'),'index.php','html','error');//'系统未开启QQ互联功能'
- }
- /**
- * 初始化测试数据
- */
- if (!$_SESSION['openid']){
- showMessage(Language::get('home_qqconnect_error'),'index.php','html','error');//'系统错误'
- }
- Tpl::output('hidden_nctoolbar', 1);
- }
- /**
- * 首页
- */
- public function indexOp(){
- /**
- * 检查登录状态
- */
- if($_SESSION['is_login'] == '1') {
- //qq绑定
- $this->bindqqOp();
- }else {
- $this->autologin();
- $this->registerOp();
- }
- }
- /**
- * qq绑定新用户
- */
- public function registerOp(){
- //实例化模型
- $model_member = Model('member');
- if (chksubmit()){
- $update_info = array();
- $update_info['member_passwd']= md5(trim($_POST["password"]));
- if(!empty($_POST["email"])) {
- $update_info['member_email']= $_POST["email"];
- $_SESSION['member_email']= $_POST["email"];
- }
- $model_member->editMember(array('member_id'=>$_SESSION['member_id']),$update_info);
- showMessage(Language::get('nc_common_save_succ'),SHOP_SITE_URL);
- }else {
- //检查登录状态
- $model_member->checkloginMember();
- //获取qq账号信息
- require_once (BASE_PATH.'/api/qq/user/get_user_info.php');
- $qquser_info = get_user_info($_SESSION["appid"], $_SESSION["appkey"], $_SESSION["token"], $_SESSION["secret"], $_SESSION["openid"]);
- Tpl::output('qquser_info',$qquser_info);
- //处理qq账号信息
- $qquser_info['nickname'] = trim($qquser_info['nickname']);
- $user_passwd = rand(100000, 999999);
- /**
- * 会员添加
- */
- $user_array = array();
- $user_array['member_name'] = $qquser_info['nickname'];
- $user_array['member_passwd'] = $user_passwd;
- $user_array['member_email'] = '';
- $user_array['member_qqopenid'] = $_SESSION['openid'];//qq openid
- $user_array['member_qqinfo'] = serialize($qquser_info);//qq 信息
- $rand = rand(100, 899);
- if(strlen($user_array['member_name']) < 3) $user_array['member_name'] = $qquser_info['nickname'].$rand;
- $check_member_name = $model_member->getMemberInfo(array('member_name'=>trim($user_array['member_name'])));
- $result = 0;
- if(empty($check_member_name)) {
- $result = $model_member->addMember($user_array);
- }else {
- $user_array['member_name'] = trim($qquser_info['nickname']).$rand;
- $check_member_name = $model_member->getMemberInfo(array('member_name'=>trim($user_array['member_name'])));
- if(empty($check_member_name)) {
- $result = $model_member->addMember($user_array);
- }else {
- for ($i = 1;$i < 999999;$i++) {
- $rand = $rand+$i;
- $user_array['member_name'] = trim($qquser_info['nickname']).$rand;
- $check_member_name = $model_member->getMemberInfo(array('member_name'=>trim($user_array['member_name'])));
- if(empty($check_member_name)) {
- $result = $model_member->addMember($user_array);
- break;
- }
- }
- }
- }
- if($result) {
- Tpl::output('user_passwd',$user_passwd);
- $avatar = @copy($qquser_info['figureurl_qq_2'],BASE_UPLOAD_PATH.'/'.ATTACH_AVATAR."/avatar_$result.jpg");
- $update_info = array();
- if($avatar) {
- $update_info['member_avatar'] = "avatar_$result.jpg";
- $model_member->editMember(array('member_id'=>$result),$update_info);
- $user_array['member_avatar'] = "avatar_$result.jpg";
- }
- $user_array['member_id'] = $result;
- $model_member->createSession($user_array);
- Tpl::showpage('connect_register');
- } else {
- showMessage(Language::get('login_usersave_regist_fail'),SHOP_SITE_URL.'/index.php?act=login&op=register','html','error');//"会员注册失败"
- }
- }
- }
- /**
- * 已有用户绑定QQ
- */
- public function bindqqOp(){
- $model_member = Model('member');
- //验证QQ账号用户是否已经存在
- $array = array();
- $array['member_qqopenid'] = $_SESSION['openid'];
- $member_info = $model_member->getMemberInfo($array);
- if (is_array($member_info) && count($member_info)>0){
- unset($_SESSION['openid']);
- showMessage(Language::get('home_qqconnect_binding_exist'),'index.php?act=member_connect&op=qqbind','html','error');//'该QQ账号已经绑定其他商城账号,请使用其他QQ账号与本账号绑定'
- }
- //获取qq账号信息
- require_once (BASE_PATH.'/api/qq/user/get_user_info.php');
- $qquser_info = get_user_info($_SESSION["appid"], $_SESSION["appkey"], $_SESSION["token"], $_SESSION["secret"], $_SESSION["openid"]);
- $edit_state = $model_member->editMember(array('member_id'=>$_SESSION['member_id']), array('member_qqopenid'=>$_SESSION['openid'], 'member_qqinfo'=>serialize($qquser_info)));
- if ($edit_state){
- showMessage(Language::get('home_qqconnect_binding_success'),'index.php?act=member_connect&op=qqbind');
- }else {
- showMessage(Language::get('home_qqconnect_binding_fail'),'index.php?act=member_connect&op=qqbind','html','error');//'绑定QQ失败'
- }
- }
- /**
- * 绑定qq后自动登录
- */
- public function autologin(){
- //查询是否已经绑定该qq,已经绑定则直接跳转
- $model_member = Model('member');
- $array = array();
- $array['member_qqopenid'] = $_SESSION['openid'];
- $member_info = $model_member->getMemberInfo($array);
- if (is_array($member_info) && count($member_info)>0){
- if(!$member_info['member_state']){//1为启用 0 为禁用
- showMessage(Language::get('nc_notallowed_login'),'','html','error');
- }
- $model_member->createSession($member_info);
- $success_message = Language::get('login_index_login_success');
- showMessage($success_message,SHOP_SITE_URL);
- }
- }
- /**
- * 更换绑定QQ号码
- */
- public function changeqqOp(){
- //如果用户已经登录,进入此链接则显示错误
- if($_SESSION['is_login'] == '1') {
- showMessage(Language::get('home_qqconnect_error'),'index.php','html','error');//'系统错误'
- }
- unset($_SESSION['openid']);
- @header('Location:'.SHOP_SITE_URL.'/api.php?act=toqq');
- exit;
- }
- }
|