vservices->setApiUrl($this->config->item('api_url')); $this->vservices->setConnection($this->curl); } function checkLogin ($src, $token, $username, $password) { $data = $this->vservices->actionExecute('login', array('src' => $src, 'token' => $token, 'username' => $username, 'password' => $password), 'user'); $arr_users = explode("&", $data); $str_status = ''; $str_fullname = ''; $str_usid = ''; $usid = ''; $fullname = ''; for ($i=0; $i < count($arr_users); $i++) { if (strpos($arr_users[$i], 'status=') !== false) { $str_status = $arr_users[$i]; } if (strpos($arr_users[$i], 'fullname=') !== false) { $str_fullname = $arr_users[$i]; } if (strpos($arr_users[$i], 'id=') !== false) { $str_usid = $arr_users[$i]; } } $arr_status = explode("=", $str_status); if ($str_fullname != '') { $arr_fullname = explode("=", $str_fullname); $fullname = $arr_fullname[1]; } if ($str_usid !== '') { $arr_usid = explode("=", $str_usid); $usid = $arr_usid[1]; } $status = (int)$arr_status[1]; if ($status == 0 || $status == 4){ $us_id = (int)$usid; $query = "SELECT * FROM tbluser WHERE us_id = ?"; $result = $this->db->query($query, array($us_id)); if($result->num_rows() == 1){ return $data; }else { return null; } }else { return $data; } } function register ($sentNumber, $receiverID, $serviceID, $commandcode, $info, $receiveTime, &$status) { $username = ''; $collaborator = ''; $username = $receiverID; $user = array(); $smslog = array(); $password = $this->create_random_password(); $src = 'SBG'; $username = '0'.substr($username, 2, strlen($username)); $token = md5($username.self::TOKENPW); $phone = $username; $data = $this->vservices->actionExecute('update', array('src'=>$src, 'username'=>$username, 'password'=>$password, 'fullname'=>null, 'phone'=>$username, 'token'=>$token), 'user'); $id = 0; $errMsg = ''; parse_str($data); $sms = ''; switch((int)$status) { case 0: $us_id = $id; $user['created_time'] = $receiveTime; $user['us_id'] = $us_id; $user['cellphone'] = $username; $user['collaborator'] = $collaborator; $this->db->insert('tbluser', $user); $smslog['sender'] = $sentNumber; $smslog['us_id'] = $us_id; $smslog['service_id'] = $serviceID; $smslog['commandcode'] = $commandcode; $smslog['info'] = $info; $smslog['created_time'] = $receiveTime; $this->db->insert('tblsmslog', $smslog); $sms = "Chuc mung Qui vi da dang ky thanh cong tai khoan Soan Bai giang Online. Hay dang nhap vao soanbaigiang.smas.vn voi ten truy nhap ".$username.", mat khau ".$password." de su dung."; $status = 1; break; case 2: case 4: $sms = "So dien thoai của Qui vi da duoc dang ky !"; $status = 0; break; default: $status = 0; $sms = $errMsg; break; } return $status.'|'.$sms; } function create_random_password() { $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789"; $pass = array(); $alphaLength = strlen($alphabet) - 1; for ($i = 0; $i < 6; $i++) { $n = rand(0, $alphaLength); $pass[] = $alphabet[$n]; } return implode($pass); } function get_user_by_id($us_id) { $this->db->select('*')->from('tbluser')->where('us_id', $us_id); $query = $this->db->get(); if($query->num_rows() > 0) { $row = $query->row_array(); return $row; } } function get_user_info($src, $token, $us_id) { $data = $this->vservices->actionExecute('getinfo', array('src' => $src, 'us_id' => $us_id, 'token'=>$token), 'user'); return $data; } function update_user($src, $token, $user, $us_id) { $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, 'password'=>$user['password'], 'fullname'=>$user['fullname'], 'gender'=>$user['gender'], 'email'=>$user['email'], 'school'=>$user['school'], 'province'=>$user['province'], 'oldpass'=>$user['oldpass']), 'user'); return $data; } function changeProfile($sentNumber, $receiverID, $password, $serviceID, $commandcode, $info, $receiveTime, &$status) { $username = ''; $username = $receiverID; $user = array(); $src = 'SBG'; $us_id = 0; $errMsg = ''; $sms = ''; $this->db->select('*')->from('tbluser')->where('cellphone', $receiverID); $query = $this->db->get(); if($query->num_rows() > 0) { $row = $query->row_array(); $us_id = $row['us_id']; $token = md5($us_id.self::TOKENPW); $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, 'username'=>$sentNumber, "password"=>$password, 'oldpass'=>$password, 'phone'=>$sentNumber), 'user'); var_dump($data); parse_str($data); switch((int)$status) { case 0: $us_id = $id; $user['updated_time'] = $receiveTime; $user['us_id'] = $us_id; $user['cellphone'] = $sentNumber; $this->db->where('us_id', $us_id); $this->db->update('tbluser', $user); $sms = "Qui vi da doi so dien thoai tren soanbaigiang.smas.vn sang so dien thoai [".$sentNumber."]"; $status = 1; break; case 5: $sms = "So dien thoai của Qui vi chua duoc dang ky !"; $status = 0; break; case 6: $sms = "Mat khau cua qui vi khong dung !"; $status = 0; break; default: $status = 0; $sms = $errMsg; break; } }else { $sms = "So dien thoai của Qui vi chua duoc dang ky !"; $status = 0; } $this->insert_smslog($sentNumber, $us_id, $serviceID, $commandcode, $info, $receiveTime); return $status.'|'.$sms; } function changePassword($sentNumber, $password, $serviceID, $commandcode, $info, $receiveTime, &$status) { $username = $sentNumber; $user = array(); $src = 'SBG'; $us_id = 0; $errMsg = ''; $sms = ''; $flag = false; $pass = $password; if (is_null($password) || $password == '') { $pass = $this->create_random_password(); $flag = true; } $this->db->select('*')->from('tbluser')->where('cellphone', $username); $query = $this->db->get(); if($query->num_rows() > 0) { $row = $query->row_array(); $us_id = $row['us_id']; $token = md5($us_id.self::TOKENPW); $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, "password"=>$pass), 'user'); parse_str($data); switch((int)$status) { case 0: $us_id = $id; $user['updated_time'] = $receiveTime; $user['us_id'] = $us_id; $user['cellphone'] = $sentNumber; $this->db->where('us_id', $us_id); $this->db->update('tbluser', $user); if ($flag) { $sms = "Mat khau moi cua quy vi tren soanbaigiang.smas.vn la [".$password."]"; }else{ $sms = "Qui vi da doi thanh cong mat khau tren soanbaigiang.smas.vn. "; } $status = 1; break; case 5: $sms = "So dien thoai của Qui vi da duoc dang ky !"; $status = 0; break; default: $status = 0; $sms = $errMsg; break; } } else { $sms = "So dien thoai của Qui vi da duoc dang ky !"; $status = 0; } $this->insert_smslog($sentNumber, $us_id, $serviceID, $commandcode, $info, $receiveTime); return $status.'|'.$sms; } function checkLicense ($userId) { $isNotExpired = false; $userInfo = $this->get_user_by_id($userId); $expireDate = $userInfo['expire_date']; if ((trim($expireDate) == '')) return $isNotExpired; $today = mktime(); $expireTime = strtotime($expireDate.' 23:59:59'); $isNotExpired = ($today < $expireTime); return $isNotExpired; } function insert_smslog($sentNumber, $userID, $serviceID, $commandcode, $info, $receiveTime) { $smslog = array(); $smslog['sender'] = $sentNumber; $smslog['us_id'] = $userID; $smslog['service_id'] = $serviceID; $smslog['commandcode'] = $commandcode; $smslog['info'] = $info; $smslog['created_time'] = $receiveTime; $this->db->insert('tblsmslog', $smslog); } }