Вход Регистрация
Файл: silawar.ru/protected/components/Xsolla.php
Строк: 94
<?php
class Xsolla extends VirtualCurrencyXsolla {

    public function 
userExists($user) {
        
//query the db to see if user exists
        
$criteria = new CDbCriteria();
        
$criteria->compare('id_user'$user);
        return 
Users::model()->count($criteria) > 0;
    }

    public function 
paySuccess($id_user$sum$invoiceID) {
        
$money $sum 100;
        
        
$user Users::findUser($id_user);
        
/**
         * Для акции на премиум в подарок 
         */
        
if ($money >= 1000) {
            
$time floor($money/1000);
            
$bonus Actions::getBonusValue(4);
            if (
$bonus && $time 0) {
                if (
$user->premium_time time())
                    
$user->premium_time += 60 60 24 $time;
                else
                    
$user->premium_time time() + 60 60 24 $time;
                if (!
$user->save(false)) {
                    throw new 
CHttpException(500Yii::t('layout''Ошибка при сохранении пользователя!'));
                } 
            }
        }
        
$id_dialog Users::checkDialog($id_user100);
        
$mail = new UsersMessages();
        
$mail->id_dialog $id_dialog;
        
$mail->id_user 100;
        
$mail->users $id_user;
        
$mail->type 1;
        
$mail->message 'Пополнение счета';
        
$bonus Actions::getBonusValue(1);
        
$mail->money $bonus round($money + ($money/100)*$bonus) : $money;
        if (!
$mail->save(false)) {
            throw new 
CHttpException(500Yii::t('layout''Ошибка при отправке почты!'));
        }
        
        
//Проверяем достиг ли игрок 10 уровень и является ли он рефералом
        
if ($user->level >= 10 && $user->id_ref && isset($user->idRef)) {
            
$money round($money/10);
            
$id_dialog Users::checkDialog($user->id_ref100);
            
$mail = new UsersMessages();
            
$mail->id_dialog $id_dialog;
            
$mail->id_user 100;
            
$mail->users $user->id_ref;
            
$mail->type 1;
            
$mail->message 'Бонус за друга';
            
$mail->money $money;
            if (!
$mail->save(false)) {
                throw new 
CHttpException(500Yii::t('layout''Ошибка при отправке почты!'));
            }
        }
        
$log DonateLog::model()->findByAttributes(array('tid'=>$invoiceID));
        
$log->result 1;
        
$log->save(false);
    }

    public function 
payCancel($invoiceID) {
        
$log DonateLog::model()->findByAttributes(array('tid'=>$invoiceID'type'=>2));
    }

    public function 
invoiceExists($invoiceID) {
        
//query db to see if invoice exists
        
$log DonateLog::model()->countByAttributes(array('tid'=>$invoiceID'type'=>2));
        return 
$log 0;
    }

    public function 
newInvoice($invoiceID$userID$sum) {
            
//insert new invoice into db
            
$log = new DonateLog();
            
$log->id_user $userID;
            
$log->tid $invoiceID;
            
$log->value $sum;
            
$log->type 2;
            if (!
$log->save(false)) {
                throw new 
Exception('error creating payment.');
            }
    }

    public function 
cancelInvoice($invoiceID) {
        
//check if order is already canceled
        
$log DonateLog::model()->findByAttributes(array('tid'=>$invoiceID'type'=>2'result'=>0));
        
//cancel if this invoice has not been canceled already
        
if (!$log) {
            
$log DonateLog::model()->findByAttributes(array('tid'=>$invoiceID));
            
$log->result 0;
            
$log->save(false);
        }
    }

}

?>
Онлайн: 1
Реклама