Tutorial: Retorno Automático

13 de novembro de 2008  |  Publicado em Desenvolvedores  |  9 Comentários

Nosso leitor Paulo Santana pediu mais informações sobre o Retorno Automático PagSeguro. Lá no Fórum do i-Masters, temos uma categoria só para ajudar os nossos clientes e parceiros.

Vamos transcrever aqui o tutorial:

A URL de retorno tem duas funções distintas. Uma é redirecionar o usuário após terminar a transação no PagSeguro para o site da loja, apenas redirecionando à página, sem nenhum dado de POST. A outra é enviar os dados da transação e alteração de status da transação via POST.

O POST é automático, enviado ao final da transação e quando ocorre alteração do status, ambos em background, abrindo uma nova sessão no seu web site. Não é possível a exibição imediata no seu web site dos dados do post (echo, print, Response.Write, etc).

Alguns desenvolvedores enfrentam situações em que não conseguem receber o POST. Seguem abaixo os principais motivos e dicas para resolução do problema:

- É necessário que o website e a URL de retorno estejam hospedados em um domínio válido.

- Não poderá ser uma aplicação local (você nunca conseguirá receber os dados em um ambiente local, como “localhost” por exemplo).

- O código de NPI (Notificação de Pagamento Instantâneo) não conseguirá ler valores de Sessions ou Cookies, porque assim que o PagSeguro envia o POST para o seu web site, é aberta uma nova sessão (conforme mencionado acima).

- Não há restrições de saída no PagSeguro, mas caso você não esteja recebendo nenhum dado do PagSeguro, verifique no seu firewall a liberação do IP de POST do NPI: 200.221.19.20 e IP de Redirecionamento simples: 200.221.19.4.

- Servidor configurado em uma porta da 80 (HTTP) ou 443 (HTTPS).

- Não é possível imprimir nenhum campo do post no momento do recebimento do mesmo (echo, print, Response.Write, etc).

- As informações deverão ser salvas em seu banco de dados, arquivo texto ou XML no momento do recebimento.

- A programação do retorno automático deve enviar de volta para o PagSeguro todos os campos recebidos no POST, mais o comando=validar e o token=”Seu Token”.

- Use o token de segurança para validação da transação.

- Retorne os dados para validação sem nenhuma conversão, exatamente da maneira como recebeu (verifique se a sua string está sendo enviada com Encode, por exemplo: “%20” ou o sinal de adição “+” substituindo o espaço, etc).

- É muito importante sempre colocar um debug em seu código, salvando o erro do debug no seu banco de dados para analisar onde e porque ocorreu o erro no momento do retorno.

- O script em nossa página é apenas ilustrativo, cada desenvolvedor altera de acordo com o próprio sistema.

- Observe todos esses itens, e se ainda você não conseguir receber o POST, entre em contato com nosso suporte técnico, clicando em Atendimento após logar em conta PagSeguro.

Bons negócios!

(e venha para o fórum, saber mais sobre o sistema do PagSeguro)

p.s. tem mais dicas no site da Visie:

Como funciona:http://visie.com.br/pagseguro/retorno-automatico.php

Capturar o retorno automático do PagSeguro, usando a biblioteca: http://visie.com.br/pagseguro/retorno-automatico-php.php
Tags: , , , , , , , ,


Comentários

  1. Veículos Maringá disse:

    24 de dezembro de 2010 às 11:48 (próximo)

    Muito bom. Obrigado, me ajudou muito.

  2. Ramon disse:

    05 de fevereiro de 2011 às 7:02 (próximo)

    Consegui resgatar os dados da transação, só que eu precisaria usar uma informação salva já em uma session, no caso seria o CODCLIENTE, pq com esse retorno eu gero um crédito para o cliente do meu site. Alguém tem uma luz de como eu posso fazer pra resgatar essa session? obrigado desde já.

  3. ANDRÉ LUIZ disse:

    09 de junho de 2011 às 14:06 (próximo)

    Porque então p pagseguro fala no tutorial do painel de controle que existe somente um pedido de POST, agora vc esta falando que existem 2 tipo de de pedido, um com POST e outro sem POST. Mais o próprio pagseguro fala para configurar uma página para validar somente dados em post, nã to entendendo? Não vi nenhuma informação de configurar dados sem POST.

  4. Lúcio disse:

    11 de junho de 2011 às 0:59 (próximo)

    O que acontece quando falha?

    Suponha, por exemplo, uma falha na conexão, ou meu servidor está fora do ar, então o meu POST para a UrlNPI do PagSeguro retorna errado, ou nem retorna. O que acontece?

    O PagSeguro repete o POST até conseguir uma resposta válida? Quantas vezes? De quanto em quanto tempo?

    O PagSeguro não repete o POST e eu perco a informação?

  5. Eduardo disse:

    13 de junho de 2011 às 12:22 (próximo)

    O POST é enviado uma única vez. Caso está situação ocorra a informação fica disponível dentro do painel de controle de sua conta, no Extrato de Transações.

  6. Eduardo disse:

    13 de junho de 2011 às 12:27 (próximo)

    Ao final da transação o cliente é redirecionado via GET para sua página de retorno e em uma outra sessão é feito um POST com os dados da transação.

    No momento em que você receber um request do tipo GET deve exibir uma mensagem de agradecimento pela compra e no momento em que receber um request do tipo POST deve ler as informações contidas nele e fazer o tratamento adequado.

    Mais informações adicione nosso contato do MSN: desenvolvedores@pagseguro.com.br

  7. Isaque Gomes disse:

    29 de fevereiro de 2012 às 14:38 (próximo)

    Cara, seguinte, estou com o problema do POST estar vindo vazio, já tentei todas as formas para mudar isso mas nao consegui será que alguem nao tem uma solução ai nao?

  8. Everton disse:

    10 de março de 2012 às 10:07 (próximo)

    Acho que o PagSeguro deveria ter um tutorial mais explicativo, vídeos talvez…

    A grande maioria dos programadores pecam na hora de receber os dados do post além de confundir muito Retorno automático de dados e Página de redirecionamento.

    Mais uma vez, acho que o PagSeguro deveria ter um tutorial mais explicativo, passo a passo, uma vez que os dados tratam-se de compras e vendas, o que inclui dinheiro e negociações.

  9. Eduardo disse:

    28 de março de 2012 às 13:47 (próximo)

    Boa tarde, Isaque!

    O PagSeguro garante o envio o envio de todas as notificações, o que não quer dizer que o seu sistema irá recebê-las, pois existem vários cenários onde não conseguiremos completar o contato com o seu servidor, como por exemplo, um instabilidade em sua conexão.
    Nesse caso, indicamos o uso da API de Consulta por Intervalo de Datas.
    Para mais detalhes do funcionamento dessa Consulta, acesse: https://pagseguro.uol.com.br/v2/guia-de-integracao/consulta-de-transacoes-por-intervalo-de-datas.html

    E para obter os dados completos de uma transação, a API de Consulta por Código:
    https://pagseguro.uol.com.br/v2/guia-de-integracao/consulta-de-transacoes-por-codigo.html

    Fico à disposição para mais informações.

    Atenciosamente,

Deixe um comentário

Só serão postados comentários referentes às matérias publicadas.
Para atendimento PagSeguro, dúvidas, sugestões ou reclamações visite www.pagseguro.com.br/atendimento

*
Blog do PagSeguro