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