Пример #1
0
 /**
  * Action confirmation page for form payment
  */
 public function actionConfirm()
 {
     parent::actionConfirm();
     $api = $this->buildApi();
     $details = HelperCommon::getStore('details');
     $api->updateData($details);
     // fill items with product details
     $items = array();
     foreach ($api->getBasket()->getItems() as $item) {
         $items[] = array('productUrlImage' => $this->getProductUrlImage($item->getDescription()), 'description' => $item->getDescription(), 'quantity' => $item->getQuantity(), 'unitGrossAmount' => number_format($item->getUnitGrossAmount(), 2), 'totalGrossAmount' => number_format($item->getTotalGrossAmount(), 2));
     }
     $env = $this->sagepayConfig->getEnv();
     // Render confirm page for form payment
     $view = new HelperView('form/confirm');
     $view->setData(array('basket' => array('items' => $items, 'deliveryGrossPrice' => number_format($api->getBasket()->getDeliveryGrossAmount(), 2), 'totalGrossPrice' => number_format($api->getBasket()->getAmount(), 2)), 'env' => $env, 'vendorName' => $this->sagepayConfig->getVendorName(), 'integrationType' => $this->integrationType, 'currency' => $this->sagepayConfig->getCurrency(), 'purchaseUrl' => $this->sagepayConfig->getPurchaseUrl('form', $env), 'request' => $api->createRequest(), 'displayQueryString' => htmlspecialchars(rawurldecode(utf8_encode($api->getQueryData()))), 'details' => $details));
     $view->render();
 }
Пример #2
0
 /**
  * Check details data
  */
 protected function checkDetails()
 {
     $details = HelperCommon::getStore('details');
     $billingDetails = $this->createCustomerDetails($details, 'billing');
     $details = array_merge($details, $this->customerDetailsToArray($billingDetails, 'billing'));
     $billingErrors = $billingDetails->validate();
     if (HelperCommon::getStore('isDeliverySame')) {
         $deliveryErrors = array();
     } else {
         $deliveryDetails = $this->createCustomerDetails($details, 'delivery');
         $details = array_merge($details, $this->customerDetailsToArray($deliveryDetails, 'delivery'));
         $deliveryErrors = $deliveryDetails->validate();
     }
     if (!empty($billingErrors) || !empty($deliveryErrors)) {
         $this->redirect($this->integrationType);
     } else {
         $this->checkProducts(null, true);
     }
 }
Пример #3
0
 /**
  * Action low profile page for server payment
  */
 public function actionLowProfile()
 {
     $view = new HelperView('server/low_profile');
     $view->setData(array('env' => $this->sagepayConfig->getEnv(), 'vendorName' => $this->sagepayConfig->getVendorName(), 'integrationType' => $this->integrationType, 'request' => HelperCommon::getStore('txData')));
     $view->render();
 }
Пример #4
0
 /**
  * Action 3D secure page for direct payment
  */
 public function actionThreeDSecure()
 {
     $threeDSecure = HelperCommon::getStore('3DAUTH');
     HelperCommon::clearStore('3DAUTH');
     if (empty($threeDSecure)) {
         $this->redirect('direct', 'failure', filter_input_array(INPUT_GET));
     }
     $purchaseUrl = $threeDSecure['ACSURL'];
     unset($threeDSecure['ACSURL']);
     $view = new HelperView('direct/secure3d');
     $view->setData(array('env' => $this->sagepayConfig->getEnv(), 'vendorName' => $this->sagepayConfig->getVendorName(), 'integrationType' => $this->integrationType, 'purchaseUrl' => $purchaseUrl, 'request' => array(), 'threeDSecure' => $threeDSecure));
     $view->render();
 }
Пример #5
0
 /**
  * Action confirm page
  */
 public function actionConfirm()
 {
     parent::actionConfirm();
     $perceedUrlParts = array($this->integrationType, 'register');
     $backUrlParts = array($this->integrationType, 'details');
     $error = false;
     $message = '';
     if ($this->integrationType == SAGEPAY_DIRECT) {
         $card = HelperCommon::getStore('card');
         $backUrlParts[1] = 'card';
         if (empty($card['cardType'])) {
             $backUrlParts[1] = 'card-token';
         }
     }
     $api = $this->buildApi();
     // Get products form basket
     $items = array();
     $basketItems = $api->getBasket()->getItems();
     foreach ($basketItems as $item) {
         $items[] = array('urlImage' => $this->getProductUrlImage($item->getDescription()), 'description' => $item->getDescription(), 'quantity' => $item->getQuantity(), 'unitGrossAmount' => number_format($item->getUnitGrossAmount(), 2), 'totalGrossAmount' => number_format($item->getTotalGrossAmount(), 2));
     }
     if (filter_input(INPUT_GET, 'error')) {
         $error = true;
         $message = base64_decode(filter_input(INPUT_GET, 'error'));
     }
     // Render confirm tpl
     $view = new HelperView('server-and-direct/confirm');
     $view->setData(array('env' => $this->sagepayConfig->getEnv(), 'vendorName' => $this->sagepayConfig->getVendorName(), 'integrationType' => $this->integrationType, 'details' => $this->data['details'], 'deliveryGrossPrice' => $this->data['deliveryGrossPrice'], 'totalGrossPrice' => $this->data['totalGrossPrice'], 'purchaseUrl' => $this->purchaseUrl, 'currency' => $this->sagepayConfig->getCurrency(), 'card' => HelperCommon::getStore('card'), 'basket' => array('items' => $items), 'perceedUrl' => url($perceedUrlParts), 'backUrl' => url($backUrlParts), 'message' => $message, 'error' => $error));
     $view->render();
 }