public function actionResult() { $rc = Yii::app()->robokassa; // Коллбэк для события "оплата произведена" $rc->onSuccess = function ($event) { // Запишем в модель оплаты что оплата прошла $payForm = Yii::app()->robokassa->params['order']; $payForm->status = 'succes'; $payForm->save(); // получим пользователя из модели оплаты $player = Player::model()->findByPk($payForm->id_player); // Прибавим в статистике пользователя параметр инвестиции $statistic = Statistic::model()->findByAttributes(array('id_player' => $player->id)); $statistic->invest_summ += $payForm->summ; $statistic->save(); // Добавим пользователю сумму на счет оплаты !!!*1000!!! $player->setSummBuyPlus($payForm->summ); // Увеличим лемит вывода $current_summ_limit = $payForm->summ * 0.4; $player->setSummLimitPlus($current_summ_limit); // Получить реферала, если есть(?) $referal = Referals::model()->findByAttributes(array('id_referal' => $player->id)); if ($referal != null) { // Получить пригласившего $parent_referal = Player::model()->findByAttributes(array('id' => $referal->id_player)); // Получить статистику пригласившего и записать в базу $statistic_referal = Statistic::model()->findByAttributes(array('id_player' => $parent_referal->id)); // Если еще не оплачивал, отметить что оплатил, добавить реферала в сумму рефералов прегласившего if ($referal->is_active == 0) { $referal->is_active = 1; $statistic_referal->referals += 1; } $summ_pay = $payForm->summ; $parent_referal->setReferalBonuses($summ_pay, $statistic_referal); } }; // Коллбэк для события "отказ от оплаты" $rc->onFail = function ($event) { $InvId = Yii::app()->request->getParam('InvId'); $payForm = Pays::model()->findByAttributes(array('id' => $InvId)); if ($payForm != null) { $payForm->status = 'fail'; $payForm->save(); } }; // Обработка ответа робокассы $rc->result(); }
public function actionGetHistoryBays() { $player = Player::model()->findByAttributes(array('email' => Yii::app()->user->id)); $criteria = new CDbCriteria(); $criteria->addCondition('id_player = :id_player'); $criteria->params = array(':id_player' => $player->id); $count = Pays::model()->count($criteria); $pages = new CPagination($count); // элементов на страницу $pages->pageSize = 10; $pages->applyLimit($criteria); $pays = Pays::model()->findAll($criteria); $this->render('historyPays', array('pays' => $pays)); }