[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Ari Lima
Criador Ari Lima 02/11/2017

Boa noite mestre... estou com problemas ao pegar os dados do carrinho segue o código:
https://pastebin.com/aAJXJg8h

Manager Carlos Ferreira 02/11/2017

Olá, Ari!
Tudo bem?

Quando faz uma transação com Lightbox do PagSeguro no final se ocorreu com sucesso a API devolve um transactionCode que vem no método success;

O que você precisa fazer no seu sistema é uma nova chamada AJAX onde você envia para este transactionCode para ser inserido no banco de dados.

function lightbox(code)
{
    PagSeguroLightbox({
        code: code
        }, {
        success : function(transactionCode) {
            // Faz uma chamada ajax enviando o transactionCode, e salva este código no banco de dados.
        },
        abort : function() {
            alert("Falha inesperada...");
        }
    });
}

Como consultar a transação para analisar se aquela transação (retornada do Lightbox) está aprovada ou não, ou seja, verificar o status da transação: https://dev.pagseguro.uol.com.br/documentacao/pagamento-online/pagamentos/consultando-por-codigo-de-transacao

Qualquer dúvida pode me perguntar. Ok? :-)

Carlos Ferreira
Criador Ari Lima 02/11/2017

 // Faz uma chamada ajax enviando o transactionCode, e salva este código no banco de dados.

 

Carlos seria possível vc fazer essa requisição ajax de inserção na tabela ORDERS para mim? Já tentei de tudo aqui e nada funciona :(    Please....

Ari Lima
Manager Carlos Ferreira 02/11/2017

Olá, Ari!

Eu posso te guiar para conseguir fazer.

Ficaria mais ou menos assim:
function lightbox(code)
{
    PagSeguroLightbox({
        code: code
        }, {
        success : function(transactionCode) {
            // Envia a requisição AJAX com os dados do cartão
            $.ajax({
                url: "{{route('registra.ordem')}}", // URL da requisição
                method: "POST", // Método de requisição (verbo http)
                headers: {
                    // Pega o content do meta csrf-token, para proteção com ataques CSRF
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
                data: {transactionCode: transactionCode}// Passa o transactionCode
            }).done(function(data){
                if( data.success ) {
                    // Redireciona para ver os pedidos
                    window.location.href = "{{ route('my.orders') }}";
                } else {
                    showError();
                }
            }).fail(function() {
                // Exibe os erros 
                showError();
            }).always(function() {
                // Finaliza o preloader
                endPreloader();
            });
        },
        abort : function() {
            showError();
        }
    });
}


Rota:
$this->post('registra-pedido', 'NomeController@metodo')->name('registra.ordem');

Controller:
public function metodo(Request $request, Order $order)
{
    // Recupera o transactionCode
    $transactionCode = $request->transactionCode;

    // Chama o método para registrar a ordem
    $newOrder = $order->createOrder($transactionCode);

    // Verifica se deu certo:
    if ($newOrder)
        return response()->json(['success' => true], 200);

    // Mensagem de falha
    return response()->json(['success' => false], 500);
}

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!