public function executeOnpay(sfWebRequest $request) { $pay_for = $request->getGetParameter('pay_for'); if (!is_numeric($pay_for)) { throw new sfException('wrong argument for onpay'); } $transaction = TransactionTable::getInstance()->findOneById($pay_for); $onpay = OnPay::forTransaction($transaction); $result = $onpay->processApiRequest($request->getGetParameter('type'), $request->getGetParameter('order_amount'), $request->getGetParameter('order_currency'), $pay_for, $request->getGetParameter('md5'), $request->getGetParameter('onpay_id'), $request->getGetParameter('balance_amount'), $request->getGetParameter('balance_currency'), $request->getGetParameter('exchange_rate'), $request->getGetParameter('paymentDateTime')); $this->getResponse()->setContentType('text/plain'); return $this->renderText($result); }
/** * Processing Forms * @param sfWebRequest $request * @param sfForm $form * @return <boolean> */ protected function processForm(sfWebRequest $request, sfForm $form) { $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); if ($form->isValid()) { if (isset($form['balance_add'])) { $user = $this->getUser()->getGuardUser(); // заводим новую транзакцию и передаем пользователя платежной системе $transaction = $user->addFunds($form->getValue('balance_add')); $pay_test = SettingTable::getInstance()->findOneByName('Платежи в тестовом режиме'); if ((int) $pay_test->getValue() > 0) { $user->addFundsFin($transaction); } else { // создаем объект онпей и затем редиректим на форму платежа $onpay = OnPay::forTransaction($transaction, $this->generateUrl('profile_u_account', array(), true)); return $onpay->processFirstStep(); } return true; } $user = $form->save(); return true; } return false; }
protected function processUserForm(sfWebRequest $request, sfForm $form) { $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); if ($form->isValid()) { $user = $this->getUser()->getGuardUser(); if (isset($form['tariff_change'])) { return $user->setNewTariff($form->getValue('tariff_change')); } elseif (isset($form['balance_add'])) { $transaction = $user->addFunds($form->getValue('balance_add')); $pay_test = SettingTable::getInstance()->findOneByName('Платежи в тестовом режиме'); if ((int) $pay_test->getValue() > 0) { $user->addFundsFin($transaction); return true; } else { // создаем объект онпей и затем редиректим на форму платежа $onpay = OnPay::forTransaction($transaction, $this->generateUrl('profile_p_user', array(), true)); return $onpay->processFirstStep(); } } else { $user = $form->save(); } return true; } return $form; }