public function actionSubscribe() { /*if(!isset($_SERVER['SERVER_NAME']) || $_SERVER['SERVER_NAME'] != 'msisdn.chacha.vn'){ $this->redirect('/site/error404'); }*/ $userPhone = Yii::app()->user->getState('msisdn'); $userSub = $this->userSub; //WapUserSubscribeModel::model()->findByAttributes(array('user_phone' => $userPhone, 'status' => UserSubscribeModel::ACTIVE)); $confirm = Yii::app()->request->getParam('confirm', 0); $source = Yii::app()->request->getParam('source', 'buzzcity'); $source = strtoupper($source); $result = null; $userObj = null; if ($confirm == 0) { $write = 1; if (isset($_SESSION[$source])) { // check time giua 2 lan visit co > 15 giay hay ko $latest_time = $_SESSION[$source]; $now = date("Y-m-d H:i:s"); $diff = strtotime($now) - strtotime($latest_time); if (intval($diff) < 15) { $write = 0; } } if ($write == 1) { // log to table log_ads_click $log = new LogAdsClickModel(); $ip = $_SERVER["REMOTE_ADDR"]; $is3G = 0; if (Yii::app()->user->getState('is3G')) { $is3G = 1; } $log->logAdsWap($userPhone, $source, $ip, $is3G); // set session value $_SESSION[$source] = date("Y-m-d H:i:s"); } } $destUrl = Yii::app()->request->getParam('url', Yii::app()->homeUrl); //$destUrl = urldecode($destUrl); if ($userSub) { $this->redirect($destUrl); } $isPromotion = WapUserSubscribeModel::model()->checkPromotion($userPhone); if ($isPromotion) { $confirm = 1; } if ($confirm == 1) { try { $phone = $userPhone; if (!isset($phone) || !Formatter::isVinaphoneNumber($phone)) { $result = new stdClass(); $result->errorCode = 401; $result->message = WapUserSubscribeModel::model()->getCustomMetaData('3G_TEXT'); } else { //anti flood request if (!isset($_SESSION)) { session_start(); } //time_nanosleep(0, 500000000); $token = Yii::app()->request->csrfToken; $ssid = session_id(); $sql = "INSERT INTO user_phone_subscribe_unduplicate(phone,ssid,token,created_time,status)\n\t\t\t\t\tVALUE('{$userPhone}','{$ssid}','{$token}',NOW(),0)\n\t\t\t\t\t"; $connDB = VegaCommonFunctions::getConnectMysql(); $res1 = mysql_query($sql); mysql_close($connDB); if ($res1) { $bmUrl = yii::app()->params['bmConfig']['remote_wsdl']; $client = new SoapClient($bmUrl, array('trace' => 1)); $params = array('phone' => $userPhone, 'package' => 'CHACHAFUN', 'source' => 'wap', 'promotion' => '', 'bundle' => 0, 'smsId' => null, 'note_event' => $source); $result = $client->__soapCall('userRegister', $params); $timeClear = date('Y-m-d H:i:s', time() - 60 * 5); $sql = "DELETE FROM user_phone_subscribe_unduplicate WHERE created_time<='{$timeClear}'"; $res2 = Yii::app()->db->createCommand($sql)->execute(); } else { $log = new KLogger("SUBS_DUPLICATE_EXCEPTION", KLogger::INFO); $log->LogInfo("Ex:" . $userPhone, false); $this->redirect($destUrl); exit; } } if ($result->errorCode == 0 || $result->errorCode == '0') { //$userObj = WapUserSubscribeModel::model()->findByAttributes(array('user_phone' => $userPhone)); if ($isPromotion) { Yii::app()->user->setState('DK_MA_MSG', 'Quý khách có 7 ngày vàng trải nghiệm dịch vụ: Nghe, xem, tải MIỄN PHÍ toàn bộ nội dung và miễn cước data (3G/GPRS~30.000đ/ngày).Tặng kèm gói miễn phí tải nhạc chuông và quà tặng âm nhạc. Để từ chối nhận KM Quý khách soạn HUY CHACHA gửi 9234'); } $this->redirect($destUrl); } } catch (Exception $e) { $log = new KLogger("SUBS_EXCEPTION", KLogger::INFO); $log->LogInfo("Ex:" . $e->getMessage(), false); //Yii::log($e->getMessage(), "error", "exeption.BMException"); $this->redirect($destUrl); exit; } } else { $log = new KLogger("SUBS_NOT_PROMOTION", KLogger::INFO); $log->LogInfo($userPhone, false); } $this->renderPartial("subscribe_adv", array('userObj' => $userObj, 'result' => $result, 'confirm' => $confirm, 'source' => strtolower($source), 'isPromotion' => $isPromotion, 'destUrl' => $destUrl)); }
public function actionIndex() { $urlKey = Yii::app()->request->getParam('url_key'); $urlKey = preg_replace("/^\\.+|\\.+\$/", "", trim($urlKey)); $sql = "select * from ads_marketing where url_key=:url_key limit 1"; $cm = Yii::app()->db->createCommand($sql); $cm->bindParam(':url_key', $urlKey, PDO::PARAM_STR); $ads = $cm->queryRow(); if ($ads) { $userPhone = Yii::app()->user->getState('msisdn'); $userSub = $this->isSub; $source = $ads['code']; Yii::app()->session['source'] = $source; if ($source == 'ADS') { Yii::app()->session['src'] = 'ads'; } //log ads $write = 1; if (isset($_SESSION[$source])) { // check time giua 2 lan visit co > 15 giay hay ko $latest_time = $_SESSION[$source]; $now = date("Y-m-d H:i:s"); $diff = strtotime($now) - strtotime($latest_time); if (intval($diff) < 15) { $write = 0; } } if ($write == 1) { // log to table log_ads_click $log = new LogAdsClickModel(); $ip = $_SERVER["REMOTE_ADDR"]; $is3G = 0; if ($this->is3g) { $is3G = 1; } //$log->logAdsWap($userPhone, $source, $ip, $is3G); $log->ads = $source; $log->user_phone = $userPhone; $log->user_ip = $ip; $log->is_3g = $is3G; $log->created_time = date("Y-m-d H:i:s"); $log->save(false); // set session value $_SESSION[$source] = date("Y-m-d H:i:s"); } //end log $destLink = $ads['dest_link']; if ($userSub || empty($userPhone)) { $this->redirect($destLink); } $logger = new KLogger("log_sl", KLogger::INFO); $logger->LogInfo("action:" . $ads['action'] . "|userSub:" . json_encode($userSub), false); if ($ads['action'] == 'subscribe' && !$userSub) { //subscribe now $this->showPopupKm = false; $this->showPopup = false; $userPackage = UserSubscribeModel::model()->get($userPhone); $package_id = $ads['package_id']; $packageCode = PackageModel::model()->findByPk($package_id)->code; if (empty($userPackage)) { //doregister $url = Yii::app()->createUrl('account/vasRegister', array('package' => $package_id, 'back_link' => $destLink)); $this->redirect($url); } } $this->redirect($destLink); } else { $this->redirect('http://amusic.vn'); } }