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