Ejemplo n.º 1
0
 /**
  * La funcion valida que existan plugins para realizar el pago
  * y organiza la información para enviarsela al plugin
  */
 private function _afterSave()
 {
     // Se obtiene el objeto que representa la orden
     $order = new AsomClassOrder($this->_order);
     // Se obtiene la informacion relevante para el pago
     // de la orden
     $data = $order->getOrder();
     $paymentInfo = $order->getPaymentValues();
     // Se termina de completar el objeto
     $paymentInfo->Reference = $data->recloc;
     $paymentInfo->AirlineCode = $data->provider;
     // Se indica si el vuelo es nacional o internacional
     $paymentInfo->isNational = $order->isNational();
     // Se llaman todos los plugins que se tengan instalados para
     // el validaciones antes del pago
     JPluginHelper::importPlugin('amadeus');
     $dispatcher = JDispatcher::getInstance();
     $answer = $dispatcher->trigger('onBeforePayment', array($paymentInfo, $this->_delegate->getIDPaymentMethod()));
     $app = JFactory::getApplication();
     if (!count($answer)) {
         $app->redirect('index.php', JText::_('ORDER_SAVE'));
     } elseif (in_array(false, $answer, true)) {
         $app->redirect('index.php', JText::_('PAYMENT ERROR'), 'error');
     }
     return true;
 }
Ejemplo n.º 2
0
 public function retry()
 {
     $order = (int) JRequest::getVar('order', '', 'post');
     //Se valida que exista un hash con la orden generada, para mostrar asi el resultado, y evitar
     //que otros usuarios vean otras ordenes
     $code = JFactory::getApplication()->getUserState('asom.code', '');
     $config = new JConfig();
     $secret = sha1($order . $config->secret);
     if ($order != 0 && $secret == $code) {
         // Directorio que contiene la libreria que consta de interfaces y clases para
         // integrarse con el AmadeuS Order Manager
         $library = JPATH_ROOT . DS . 'administrator' . DS . 'components' . DS . 'com_asom' . DS . 'library';
         // Se registra el directorio, para que dinamicamente cargue las clases necesarias.
         JLoader::registerPrefix('Asom', $library);
         $order = new AsomClassOrder($order);
         // Se obtiene la informacion relevante para el pago
         // de la orden
         $data = $order->getOrder();
         $paymentInfo = $order->getPaymentValues();
         // Se termina de completar el objeto
         $paymentInfo->Reference = $data->recloc;
         $paymentInfo->AirlineCode = $data->provider;
         // Se indica si el vuelo es nacional o internacional
         $paymentInfo->isNational = $order->isNational();
         // Se llaman todos los plugins que se tengan instalados para
         // el validaciones antes del pago
         JPluginHelper::importPlugin('amadeus');
         $dispatcher = JDispatcher::getInstance();
         $paymentMethod = JRequest::getVar('payment', '', 'post');
         $answer = $dispatcher->trigger('onBeforePayment', array($paymentInfo, $paymentMethod));
         $app = JFactory::getApplication();
         if (!count($answer)) {
             $app->redirect('index.php', JText::_('ORDER_SAVE'));
         } elseif (in_array(false, $answer, true)) {
             $app->redirect('index.php', JText::_('PAYMENT ERROR'), 'error');
         }
         return true;
     } else {
         JFactory::getApplication()->redirect('index.php', JText::_('ORDER IS NOT VALID, TRY AGAIN'), 'error');
     }
 }