/** * 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); }