Пример #1
0
 /**
  * Get payment data for SERVER and DIRECT
  *
  * @param boolean $statusOk
  *
  * @return array
  */
 protected function getPaymentResultData($statusOk = false)
 {
     $result = array();
     if (filter_input(INPUT_GET, 'vtx')) {
         $payment = new ModelPayment();
         $result = $payment->getByVendorTxCode(filter_input(INPUT_GET, 'vtx'));
     }
     if (empty($result)) {
         $this->helperError('Transaction code is invalid: this can happen if you try to pay for multiple baskets at the same time. ' . 'Please contact [your customer service details] to check the status of your order.', url(array('server')));
     }
     $items = array();
     $basket = $this->getBasketFromProducts();
     if ($basket) {
         foreach ($basket->getItems() as $item) {
             $items[] = array('quantity' => $item->getQuantity(), 'urlImage' => $this->getProductUrlImage($item->getDescription()), 'description' => $item->getDescription());
         }
     }
     $errorMessage = '';
     if (!$statusOk) {
         switch ($result['status']) {
             case 'REJECTED':
                 $errorMessage = 'Your order did not meet our minimum fraud screening requirements.';
                 break;
             case 'ABORT':
                 $errorMessage = 'You chose to Cancel your order on the payment pages.';
                 break;
             default:
                 $errorMessage = 'ERROR.';
         }
     }
     return array('env' => $this->sagepayConfig->getEnv(), 'vendorName' => $this->sagepayConfig->getVendorName(), 'integrationType' => $this->integrationType, 'basket' => array('items' => $items), 'ord' => $result, 'stOk' => $statusOk, 'errorMessage' => $errorMessage);
 }