예제 #1
0
 protected function processAuthorizationWithoutAlias(Customweb_Payment_Authorization_ITransaction $transaction, array $parameters)
 {
     switch ($transaction->getTransactionState()) {
         case Customweb_Saferpay_Authorization_Transaction::STATE_INITIAL:
             $this->requestAuthorization($transaction, $parameters);
             break;
     }
 }
예제 #2
0
 public function processAuthorization(Customweb_Payment_Authorization_ITransaction $transaction, array $parameters)
 {
     // Check if the CVC field is filled in in case of a alias transaction.
     if ($transaction->getTransactionState() == Customweb_Saferpay_Authorization_Transaction::STATE_INITIAL && $transaction->isUseExistingAlias() && !$this->isCardVerificationPossible($transaction->getTransactionContext()->getAlias(), $transaction->getTransactionContext()->getOrderContext(), $transaction->getPaymentCustomerContext(), $parameters)) {
         $message = Customweb_I18n_Translation::__("The CVC field is required.");
         $transaction->setAuthorizationFailed($message);
     }
     if (!$this->validateCustomParameters($transaction, $parameters)) {
         $reason = Customweb_I18n_Translation::__("Custom parameters have been altered. Fraud possible, aborting.");
         $transaction->setAuthorizationFailed($reason);
     }
     if ($transaction->isAuthorizationFailed()) {
         $this->redirect(null, $transaction, $this->getFailedUrl($transaction));
     } elseif ($transaction->isAuthorized()) {
         $this->redirect(null, $transaction, $this->getSuccessUrl($transaction));
     } else {
         switch ($transaction->getTransactionState()) {
             case Customweb_Saferpay_Authorization_Transaction::STATE_INITIAL:
                 $this->processScdResponse($transaction, $parameters);
                 break;
             case Customweb_Saferpay_Authorization_Transaction::STATE_3D_SECURE:
                 if (!isset($parameters['DATA']) || empty($parameters['DATA'])) {
                     return Customweb_Core_Http_Response::_("NO DATA parameter provided.")->setStatusCode(500);
                 }
                 $parameters = array_merge($parameters, $this->parseRequestParameters($parameters));
                 $this->process3DSecureResponse($transaction, $parameters);
                 break;
             default:
                 $this->redirect(null, $transaction, $this->getFailedUrl($transaction));
         }
     }
     return $this->finalizeAuthorizationRequest($transaction);
 }