public function firstStep($payDataComercio, $payDataOperacion)
 {
     $order = new Mage_Sales_Model_Order();
     $order->loadByIncrementId($payDataOperacion['OPERATIONID']);
     try {
         require_once Mage::getBaseDir('lib') . '/metododepago2/TodoPago.php';
         $http_header = $this->get_http_header();
         $wsdl = $this->get_wsdls();
         $end_point = $this->get_end_point();
         $todopago_connector = new TodoPago($http_header, $wsdl, $end_point);
         Mage::log("Modulo de pago - TodoPago ==> payDataComercio --> " . json_encode($payDataComercio));
         Mage::log("Modulo de pago - TodoPago ==> payDataOperacion --> " . json_encode($payDataOperacion));
         $first_step = $todopago_connector->sendAuthorizeRequest($payDataComercio, $payDataOperacion);
         Mage::log("Modulo de pago - TodoPago ==> respuesta de sendAuthorizeRequest -->" . json_encode($first_step));
         $order->setData('todopagoclave', $first_step['RequestKey']);
         $order->save();
         $todopagotable = new Todopago_Modulodepago2_Model_Todopagotable();
         $todopagotable->setOrderId($payDataOperacion['OPERATIONID']);
         $todopagotable->setRequestKey($first_step['RequestKey']);
         $todopagotable->setSendauthorizeanswerStatus(Mage::getModel('core/date')->date('Y-m-d H:i:s') . " - " . $first_step["StatusCode"] . " - " . $first_step['StatusMessage']);
         $todopagotable->save();
         if ($first_step["StatusCode"] == -1) {
             if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
                 $order->setStatus('test_todopago_processing');
                 $order->addStatusHistoryComment("Todo Pago (TEST): " . $first_step['StatusMessage']);
             } else {
                 $order->setStatus(Mage::getStoreConfig('payment/todopago_avanzada/order_status'));
                 $order->addStatusHistoryComment("Todo Pago: " . $first_step['StatusMessage']);
             }
             $order->save();
             Mage::log("Modulo de pago - TodoPago ==> redirige a: " . $first_step['URL_Request']);
             $this->_redirectUrl($first_step['URL_Request']);
         } else {
             if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
                 $order->setStatus('test_todopago_canceled');
                 $order->addStatusHistoryComment("Todo Pago (TEST): " . $first_step['StatusMessage']);
             } else {
                 $order->setStatus(Mage::getStoreConfig('payment/todopago_avanzada/estado_denegada'));
                 $order->addStatusHistoryComment("Todo Pago: " . $first_step['StatusMessage']);
             }
             $order->save();
             Mage::log("Modulo de pago - TodoPago ==> redirige a: checkout/onepage/failure");
             Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/failure', array('_secure' => true));
         }
     } catch (Exception $e) {
         Mage::log("Modulo de pago - TodoPago ==> Exception: " . $e);
         if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
             $order->setStatus('test_todopago_canceled');
             $order->addStatusHistoryComment("Todo Pago (TEST)(Exception): " . $e);
         } else {
             $order->setStatus(Mage::getStoreConfig('payment/todopago_avanzada/estado_denegada'));
             $order->addStatusHistoryComment("Todo Pago (Exception): " . $e);
         }
         $order->save();
         Mage::log("Modulo de pago - TodoPago ==> redirige a: checkout/onepage/failure");
         Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/failure', array('_secure' => true));
     }
 }
 public function firstStep($payDataComercio, $payDataOperacion)
 {
     /*COMENTO LAS PARTES DONDE SE UTILIZAN LOS ESTADOS CREADOS POR EL MODULO*/
     Mage::log("init: " . __METHOD__);
     $order = new Mage_Sales_Model_Order();
     $order->loadByIncrementId($payDataOperacion['OPERATIONID']);
     try {
         Mage::log(__METHOD__ . "<-- try - OPERATIONID: " . $payDataOperacion['OPERATIONID']);
         $todopago_connector = Mage::helper('modulodepago2/connector')->getConnector();
         Mage::log("Modulo de pago - TodoPago ==> payDataComercio --> " . json_encode($payDataComercio));
         Mage::log("Modulo de pago - TodoPago ==> payDataOperacion --> " . json_encode($payDataOperacion));
         $first_step = $todopago_connector->sendAuthorizeRequest($payDataComercio, $payDataOperacion);
         if ($first_step["StatusCode"] == 702) {
             Mage::log("Modulo de pago - TodoPago ==> respuesta de sendAuthorizeRequest --> reintento SAR");
             $first_step = $todopago_connector->sendAuthorizeRequest($payDataComercio, $payDataOperacion);
         }
         Mage::log("Modulo de pago - TodoPago ==> respuesta de sendAuthorizeRequest -->" . json_encode($first_step));
         $todopagotable = new Todopago_Modulodepago2_Model_Todopagotable();
         $todopagotable->setOrderId($payDataOperacion['OPERATIONID']);
         $todopagotable->setSendauthorizeanswerStatus(Mage::getModel('core/date')->date('Y-m-d H:i:s') . " - " . $first_step["StatusCode"] . " - " . $first_step['StatusMessage']);
         if ($first_step["StatusCode"] == -1) {
             Mage::log("StatusCode = -1 - OPERATIONID" . $payDataOperacion['OPERATIONID']);
             $todopagotable->setRequestKey($first_step['RequestKey']);
             $todopagotable->save();
             $order->setData('todopagoclave', $first_step['RequestKey']);
             $status = Mage::getStoreConfig('payment/modulodepago2/order_status');
             if (empty($status)) {
                 $status = Mage::getStoreConfig('payment/todopago_avanzada/order_status');
             }
             $state = $this->_get_new_order_state($status);
             if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
                 $message = "Todo Pago (TEST): " . $first_step['StatusMessage'];
             } else {
                 $message = "Todo Pago: " . $first_step['StatusMessage'];
             }
             $order->setState($state, $status, $message);
             $order->save();
             Mage::log("Modulo de pago - TodoPago ==> redirige a: " . $first_step['URL_Request']);
             if (Mage::getStoreConfig('payment/modulodepago2/hibrido') == 1) {
                 if ($this->getRequest()->get('checkout') == "Mage_Checkout") {
                     $url = Mage::getUrl('modulodepago2/formulariocustom/index', array('_secure' => true, 'order' => $order->getIncrementId(), 'requestKey' => $first_step['PublicRequestKey']));
                     echo '{"url":"' . $url . '"}';
                     return;
                 } else {
                     $url = Mage::getUrl('modulodepago2/formulariocustom/insite', array('_secure' => true, 'order' => $order->getIncrementId(), 'requestKey' => $first_step['PublicRequestKey']));
                     $this->_redirectUrl($url);
                     return;
                 }
             }
             $this->_redirectUrl($first_step['URL_Request']);
         } else {
             Mage::log("StatusCode != -1 - OPERATIONID" . $payDataOperacion['OPERATIONID']);
             $status = Mage::getStoreConfig('payment/modulodepago2/estado_denegada');
             if (empty($status)) {
                 $status = Mage::getStoreConfig('payment/todopago_avanzada/estado_denegada');
             }
             $state = $this->_get_new_order_state($status);
             if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
                 $message = "Todo Pago (TEST): " . $first_step['StatusMessage'];
             } else {
                 $message = "Todo Pago: " . $first_step['StatusMessage'];
             }
             $order->cancel();
             Mage::log("Orden cancelada");
             $order->setState($state, $status, $message);
             $order->save();
             Mage::log("Modulo de pago - TodoPago ==> redirige a: checkout/onepage/failure");
             Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/failure', array('_secure' => true));
         }
     } catch (Exception $e) {
         Mage::log("catch : " . __METHOD__);
         Mage::log("Modulo de pago - TodoPago - OPERATIONID: " . $payDataOperacion['OPERATIONID'] . "==> (Exception)" . json_encode($e));
         $status = Mage::getStoreConfig('payment/modulodepago2/estado_denegada');
         if (empty($status)) {
             $status = Mage::getStoreConfig('payment/todopago_avanzada/estado_denegada');
         }
         $state = $this->_get_new_order_state($status);
         if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
             $message = "Todo Pago (TEST)(Exception): " . $e;
         } else {
             $message = "Modulo de pago - TodoPago ==> (Exception)" . $e;
         }
         $order->cancel();
         Mage::log("Orden cancelada");
         $order->setState($state, $status, $message);
         $order->save();
         Mage::log("Modulo de pago - TodoPago ==> redirige a: checkout/onepage/failure");
         Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/failure', array('_secure' => true));
     }
 }