public function indexAction() { $orderId = $this->getRequest()->getParam('order', false); if ($orderId) { $url = Akatus_Akatus_Helper_Data::getEstornoUrl(); $order = Mage::getModel('sales/order')->load($orderId); $xml = $this->getXML($order); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0"); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $xml); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); curl_close($curl); $responseArray = Akatus_Akatus_Helper_Data::xml2array($response); if ($responseArray['resposta']['codigo-retorno']['value'] == '0') { Mage::getSingleton('adminhtml/session')->addSuccess('Transação estornada com sucesso. Aguarde o NIP para a atualização do pedido na sua loja.'); } else { Mage::getSingleton('adminhtml/session')->addError('Não foi possível estornar a transação: ' . utf8_decode($responseArray['resposta']['mensagem']['value'])); } session_write_close(); $this->_redirect('adminhtml/sales_order/view/', array('order_id' => $orderId)); } }
public function enviaGateway($order, $xml) { $orderId = $order->getId(); $url = Akatus_Akatus_Helper_Data::getCarrinhoUrl(); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0"); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $xml); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $ret = curl_exec($curl); curl_close($curl); $data = Akatus_Akatus_Helper_Data::xml2array($ret); if ($this->getConfigData('module_debug') == '1') { Mage::throwException("XML RECEBIDO:\n\n" . $ret . "\n\n\nXML Enviado:\n" . $xml); } Mage::Log("..:: ENVIADO ::..\n\n" . $this->filter($xml) . "\n\n ..:: RECEBIDO ::..\n\n" . $ret); $info = $this->getInfoInstance(); $formapagamento = $info->getCheckFormapagamento(); $resposta = $data["resposta"]["status"]["value"]; if ($resposta == "erro") { $stateAndStatus = Mage_Sales_Model_Order::STATE_CANCELED; $order->setState($stateAndStatus, $stateAndStatus); $order->setStatus($stateAndStatus); $order->save(); Mage::Log('Um erro ocorreu ao efetuar transação: ' . $data["resposta"]["descricao"]["value"]); Mage::throwException("Não foi possível realizar a transação."); } else { if ($resposta == "Em Análise") { try { $this->protectCardNumber($info); $transacaoId = $data["resposta"]["transacao"]["value"]; $this->SalvaIdTransacao($orderId, $transacaoId); $stateAndStatus = Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW; $order->setState($stateAndStatus, $stateAndStatus); $order->setStatus($stateAndStatus); $order->save(); $msg = "Seu pedido foi realizado com sucesso. Estamos aguardando a confirmação de sua administradora e assim que o pagamento for liberado enviaremos o produto."; Mage::getSingleton('checkout/session')->addSuccess(Mage::helper('checkout')->__($msg)); } catch (Exception $e) { Mage::Log($e->getMessage()); } } else { if ($resposta == "Aguardando Pagamento" || $resposta == "Processando") { $url_base = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); if ($formapagamento == "boleto") { $url_destino = Akatus_Akatus_Helper_Data::getBoletoUrl(); $str = $data['resposta']['transacao']['value']; $url_destino .= base64_encode($str) . '.html'; $info->setCheckBoletourl($url_destino); $info->save(); $transacaoId = $data["resposta"]["transacao"]["value"]; $this->SalvaIdTransacao($orderId, $transacaoId); $msg = 'Transação realizada com sucesso. Clique no botão abaixo para imprimir seu boleto.<br/>'; $msg .= "<a href='" . $url_destino . "' target='_blank'><img src='" . $url_base . "skin/frontend/default/default/images/boleto.gif' /></a>"; Mage::getSingleton('checkout/session')->addSuccess(Mage::helper('checkout')->__($msg)); } if ($formapagamento == "tef") { $url_destino = Akatus_Akatus_Helper_Data::getTefUrl(); $str = $data['resposta']['transacao']['value']; $url_destino .= base64_encode($str) . '.html'; $transacaoId = $data["resposta"]["transacao"]["value"]; $this->SalvaIdTransacao($orderId, $transacaoId); $msg = 'Transação realizada com sucesso. Clique no botão abaixo e você será redirecionado para seu banco.<br/>'; $msg .= "<a href='" . $url_destino . "' target='_blank'><img src='" . $url_base . "/skin/frontend/default/default/images/tef.gif' /></a>"; Mage::getSingleton('checkout/session')->addSuccess(Mage::helper('checkout')->__($msg)); } } else { $stateAndStatus = Mage_Sales_Model_Order::STATE_CANCELED; $order->setState($stateAndStatus, $stateAndStatus, 'Pagamento não autorizado pela operadora de cartão de crédito'); $order->setStatus($stateAndStatus); Mage::getModel('core/resource_transaction')->addObject($info)->addObject($order)->save(); Mage::Log('Pagamento não autorizado. ID do pedido: ' . $order->getId()); Mage::throwException("Pagamento não autorizado.\nConsulte a operadora do seu cartão de crédito para maiores informações."); } } } }