Esta semana estou passando muita raiva ao tentar desenvolver a integração de um sistema com o PagSeguro. Fiquei um bom tempo estudando os tutoriais, lendo em fóruns e cheguei a enviar emails diversos para o PagSeguro e não obtive respostas.

No meu caso o procedimento de testes fica ainda mais complicado, especialmente porque não estou usando as linguagens quem tem bibliotecas oficiais oferecidas. Estou trabalhando em um projeto usando Web2Py e Google App Engine, que oferece algumas limitações. Nada tão complicado que não possa ser contornado, mas é em Python e não posso simplesmente aproveitar diretamente os códigos .NET, Java ou PHP oferecidos. Os códigos oferecidos por terceiros ajudam bastante, mas é preciso fazer muitas adaptações e testes. Este é o grande problema, que discuto abaixo!

Estou insatisfeito! O processo para “me tornar cliente” já está sendo penoso, complicado e solitário. Imagine como será no momento de resolver problemas de pagamentos que podem vir a ocorrer?

Tem que exisitir uma maneira oficial e certa de simular sem ter que fingir um pagamento com meus dados reais cada F5 que você fizer no navegador! Da maneira que sugerem para fazer é uma espécia de gambiarra. Você gera o pagamento mas nunca paga, mas aí o status do pagamento nunca vai para “pago”. Há também números de cartão de crédito para testes, mas o teste acaba sendo bem demorado de se fazer. Até oferecem um script para “montar um servidor” de testes no Linux, e dizem “No Mac também é possível!” com se isso fosse um favor que estivessem nos fazendo! Ao que parece, tanto para Windows ou para Mac o trabalho foi feito por terceiros e apenas disponibilizado no site do PagSeguro, sendo que há links quebrados na página! Valorizo demais iniciativas como esta dos desenvolvedores que compartilharam o resultado de seu trabalho, possivelmente fruto da única opção para testar o PagSeguro: “se virar”!

O que mais me decepciona é não haver um ambiente de testes integrado ao PagSeguro que possa ser usado independente da linguagem de programação e sistema operacional utilizados. Isto é ridículo!

Uma coisa interessante que até me motivou a escrever este artigo foi encontrar o concorrente MOIP na primeira posição do Google ao procurar por “sandbox pagseguro ” (sem aspas). É até piada uma empresa do porte do UOL dominar o mercado no Brasil mesmo com tanto descaso com o desenvolvedor. Só o pioneirismo mesmo explica isso! Do ponto de vista do comprador, escolher o melhor sistema de pagamento pode bem ser mais simples.

Sandbox PagSeguro

O Moip vai acabar fazendo um sandbox pro PagSeguro!

Bom… mas quem critica precisa ao menos oferecer alternativas ou ideias para solucionar a questão! E isso eu posso fazer!

O sistema de notificação é todo baseado em requisições HTTP do tipo POST e GET e os testes que qualquer desenvolvedor precisa fazer se resumem a:

  • Saber se o seu sistema entende o POST enviado pelo PagSeguro
  • Saber se o PagSeguro entendo o POST ou GET enviados do seu sistema para ele.

O sistema de pagamento de cada loja virtual ou site de serviços é certamente bem diferente, mas no que tange à integração de sistemas com o PagSeguro, não há nada mais a ser testado. Todo o resto tem a ver com a lógica específica do pagamento de cada aplicação, aí o PagSeguro não entra diretamente. Então, como o PagSeguro pode ajudar? Abaixo segue um exemplo simples de como poderia ser criado um sistema de testes para a API de notificações.

Cada conta teria por padrão um ambiente de testes, um sandbox voltado ao desenvolvimento, tanto para contas de compradores quanto de vendedores. Neste ambiente haveria apenas algumas diferenças com relação ao ambiente normal de funcionamento do PagSeguro:

  • As URLs em que o PagSeguro recebe informações para testes seriam diferentes ou haveria mais uma parâmetro indicando que se trata de um teste.
  • Haveria uma listagem de todas as transações de testes, independente do status das mesmas.
  • A mudança de status dos pagamentos fictícios seriam feitas através de um botão com um SELECT do lado, para escolher o status.
  • O envio do POST de notificação seria feito também através de um botão na interface de testes.

Com isso seria possível ao desenvolvedor testar cada passo do funcionamento da integração sem ter que ficar criando “servidores” fictícios e ainda não tendo certeza de que a integração funcionou perfeitamente. Concorrentes como o MOIP e o PayPal já oferecem algo semelhante, mas por outros motivos achei melhor usar o PagSeguro, algo que irei reavaliar hoje.

Testar PagSeguro

Como testar o PagSeguro: só comprando de verdade!

Mas nem tudo é ruim. Tenho que elogiar os tutorias do PagSeguro: eles são diretos e fáceis se seguir. Porém você não tem como ter certeza se fez o trabalho corretamente.

Mas respondendo à pergunta do título, você precisa usar muita imaginação para testar sua implementação no PagSeguro se você não está usando as libs oficiais fornecidas por eles. Qualquer ambiente de testes que você criar pode ficar desatualizado caso mude algo no funcionamento da API e é por isso que não farei algo genérico e completo com este intuito. A melhor maneira de testar é dividir os testes e ir criando as funções que testam cada uma das implementações. Separe a regra de negócio que controla os pagamentos das funções que trocam informações com o PagSeguro. Teste tudo de forma separada que será menos complicado.

Ao procurar por “sandbox pagseguro”, depois da página do Moip há alguns projetos de terceiros que servem para testar a API V2, mas eles são na licença MIT e o próprio desenvolvedor deixa claro que o código foi feito em dois dias, mal testou e ele pode não funcionar. Em casos assim prefiro fazer o meu próprio, mesmo reconhecendo a nobreza e boa vontade de quem já divulgou o trabalho que fez.

Quando eu terminar o processo e se eu não desistir do PagSeguro por este motivo, disponibilizarei os arquivos que usei para testar a minha integração do PagSeguro com a nova API de notificações!

Escrevi este artigo em outubro de 2012 e até aqui não havia nada oficial para testar o PagSeguro! Espero que criem logo, facilitando a vida de quem quer trazer novos projetos para este sistema de pagamentos! Espero que o PagSeguro entenda esta crítica como construtiva… e enquanto isto vou tentando resolver minhas dúvidas com o suporte, especialmente sobre como automatizar o sistema de assinaturas fornecido pelo PagSeguro.

E você? Chegou a este artigo procurando maneiras de testar a integração de sua aplicação no PagSeguro? Por favor deixe um comentário contando a sua experiência e diga em qual linguagem e plataforma está desenvolvendo!

10 comentários para “PagSeguro – Como testar sua implementação?”

  1. Emanuel Costa

    Impressionante como um sistema como pagseguro não possui um sandbox ou ambiente de testes…

    Responder
    • Equipe Palpite Digital

      Exatamente. Estou indo bem com o Moip em outros projetos. Agora não vejo mais porque usar o Pagseguro.

      Responder
  2. Alex L

    Estou integrando um site ao pagSeguro e encontrei este POST (PagSeguro – Como testar sua implementação? ) e pelo que eu estou concluindo, não tem muito o que fazer não.
    .
    Alguns sites, como este:
    http://ajuda.uolhost.com.br/index.php?p=resposta&res=931#rmcl
    Por exemplo, dão uns números de cartões para simular os pagamentos.
    .
    Aninda não sei se é viável, mas em breve vou ter que testar de alguma forma.

    Responder
    • Equipe Palpite Digital

      Oi Alex L,

      Eu estou no Moip.
      Desisti mesmo do PagSeguro por causa da falta de possibilidade de simular e do pouco interesse deles em facilitar a vida do desenvolvedor.
      Certamente há casos de sucesso com ambos, mas eu preferi o Moip mesmo!
      Espero que você consiga sua implementação!

      Responder
  3. Nélio Costa

    Putz…ótimo artigo.
    Mas e aí…passou mais de um ano e nada ainda? Impossível testar? Tem que ficar comprando e estornando?

    Responder
    • Equipe Palpite Digital

      Oi Nélio,

      Eu desisti do PagSeguro e consegui fazer com o Moip. Infelizmente não teve outro jeito.

      Responder
  4. Uandisson

    Olá Palpite,

    Pode compartilhar a forma como você integrou o moip e web2py?

    Grato.

    Responder
  5. Delivery-Ti

    Olá galera estou com dois projetos praticamente parados por não saber fazer com o pagseguro, trabalho com asp.net, um deles é assinatura e não sei como fazer o outro é uma loja virtual já fiz os testes no servidor de teste e deu tudo certo ate agora, só ão estou conseguindo passar o codigo-transação e o status? _transacão para view para que o usuário possa ver o que ocorreu em seu pagamento alguém pode me ajudar por favor em ambos.
    Me ajudem a criar essa assinatura e postamos um POST bem completo desde a captura das informações para enviar para o pagseguro ate o recebimento das notificações.
    Contate: delivery@deliveryti.com

    Responder
    • Equipe Palpite Digital

      Olá,
      Qual o erro você tem recebido?

      Responder

Deixe um comentário

  • (não será divulgado)