/**
  * This method processes the response from the secure card data service that
  * should get us a card alias to use further on.
  *
  * @param Customweb_Saferpay_Authorization_Transaction $transaction
  * @param array $parameters
  */
 protected function processScdResponse(Customweb_Saferpay_Authorization_Transaction $transaction, $parameters)
 {
     if ($transaction->isUseExistingAlias()) {
         $transaction->setCardRefId($transaction->getTransactionContext()->getAlias()->getCardRefId());
         $transaction->setOwnerName($parameters[Customweb_Saferpay_Method_PaymentMethodWrapper::FORM_KEY_OWNER_NAME]);
         if ($this->getPaymentMethodWrapper($transaction->getTransactionContext()->getOrderContext())->is3DSecureSupported()) {
             $transaction->setCardExpiryDate($parameters['sfpCardExpiryMonth'], $parameters['sfpCardExpiryYear']);
             if (!$this->getConfiguration()->isUseMotoAccountForAlias()) {
                 return $this->request3DSecure($transaction, $parameters);
             }
         }
         return $this->requestAuthorization($transaction);
     } else {
         $parameters = $this->parseRequestParameters($parameters);
         if ($parameters['RESULT'] == 0) {
             $transaction->setCardRefId($parameters['CARDREFID']);
             $transaction->setTruncatedPAN($parameters['CARDMASK']);
             $transaction->setOwnerName($parameters[Customweb_Saferpay_Method_PaymentMethodWrapper::FORM_KEY_OWNER_NAME]);
             if ($this->getPaymentMethodWrapper($transaction->getTransactionContext()->getOrderContext())->is3DSecureSupported()) {
                 $transaction->setCardExpiryDate($parameters['EXPIRYMONTH'], $parameters['EXPIRYYEAR']);
                 return $this->request3DSecure($transaction, $parameters);
             }
             return $this->requestAuthorization($transaction);
         } else {
             $userMessage = Customweb_Saferpay_Util::getUserErrorMessage($parameters['DESCRIPTION']);
             $backendMessage = Customweb_I18n_Translation::__("Server responded '!response'", array('!response' => $parameters['DESCRIPTION']));
             $transaction->setAuthorizationFailed(new Customweb_Payment_Authorization_ErrorMessage($userMessage, $backendMessage));
             $this->redirect(null, $transaction, $this->getFailedUrl($transaction));
         }
     }
 }
示例#2
0
 /**
  * Copy important data from the initial transaction to the new transaction.
  * 
  * @param Customweb_Saferpay_Authorization_Transaction $initialTransaction
  * @param Customweb_Saferpay_Authorization_Transaction $recurringTransaction
  */
 protected function useInitialTransactionData(Customweb_Saferpay_Authorization_Transaction $initialTransaction, Customweb_Saferpay_Authorization_Transaction $recurringTransaction)
 {
     $recurringTransaction->setCardRefId($initialTransaction->getCardRefId());
     $recurringTransaction->setCardExpiryDate($initialTransaction->getCardExpiryMonth(), $initialTransaction->getCardExpiryYear());
     $recurringTransaction->setOwnerName($initialTransaction->getOwnerName());
     $recurringTransaction->setTruncatedPAN($initialTransaction->getTruncatedPAN());
     $recurringTransaction->setMpiSessionId(null);
 }