function itShouldInstanceAnShowTransactionUsingClassData()
 {
     $locawebGateway = LocawebGateway::consultar(10);
     $url = $locawebGateway->request()->url . $locawebGateway->request_url_append;
     $this->spec($locawebGateway)->should->beAnInstanceOf('LocawebGateway');
     $this->spec($url)->should->equal('https://api-sandbox.gatewaylocaweb.com.br/v1/transacao/10');
     $this->spec($locawebGateway->request()->httpMethod)->should->equal('get');
     $this->spec($locawebGateway->request()->buildParams())->should->equal('?token=3a5bbed0-50d4-012f-8d73-0026bb5a6241');
 }
Exemple #2
0
 protected function createTransaction($params)
 {
     Mage::log("Enviando Dados Para o Novo Gateway de Pagamento:");
     $filter_params = $params;
     $filter_params["pagamento"]["cartao_numero"] = "[FILTERED]";
     $filter_params["pagamento"]["cartao_cvv"] = "[FILTERED]";
     $filter_params["pagamento"]["cartao_validade"] = "[FILTERED]";
     Mage::log($filter_params);
     try {
         $result = LocawebGateway::criar($params)->sendRequest();
     } catch (Exception $e) {
         Mage::log($e->getMessage());
         Mage::throwException($this->_getHelper()->__('An error happend during the connection to the Gateway.'));
     }
     Mage::log("Resposta do Novo Gateway de Pagamento:");
     Mage::log($result);
     return $result->transacao;
 }
<?php

require "../LocawebGatewayProcessor.php";
LocawebGatewayConfig::setEnvironment('sandbox');
LocawebGatewayConfig::setToken('3a5bbed0-50d4-012f-8d73-0026bb5a6240');
echo "Executando criar:";
$resposta = LocawebGateway::criar(array('url_retorno' => 'http://www.minha-loja.com.br/confirmacao-pedido.php?id=12345', 'capturar' => 'true', 'pedido' => array('numero' => "123", 'total' => "100.00", 'moeda' => "real", 'descricao' => "My Camaro car!"), 'pagamento' => array('meio_pagamento' => 'redecard_ws', 'bandeira' => "visa", 'cartao_numero' => "4012001037141112", 'cartao_cvv' => "973", 'parcelas' => "1", 'tipo_operacao' => "credito_a_vista", 'cartao_validade' => "082015"), 'comprador' => array('nome' => "Bruna da Silva", 'documento' => "27836038881", 'endereco' => "Rua da Casa", 'numero' => "1", 'cep' => "09710240", 'bairro' => "Centro", 'cidade' => "São Paulo", 'estado' => "SP")))->sendRequest();
var_dump($resposta);
echo "Executando capturar:";
$resposta = LocawebGateway::capturar(17)->sendRequest();
var_dump($resposta);
echo "Executando cancelar:";
$resposta = LocawebGateway::cancelar(17)->sendRequest();
var_dump($resposta);
echo "Executando consultar:";
$resposta = LocawebGateway::consultar(17)->sendRequest();
var_dump($resposta);
echo "==================================================================\n";
echo "Executando via form:";
#Para caso de envio via formulário.
$usedData = array('interno' => array('meio_pagamento' => 'redecard_ws', 'url_retorno' => 'http://www.minha-loja.com.br/confirmacao-pedido.php?id=12345', 'capturar_automaticamente' => 'true', 'numero_pedido' => '12345', 'total' => '100.00', 'moeda' => 'real', 'descricao' => 'Something shiny!', 'operacoes_permitidas' => array('credito_a_vista'), 'parcelas_permitidas' => array('1')), 'form' => array('bandeira' => 'visa', 'cartao_numero' => '4012001037141112', 'numero' => '22', 'cartao_cvv' => '973', 'cartao_validade' => '08-2015', 'tipo_operacao' => 'credito_a_vista', 'parcelas' => '1', 'nome' => 'Bruna da silva', 'documento' => '123.456.789-00', 'endereco' => 'Rua da casa', 'cep' => '09710-240', 'bairro' => 'Centro', 'cidade' => 'São Paulo', 'estado' => 'SP'));
$processor = new LocawebGatewayProcessor($usedData['interno'], $usedData['form']);
$resposta = $processor->locawebGateway->sendRequest();
var_dump($resposta);
 function finalizar_compra()
 {
     if (null != $this->session->userdata('logado')) {
         $sessao = $this->session->userdata();
         $frete = $this->calcular_frete(str_replace("-", "", $sessao['cliente']->cep));
         if ($this->input->post('tipo_pagamento') == 'cartao') {
             //Lógica de pagamento por cartão de crédito.
             $this->db->trans_start();
             $dados['cliente'] = $sessao['cliente']->id;
             $dados['produtos'] = $this->cart->total();
             $dados['frete'] = (double) str_replace(",", ".", $frete);
             $dados['status'] = 0;
             $dados['comentarios'] = "Novo pedido inserido no sistema.";
             $this->db->insert('pedidos', $dados);
             $pedido = $this->db->insert_id();
             foreach ($this->cart->contents() as $item) {
                 $dados_item['pedido'] = $pedido;
                 $dados_item['item'] = $item['id'];
                 $dados_item['quantidade'] = $item['qty'];
                 $dados_item['preco'] = $item['price'];
                 $this->db->insert('itens_pedidos', $dados_item);
             }
             $total_a_cobrar = (double) ($this->cart->total() + (double) str_replace(",", ".", $frete));
             if ($this->input->post('parcelamento') == 1) {
                 $operacao = 'credito_a_vista';
             } else {
                 $operacao = 'parcelado_loja';
             }
             require_once './locaweb-gateway-php-master/LocawebGateway.php';
             $array_pedido = array('numero' => $pedido, 'total' => $total_a_cobrar, 'moeda' => 'real', 'descricao' => 'Pedido: ' . $pedido);
             $array_pagamento = array('meio_pagamento' => 'cielo', 'parcelas' => $this->input->post('parcelamento'), 'tipo_operacao' => $operacao, 'bandeira' => $this->input->post('bandeira'), 'nome_titular_cartao' => $this->input->post('cartao_nome'), 'cartao_numero' => $this->input->post('cartao_numero'), 'cartao_cvv' => $this->input->post('cartao_cvv'), 'cartao_validade' => str_replace("/", "", $this->input->post('cartao_validade')));
             $array_comprador = array('nome' => $sessao['cliente']->nome, 'documento' => $sessao['cliente']->cpf, 'endereco' => $sessao['cliente']->rua, 'numero' => $sessao['cliente']->numero, 'cep' => $sessao['cliente']->cep, 'bairro' => $sessao['cliente']->bairro, 'cidade' => $sessao['cliente']->cidade, 'estado' => $sessao['cliente']->estado);
             $array_transacao = array('url_retorno' => base_url('carrinho/finalizar_compra'), 'capturar' => 'true', 'pedido' => $array_pedido, 'pagamento' => $array_pagamento, 'comprador' => $array_comprador);
             $transacao = LocawebGateway::criar($array_transacao)->sendRequest();
             if (!$transacao->transacao->erro) {
                 $this->db->trans_commit();
                 $this->cart->destroy();
                 //ENVIO DO EMAIL DE CONFIRMAÇÃO AQUI.
                 $dados_email['pedido'] = $array_pedido;
                 $dados_email['comprador'] = $array_comprador;
                 $dados_email['transacao'] = $transacao;
                 $this->enviar_confirmacao($dados_email, $sessao['cliente']->email);
             } else {
                 $this->db->trans_rollback();
             }
             $dados_retorno['transacao'] = $transacao;
             $dados_header['categorias'] = $this->categorias;
             $this->load->view('html-header');
             $this->load->view('header', $dados_header);
             $this->load->view('retorno_cartao', $dados_retorno);
             $this->load->view('footer');
             $this->load->view('html-footer');
             $this->db->trans_complete();
         } else {
             if ($this->input->post('tipo_pagamento') == 'boleto') {
                 //A LÓGICA DO PAGAMENTO COM BOLETO!
                 $this->db->trans_start();
                 $dados['cliente'] = $sessao['cliente']->id;
                 $dados['produtos'] = $this->cart->total();
                 $dados['frete'] = (double) str_replace(",", ".", $frete);
                 $dados['status'] = 0;
                 $dados['comentarios'] = "Novo pedido inserido no sistema.";
                 $this->db->insert('pedidos', $dados);
                 $pedido = $this->db->insert_id();
                 foreach ($this->cart->contents() as $item) {
                     $dados_item['pedido'] = $pedido;
                     $dados_item['item'] = $item['id'];
                     $dados_item['quantidade'] = $item['qty'];
                     $dados_item['preco'] = $item['price'];
                     $this->db->insert('itens_pedidos', $dados_item);
                 }
                 $total_a_cobrar = (double) ($this->cart->total() + (double) str_replace(",", ".", $frete));
                 require_once './locaweb-gateway-php-master/LocawebGateway.php';
                 $array_pedido = array('numero' => $pedido, 'total' => $total_a_cobrar, 'moeda' => 'real', 'descricao' => 'Pedido: ' . $pedido);
                 $vencimento_boleto = date('dmY', strtotime('+1 week'));
                 //Dando uma semana de prazo para vencer o boleto.
                 $array_pagamento = array('meio_pagamento' => 'boleto_itau', 'data_vencimento' => $vencimento_boleto);
                 $array_comprador = array('nome' => $sessao['cliente']->nome, 'documento' => $sessao['cliente']->cpf, 'endereco' => $sessao['cliente']->rua, 'numero' => $sessao['cliente']->numero, 'cep' => $sessao['cliente']->cep, 'bairro' => $sessao['cliente']->bairro, 'cidade' => $sessao['cliente']->cidade, 'estado' => $sessao['cliente']->estado);
                 $array_transacao = array('url_retorno' => base_url('carrinho/finalizar_compra'), 'capturar' => 'true', 'pedido' => $array_pedido, 'pagamento' => $array_pagamento, 'comprador' => $array_comprador);
                 $transacao = LocawebGateway::criar($array_transacao)->sendRequest();
                 if (!$transacao->transacao->erro) {
                     $this->db->trans_commit();
                     $this->cart->destroy();
                     $dados_email['pedido'] = $array_pedido;
                     $dados_email['comprador'] = $array_comprador;
                     $dados_email['transacao'] = $transacao;
                     $this->enviar_confirmacao($dados_email, $sessao['cliente']->email);
                 } else {
                     $this->db->trans_rollback();
                 }
                 $dados_retorno['transacao'] = $transacao;
                 $dados_header['categorias'] = $this->categorias;
                 $this->load->view('html-header');
                 $this->load->view('header', $dados_header);
                 $this->load->view('retorno_boleto', $dados_retorno);
                 $this->load->view('footer');
                 $this->load->view('html-footer');
                 $this->db->trans_complete();
             } else {
                 redirect(base_url('pagar-e-finalizar-compra'));
             }
         }
     } else {
         redirect(base_url('login'));
     }
 }