public function entidadSelectAction()
 {
     $tarjeta = $this->getRequest()->get('tarjeta');
     $wsdls = $this->get_wsdls();
     $http_header = $this->get_http_header();
     $end_point = $this->get_end_point();
     require_once Mage::getBaseDir('lib') . '/metododepago2/TodoPago.php';
     $connector = new TodoPago($http_header, $wsdls, $end_point);
     $merchant = Mage::getStoreConfig('payment/todopago_modo/idstore');
     try {
         $pay_methods = $connector->getAllPaymentMethods(array('MERCHANT' => $merchant));
     } catch (Exception $e) {
         $exception['Operations']['Exception'] = $e;
         return $exception;
     }
     if (sizeof($pay_methods['PaymentMethod'][$tarjeta]['PromosCollection']) == 0) {
         echo "Cupón sin entidad Bancaria";
     } else {
         if (sizeof($pay_methods['PaymentMethod'][$tarjeta]['PromosCollection']['Promo']['BanksCollection']['Bank'][0]) == 0) {
             echo '<lable id="entidad_label">Entidad:</lable><br />';
             echo '<select id="bancos" name="payment[banco]">';
             echo '<option>' . $pay_methods['PaymentMethod'][$tarjeta]['PromosCollection']['Promo']['BanksCollection']['Bank']['Name'] . '</option>';
             echo "</select>";
         } else {
             $bancos = $pay_methods['PaymentMethod'][$tarjeta]['PromosCollection']['Promo']['BanksCollection']['Bank'];
             echo '<lable id="entidad_label">Entidad:</lable><br />';
             echo '<select id="bancos" name="payment[banco]">';
             foreach ($bancos as $value) {
                 echo '<option>' . $value['Name'] . '</option>';
             }
             echo "</select>";
         }
     }
 }
 public function get_pay_methods()
 {
     $wsdls = $this->get_wsdls();
     $http_header = $this->get_http_header();
     $end_point = $this->get_end_point();
     require_once Mage::getBaseDir('lib') . '/metododepago2/TodoPago.php';
     $connector = new TodoPago($http_header, $wsdls, $end_point);
     $merchant = Mage::getStoreConfig('payment/todopago_modo/idstore');
     try {
         return $connector->getAllPaymentMethods(array('MERCHANT' => $merchant));
     } catch (Exception $e) {
         $exception['Operations']['Exception'] = $e;
         return $exception;
     }
 }
Example #3
0
 public function getLastStatus()
 {
     require_once Mage::getBaseDir('lib') . '/metododepago2/TodoPago.php';
     $wsdls = $this->get_wsdls();
     $http_header = $this->get_http_header();
     $end_point = $this->get_end_point();
     $connector = new TodoPago($http_header, $wsdls, $end_point);
     $order_id = $this->getRequest()->get('order_id');
     $id = $this->getOrderIncrementId($order_id);
     if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
         $merchant = Mage::getStoreConfig('payment/todopago_modo/idstore_test');
     } else {
         $merchant = Mage::getStoreConfig('payment/todopago_modo/idstore');
     }
     try {
         return $connector->getStatus(array('MERCHANT' => $merchant, 'OPERATIONID' => $id));
     } catch (Exception $e) {
         $exception['Operations']['Exception'] = "Error el consumir Web Service Todopago";
         return $exception;
     }
 }
 public function lastStep($order_key, $answer_key)
 {
     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);
     // /a este metodo es al que me va a devolver el gateway en caso que todo salga ok
     Mage::log("Modulo de pago - TodoPago ==> secondStep - orderid: " . $order_id);
     Mage::log("Modulo de pago - TodoPago ==> secondStep - AnswerKey: " . $answer_key);
     $order = new Mage_Sales_Model_Order();
     $order->loadByIncrementId($order_key);
     if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
         $merchant = Mage::getStoreConfig('payment/todopago_modo/idstore_test');
     } else {
         $merchant = Mage::getStoreConfig('payment/todopago_modo/idstore');
     }
     // Security
     if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
         $security = Mage::getStoreConfig('payment/todopago_modo/codigo_seguridad_test');
     } else {
         $security = Mage::getStoreConfig('payment/todopago_modo/codigo_seguridad');
     }
     $requestkey = $order->getTodopagoclave();
     // ahora vuelvo a consumir web service para confirmar la transaccion
     $optionsAnswer = array('Security' => $security, 'Merchant' => $merchant, 'RequestKey' => $requestkey, 'AnswerKey' => $answer_key);
     Mage::log("Modulo de pago - TodoPago ==> secondStep (" . $order_id . ") - AnswerKey: " . json_encode($optionsAnswer));
     try {
         $second_step = $todopago_connector->getAuthorizeAnswer($optionsAnswer);
         Mage::log("Modulo de pago - TodoPago ==> secondStep (" . $order_id . ") - {$second_step}: " . json_encode($second_step));
         $todopagotable = new Todopago_Modulodepago2_Model_Todopagotable();
         $todopagotable->load($order_key, "order_id");
         $todopagotable->setAnswerKey($answer_key);
         $todopagotable->setGetauthorizeanswerStatus(Mage::getModel('core/date')->date('Y-m-d H:i:s') . " - " . $second_step["StatusCode"] . " - " . $second_step['StatusMessage']);
         $todopagotable->save();
         //para saber si es un cupon
         if (strlen($second_step['Payload']['Answer']["BARCODE"]) > 0) {
             if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
                 $order->setStatus(Mage::getStoreConfig('test_todopago_offline'));
                 $order->addStatusHistoryComment("Todo Pago (TEST): " . $second_step['StatusMessage']);
             } else {
                 $order->setStatus(Mage::getStoreConfig('payment/todopago_avanzada/estado_offline'));
                 $order->addStatusHistoryComment("Todo Pago: " . $second_step['StatusMessage']);
             }
             $order->save();
             Mage_Core_Controller_Varien_Action::_redirect('modulodepago2/cupon/index', array('_secure' => true, 'nroop' => $order_id, 'venc' => $second_step['Payload']['Answer']["COUPONEXPDATE"], 'total' => $second_step['Payload']['Request']['AMOUNT'], 'code' => $second_step['Payload']['Answer']["BARCODE"], 'tipocode' => $second_step['Payload']['Answer']["BARCODETYPE"], 'empresa' => $second_step['Payload']['Answer']["PAYMENTMETHODNAME"]));
         } elseif ($second_step['StatusCode'] == -1) {
             if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
                 $order->setStatus('test_todopago_complete');
                 $order->addStatusHistoryComment("Todo Pago (TEST): " . $second_step['StatusMessage']);
             } else {
                 $order->setStatus(Mage::getStoreConfig('payment/todopago_avanzada/order_aprov'));
                 $order->addStatusHistoryComment("Todo Pago: " . $second_step['StatusMessage']);
             }
             $order->save();
             Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/success', array('_secure' => true));
         } elseif ($second_step['StatusCode'] != -1) {
             if (Mage::getStoreConfig('payment/modulodepago2/modo_test_prod') == "test") {
                 $order->setStatus('test_todopago_canceled');
                 $order->addStatusHistoryComment("Todo Pago (TEST): " . $second_step['StatusMessage']);
             } else {
                 $order->setStatus(Mage::getStoreConfig('payment/todopago_avanzada/estado_denegada'));
                 $order->addStatusHistoryComment("Todo Pago: " . $second_step['StatusMessage']);
             }
             $order->save();
             Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/failure', array('_secure' => true));
         }
     } catch (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_Core_Controller_Varien_Action::_redirect('checkout/onepage/failure', array('_secure' => true));
     }
 }