Esempio n. 1
0
 public function wxcallback()
 {
     $this->load->model('user');
     $this->load->model('user_openid');
     require_once APPPATH . "libraries/WXAPI/wxConnectAPI.php";
     $qc = new QC();
     $param = $qc->callback();
     //$openid = $qc->get_openid();
     $useropenid = $this->user_openid->get_by_openid($param['openid']);
     if (isset($useropenid->user_id) && $useropenid->user_id > 0) {
         $this->user_openid->update(array('token' => $param['access_token'], 'expires' => local_to_gmt() + $param['expires_in'], 'refresh_token' => $param['refresh_token']), $useropenid->id);
         $user = $this->user->get($useropenid->user_id);
         $login_time = local_to_gmt();
         $update_row['last_login_time'] = $login_time;
         $update_row['last_login_ip'] = $this->input->ip_address();
         //自动保留登录15天
         $this->auth->set_auto_login($user->username, $user->password);
         if (isset($_COOKIE['lms_logout_url'])) {
             $url = $_COOKIE['lms_logout_url'];
             setcookie('lms_logout_url', '', time() - 3600, '/');
         } else {
             $url = base_url();
         }
         $this->user->update($update_row, $user->id);
         //保存session
         $this->auth->save_login($user);
         redirect($url);
     } else {
         if (!$useropenid) {
             if ($this->user_openid->insert(array('name' => 'weixin', 'token' => $param['access_token'], 'openid' => $param['openid'], 'create_time' => local_to_gmt(), 'expires' => local_to_gmt() + $param['expires_in'], 'refresh_token' => $param['refresh_token']))) {
                 redirect('register/openid/' . $param['openid']);
             } else {
                 redirect('login/error/login_error');
             }
         } else {
             redirect('register/openid/' . $param['openid']);
         }
     }
 }