/** * Возвращает необходимые данные для формы оплаты * * @param Payment $payment * @param Event $event * @return array */ public function getData(Payment $payment, Event $event) { $config = $this->container->getParameter('stfalcon_event.config'); $description = 'Оплата участия в конференции ' . $event->getName() . '. Плательщик ' . $payment->getUser()->getFullname() . ' (#' . $payment->getUser()->getId() . ')'; $params['ik_co_id'] = $config['interkassa']['shop_id']; $params['ik_am'] = $payment->getAmount(); $params['ik_pm_no'] = $payment->getId(); $params['ik_desc'] = $description; $params['ik_loc'] = 'ru'; return ['ik_co_id' => $config['interkassa']['shop_id'], 'ik_desc' => $description, 'ik_sign' => $this->getSignHash($params)]; }
/** * @param Payment $payment * * @return bool */ public function utilizeBalance(Payment $payment) { $em = $this->container->get('doctrine.orm.default_entity_manager'); //списываем реферальные средства если они были использованы if ($payment->getFwdaysAmount() > 0) { $user = $payment->getUser(); $userBalance = $payment->getUser()->getBalance(); $balance = $userBalance - $payment->getFwdaysAmount(); $user->setBalance($balance); $em->persist($user); $em->flush(); return true; } return false; }