Пример #1
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'thanks') {
         return $this->thanksAction($request, $response, $invokeArgs);
     }
     parent::directAction($request, $response, $invokeArgs);
 }
Пример #2
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'ipn') {
         try {
             parent::directAction($request, $response, $invokeArgs);
         } catch (Exception $ex) {
             $this->getDi()->errorLogTable->logException($ex);
         }
         echo '45000';
     } else {
         parent::directAction($request, $response, $invokeArgs);
     }
 }
Пример #3
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'ipn') {
         $accessCode = $request->getFiltered('AccessCode');
         $result = new Am_Paysystem_Result();
         $transaction = new Am_Paysystem_Transaction_EwayRapid3($this, $accessCode);
         $transaction->run($result);
         if (!($invoice = $transaction->getInvoice())) {
             throw new Am_Exception_InputError();
         }
         $this->_setInvoice($invoice);
         if ($result->isSuccess()) {
             Am_Controller::redirectLocation($this->getReturnUrl($invoice));
         } else {
             Am_Controller::redirectLocation($this->getCancelUrl($invoice));
         }
     } else {
         parent::directAction($request, $response, $invokeArgs);
     }
 }
Пример #4
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     $log = $this->logRequest($request);
     switch ($request->getActionName()) {
         case 'ipn':
             // first and rebill payments or subscription cancelled
             if ($this->getConfig('debugLog')) {
                 Am_Di::getInstance()->errorLogTable->log('Payforit. Request[ipn]: ' . json_encode($request->getParams()));
             }
             if ($request->getInt('stop')) {
                 if (!in_array($request->getClientIp(), Am_Paysystem_Payforit::$serverIPs)) {
                     throw new Am_Exception_Paysystem_TransactionInvalid("Bad server IP [{$request->getClientIp()}]");
                 }
                 $invoice = Am_Di::getInstance()->invoiceTable->findFirstByPublicId($request->getFiltered('key'));
                 $invoice->setCancelled(true);
                 return;
             }
             if ($request->getFiltered('status') == 'EXPIRED') {
                 return header("HTTP/1.0 200 OK");
             }
             $transaction = new Am_Paysystem_Transaction_Payforit($this, $request, $response, $invokeArgs);
             try {
                 $transaction->process();
             } catch (Exception $e) {
                 $this->getDi()->errorLogTable->logException($e);
                 return header("HTTP/1.0 400 Bad request");
             }
             $this->invoice = $transaction->getInvoice();
             $log->setInvoice($this->invoice)->update();
             $response->setRedirect($this->getReturnUrl());
             break;
         default:
             if ($this->getConfig('debugLog')) {
                 Am_Di::getInstance()->errorLogTable->log('Payforit. Request[default]: ' . json_encode($request->getParams()));
             }
             return parent::directAction($request, $response, $invokeArgs);
             break;
     }
 }
Пример #5
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     switch ($request->getActionName()) {
         case self::RETURN_URL_SUCCESS:
         case self::RETURN_URL_FAIL:
             $log = $this->logRequest($request);
             $transaction = $this->createThanksTransaction($request, $response, $invokeArgs);
             $transaction->setInvoiceLog($log);
             try {
                 $transaction->process();
             } catch (Am_Exception_Paysystem_TransactionAlreadyHandled $e) {
                 // ignore this error, as it happens in "thanks" transaction
                 // we may have received IPN about the payment earlier
             } catch (Exception $e) {
                 throw $e;
                 $this->getDi()->errorLogTable->logException($e);
                 throw Am_Exception_InternalError(___("Error happened during transaction handling. Please contact website administrator"));
             }
             $log->setInvoice($transaction->getInvoice())->update();
             $this->invoice = $transaction->getInvoice();
             $this->invoice->data()->set(self::DPS_BILLING_ID, $transaction->getDpsBillingId())->update();
             $response->setRedirect($this->getReturnUrl());
             break;
         default:
             parent::directAction($request, $response, $invokeArgs);
     }
 }
Пример #6
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'iframe') {
         $p = $this->createController($request, $response, $invokeArgs);
         $p->setPlugin($this);
         $p->run();
         return;
     }
     parent::directAction($request, $response, $invokeArgs);
 }