Ejemplo n.º 1
0
 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));
     }
 }
Ejemplo n.º 2
0
 public function getMeiosPagamentoUrl()
 {
     return Akatus_Akatus_Helper_Data::getMeiosPagamentoUrl();
 }
Ejemplo n.º 3
0
 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.");
             }
         }
     }
 }