Пример #1
0
 /**
  * Action entry Login/Register page
  */
 public function actionEntry()
 {
     $message = '';
     // Check if was logged
     if (HelperCommon::getStore('account')) {
         $this->redirect($this->integrationType, 'basket');
     }
     // Check if form was submitted
     if (count(filter_input_array(INPUT_POST))) {
         HelperCommon::clearStore('account');
         $rules = array('email' => array(array('notEmpty'), array('maxLength', array(255)), array('email')), 'password' => array(array('notEmpty'), array('maxLength', array(255))));
         $data = array('email' => filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL), 'password' => filter_input(INPUT_POST, 'password'));
         $errors = $this->validate($rules, $data);
         $hMessage = new HelperMessage();
         $message = $hMessage->getAllMessages($errors, array('email' => 'Email', 'password' => 'Password'));
         // Check if login was failed
         if (!$errors) {
             $password = md5($this->sagepayConfig->getCustomerPasswordSalt() . filter_input(INPUT_POST, 'password'));
             $customerId = $this->checkCustomer(filter_input(INPUT_POST, 'email'), $password);
             if (!$customerId !== 0) {
                 HelperCommon::setStore('account', array('email' => filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL), 'password' => $password, 'id' => $customerId));
                 $this->redirect($this->integrationType, 'basket');
             } else {
                 $this->error = true;
                 $message = 'Login failed';
             }
         } else {
             $this->error = true;
             $message = "Sorry, the following problems were found: " . $message;
         }
     }
     $current = array('email' => '', 'password' => '');
     if (filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)) {
         $current['email'] = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
     }
     // render entry tpl
     $view = new HelperView('server-and-direct/entry');
     $view->setData(array('env' => $this->sagepayConfig->getEnv(), 'vendorName' => $this->sagepayConfig->getVendorName(), 'integrationType' => false, 'controller' => $this->integrationType, 'current' => $current, 'error' => $this->error, 'message' => $message));
     $view->render();
 }
Пример #2
0
 /**
  * Return data for result query
  *
  * @param boolean $isSuccess
  * @return array
  * @throws SagepayApiException
  */
 private function _resultData($isSuccess = false)
 {
     $formPassword = $this->sagepayConfig->getFormPassword();
     $env = $this->sagepayConfig->getEnv();
     $crypt = filter_input(INPUT_GET, 'crypt');
     $decrypt = SagepayUtil::decryptAes($crypt, $formPassword[$env]);
     $decryptArr = SagepayUtil::queryStringToArray($decrypt);
     if (!$decrypt || empty($decryptArr)) {
         throw new SagepayApiException('Invalid crypt input');
     }
     $helperMessage = new HelperMessage();
     $basket = $this->getBasketFromProducts();
     $items = array();
     // Get products from basket
     if ($basket) {
         foreach ($basket->getItems() as $item) {
             $items[] = array('productUrlImage' => $this->getProductUrlImage($item->getDescription()), 'description' => $item->getDescription(), 'quantity' => $item->getQuantity());
         }
     }
     return array('env' => $env, 'vendorName' => $this->sagepayConfig->getVendorName(), 'integrationType' => $this->integrationType, 'basket' => array('items' => $items), 'decrypt' => $decryptArr, 'currency' => $this->sagepayConfig->getCurrency(), 'isSuccess' => $isSuccess, 'message' => $helperMessage->getMessage($decryptArr['Status']), 'res' => array('vpsTxId' => $decryptArr['VPSTxId'], 'txAuthNo' => isset($decryptArr['TxAuthNo']) ? $decryptArr['TxAuthNo'] : '', 'Surcharge' => isset($decryptArr['Surcharge']) ? $decryptArr['Surcharge'] : '', 'BankAuthCode' => isset($decryptArr['BankAuthCode']) ? $decryptArr['BankAuthCode'] : '', 'DeclineCode' => isset($decryptArr['DeclineCode']) ? $decryptArr['DeclineCode'] : '', 'GiftAid' => isset($decryptArr['GiftAid']) && $decryptArr['GiftAid'] == 1, 'avsCv2' => isset($decryptArr['AVSCV2']) ? $decryptArr['AVSCV2'] : '', 'addressResult' => isset($decryptArr['AddressResult']) ? $decryptArr['AddressResult'] : '', 'postCodeResult' => isset($decryptArr['PostCodeResult']) ? $decryptArr['PostCodeResult'] : '', 'cv2Result' => isset($decryptArr['CV2Result']) ? $decryptArr['CV2Result'] : '', '3DSecureStatus' => isset($decryptArr['3DSecureStatus']) ? $decryptArr['3DSecureStatus'] : '', 'CAVV' => isset($decryptArr['CAVV']) ? $decryptArr['CAVV'] : '', 'cardType' => isset($decryptArr['CardType']) ? $decryptArr['CardType'] : '', 'last4Digits' => isset($decryptArr['Last4Digits']) ? $decryptArr['Last4Digits'] : '', 'expiryDate' => isset($decryptArr['ExpiryDate']) ? $decryptArr['ExpiryDate'] : '', 'addressStatus' => isset($decryptArr['AddressStatus']) ? $decryptArr['AddressStatus'] : '', 'payerStatus' => isset($decryptArr['PayerStatus']) ? $decryptArr['PayerStatus'] : ''));
 }
Пример #3
0
 /**
  * Save extra data to session
  *
  * @param string $redirectQ
  *
  * @param string $redirectP
  *
  * @return string
  */
 protected function saveExtra($redirectQ, $redirectP)
 {
     $message = '';
     if (count(filter_input_array(INPUT_POST))) {
         $type = null;
         $extra = array();
         $extraTypes = array('cruise' => 'cruise', 'hotel' => 'hotel', 'tour' => 'tourOperator', 'car' => 'carRental');
         $extraName = filter_input(INPUT_POST, 'extra');
         // Check extra type
         if (isset($extraTypes[$extraName])) {
             $type = $extraTypes[$extraName];
         }
         $errors = false;
         if (!empty($type)) {
             $extraFrom = filter_input(INPUT_POST, $extraName . 'From');
             $extraTo = filter_input(INPUT_POST, $extraName . 'To');
             $extra[$type] = array();
             $extra[$type]['checkIn'] = $extraFrom && strtotime($extraFrom) ? date("Y-m-d", strtotime($extraFrom)) : $extraFrom;
             $extra[$type]['checkOut'] = $extraTo && strtotime($extraTo) ? date("Y-m-d", strtotime($extraTo)) : $extraTo;
             if ($type === 'hotel') {
                 $extra[$type]['numberInParty'] = filter_input(INPUT_POST, 'numberInParty');
                 $extra[$type]['guestName'] = filter_input(INPUT_POST, 'guestName');
                 $extra[$type]['folioRefNumber'] = filter_input(INPUT_POST, 'referenceNumber');
                 $extra[$type]['confirmedReservation'] = !!filter_input(INPUT_POST, 'confirmedReservation') ? 'Y' : 'N';
                 $extra[$type]['dailyRoomRate'] = filter_input(INPUT_POST, 'roomRate');
             }
             $rules = $this->extraInformationRules($type);
             $errors = $this->validate($rules, $extra[$type]);
         }
         // Check collect recipient details
         if ($this->sagepayConfig->getCollectRecipientDetails()) {
             $extra['fiRecipientAcctNumber'] = filter_input(INPUT_POST, 'fiRecipientAcctNumber');
             $extra['fiRecipientDob'] = filter_input(INPUT_POST, 'fiRecipientDob');
             $extra['fiRecipientPostCode'] = filter_input(INPUT_POST, 'fiRecipientPostCode');
             $extra['fiRecipientSurname'] = filter_input(INPUT_POST, 'fiRecipientSurname');
             $fiRecipientRules = $this->recipientDetailsRules();
             $fiRecipientErrors = $this->validate($fiRecipientRules, $extra);
             if ($fiRecipientErrors) {
                 $errors = $errors ? $errors + $fiRecipientErrors : $fiRecipientErrors;
             }
         }
         // Check if extra information was failed
         if (!$errors) {
             HelperCommon::setStore('extra', $extra);
             $this->redirect($redirectQ, $redirectP);
         } else {
             $hMessage = new HelperMessage();
             $message = $hMessage->getAllMessages($errors, array('checkIn' => 'Check In', 'checkOut' => 'Check Out', 'numberInParty' => 'Number In Party', 'guestName' => 'Guest Name', 'folioRefNumber' => 'Reference Number', 'dailyRoomRate' => 'Room Rate', 'fiRecipientAcctNumber' => 'Account number', 'fiRecipientDob' => 'Date of birth', 'fiRecipientPostCode' => 'Post code', 'fiRecipientSurname' => 'Surname'));
             $this->error = true;
             $message = "Sorry, the following problems were found: " . $message;
         }
     }
     return $message;
 }
Пример #4
0
 /**
  * Validation for action authorise the transaction
  *
  * @param array $oldData
  * @param array $newData
  *
  * @return string  Returns a String with all messages.
  */
 public function validateAuthoriseAction($oldData, $newData)
 {
     $errors = $this->validate($this->_rules, $newData);
     $message = '';
     // Check if authorise was failed
     if ($errors) {
         $hMessage = new HelperMessage();
         $message = $hMessage->getAllMessages($errors, array('VendorTxCode' => 'Authorise VendorTxCode', 'Description' => 'Authorise Description', 'Amount' => 'Authorise Amount', 'ApplyAVSCV2' => 'ApplyAVSCV2'));
     }
     if ($oldData['cardType'] == 'MAESTRO') {
         $maxAmount = $oldData['amount'];
     } else {
         $maxAmount = $oldData['amount'] * 1.15;
     }
     if ($oldData['capturedAmount'] + $newData['Amount'] > $maxAmount) {
         $currentMaxAmount = $maxAmount - $oldData['capturedAmount'];
         $message = $message ? $message . ', ' : '';
         $message .= 'Authorise Amount is out of range, must be less than ' . number_format($currentMaxAmount, 2) . '.';
     }
     return $message;
 }
Пример #5
0
 /**
  * Action card token page for direct payment
  */
 public function actionCardToken()
 {
     $message = '';
     // Check if form was submitted
     if (count(filter_input_array(INPUT_POST))) {
         $giftAid = !!filter_input(INPUT_POST, 'giftAid');
         $rules = array('cv2' => array(array('notEmpty')));
         $card = array('cardType' => '', 'cardNumber' => '', 'cardHolder' => '', 'startDate' => '', 'expiryDate' => '', 'cv2' => filter_input(INPUT_POST, 'cv2'), 'giftAid' => $giftAid);
         $errors = $this->validate($rules, $card);
         $hMessage = new HelperMessage();
         $message = $hMessage->getAllMessages($errors, array('cv2' => 'Card Verification Value'));
         // Check if card token was failed
         if ($errors) {
             $this->error = true;
             $message = "Sorry, the following problems were found: " . $message;
         } else {
             HelperCommon::setStore('card', $card);
             $this->redirect('direct', 'confirm');
         }
     }
     // render view card token
     $view = new HelperView('direct/card_token');
     $view->setData(array('env' => $this->sagepayConfig->getEnv(), 'vendorName' => $this->sagepayConfig->getVendorName(), 'integrationType' => $this->integrationType, 'error' => $this->error, 'message' => $message, 'allowGiftAid' => $this->sagepayConfig->getAllowGiftAid()));
     $view->render();
 }