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