Integração com PagSeguro Parte 1
Autor: Rodrigo Menezes | Publicado: 2012-12-26T14:14:00-08:00



Conceito e configuração da conta.



1. Introdução
O PagSeguro é uma solução nacional para pagamentos online mantida pela UOL. Estas soluções visam facilitar a vida de compradores e vendedores e a mais famosa é o PayPal.

Como o Paypal não atuava oficialmente no Brasil, era preciso usar cartão de crédito internacional e acabava dificultando as coisas para quem compra e principalmente para quem vende.

O PagSeguro funciona bem e até agora se provou seguro, tanto para quem compra quanto para quem vende.

O maior defeito do PagSeguro, em minha&nbsp;opinião, é a falta de um Sandbox oficial para testes. Até existem opções criadas por terceiros, mas não são suportadas e a que eu testei nem funcionava mais com a API nova de integração.

Isto não é problema para compradores e vendedores, mas dificulta o trabalho dos desenvolvedores pois torna o teste mais trabalhoso e custoso.

Minha intenção aqui é mostrar, em alguns posts, como eu fiz para integrar um sistema meu com o PagSeguro.


2. Fluxo resumido da operação
O fluxo inicia com o usuário finalizando a compra escolhendo o modo de pagamento PagSeguro. Feito isto a aplicação faz o processamento desta venda utilizando a API do PagSeguro e recebe uma URL.

O sistema deve redirecionar o usuário para esta URL, para que ele possa finalizar o pagamento.

Depois que o pagamento é finalizado o usuário é redirecionado de volta para o sistema de origem e o fluxo das notificações se inicia.

O PagSeguro fará um ou mais POSTs em uma página de seu sistema passando dois parâmetros:&nbsp;notificationcode e&nbsp;notificationtype.

São com estas notificações que o PagSeguro informará a seu sistema o que está acontecendo com a transação.

A página que recebe o post deve utilizar o código da notificação para acessar o PagSeguro via API e obter o status da transação, obtendo várias informações como se o pagamento foi autorizado ou não.

Mais detalhes podem ser vistos neste link:&nbsp;https://pagseguro.uol.com.br/integracao/pagamentos-via-api.jhtml

Outra informação importante é que caso o PagSeguro não consiga enviar os dados da notificação para seu sistema, "o PagSeguro irá envia-la novamente a cada 2 horas, até um máximo de 5 tentativas".

Mas caso seu sistema fique fora do ar por mais tempo é&nbsp;possível&nbsp;obter as informações das transações realizando uma consulta por data:&nbsp;https://pagseguro.uol.com.br/v2/guia-de-integracao/consulta-de-transacoes-por-intervalo-de-datas.html.


3. Configuração da Conta

O primeiro passo é converter sua conta para Vendedor ou Empresa, você vai precisar disto para fazer os testes iniciais. Como não há disponibilidade de um sandbox de testes, será necessário realizar umas compras e depois cancelar.



Depois de converter a conta, será&nbsp;possível&nbsp;acessar o menu 'Integrações' e a primeira&nbsp;configuração será &nbsp;a 'Pagina de redirecionamento'.&nbsp;



Essa é a página para qual o cliente será redirecionado depois que finalizar o pagamento no PagSeguro. Eu pessoalmente prefiro o redirecionamento dinâmico, pois em caso de alguma mudança na aplicação, eu não preciso que o cliente reconfigure este parâmetro.



Você vai configurar o nome do parâmetro que o PagSeguro vai utilizar para informar o código da transação. Com este nome, você pode via API buscar as informações sobre esta transação, para informar ao cliente.







O segundo item do menu permite a criação do 'Token de segurança', que será utilizado na autenticação entre o sistema e o PagSeguro. Depois de criado ele fica&nbsp;visível apenas na criação e caso você esqueça ou perca, basta gerar novamente.



No terceiro item é onde ativaremos o 'Pagamento via API'







O quarto item do menu, é o 'Notificação de transações' e será o ultimo a ser configurado. Aqui vamos definir qual página de nosso sistema receberá as notificações sobre as mudanças de status das transações.



Por causa dessa&nbsp;característica, mesmo na fase de desenvolvimento será preciso configurar com uma URL válida.&nbsp;



Isto é chato e as duas possibilidades que eu vejo são:

1. Utilizar seu servidor local. Para isso é preciso que o PagSeguro tenha acesso externo via internet. Isso pode ser complicado caso você esteja acessando a internet via um roteador ADSL ou proxy.

2. Utilizar um servidor de homologação. No meu caso eu criei uma conta no Amazon EC2 e montei um ambiente de homologação.







Nós primeiros testes, para conseguir debugar com a aplicação rodando localmente, eu iniciava o teste de minha maquina e depois monitorava as notificações que eram enviadas pelo PagSeguro para o meu servidor de homologação.



Eu monitorava logando em um arquivo os dados enviados via GET/POST para a página:



================= 2012-12-07 19:06:52 ==================



notificationcode=1F2964-960Z850D85F6-0BB4T3AFBC5E-2997F0

notificationtype=transaction




Com estes dados em mãos eu posso repassar para meu sistema local, via URL no navegador:



processaNotificacao.wsp?notificationcode=1F2964-960Z850D85F6-0BB4T3AFBC5E-2997F0&amp;notificationtype=transaction



Minha recomendação é que todos os POSTs/GETs recebidos pela página de notificação sejam logados, assim caso não seja processado algo em seu sistema por causa de um bug, o processamento pode ser feito manualmente.



No próximo post eu falarei sobre a utilização da API e sobre a criação de tabelas para guardar em banco tudo que foi processado, realizando um controle melhor e evitando o acesso ao PagSeguro sem&nbsp;necessidade.



[]'s