Sistemas de Pagamento
Postado em 13/10/2008 às 09:29
Por coincidência, meus últimos 3 projetos profissionais (não IBM) foram relacionados à sistemas de pagamento.
Se você não é programador, não tem interesse em saber de sistemas de pagamento, e não gosta de detalhes, pule este post :)
Como já disse em outro post, o primeiro foi tentando utilizar o PagSeguro da UOL, mas além do atendimento péssimo, a documentação espalhada em páginas diferentes, o retorno automático não funcionar, ao menos 20% dos pagamentos eram negados pelo sistema deles.
Sem condição de ser usado, mudamos para o PagamentoDigital (já que o f2b não oferece a bandeira Master). Atendimento razoável, documentação centralizada, mas o retorno automático também não funciona. Mas como o pagamento funciona bem, este projeto ficou com PagamentoDigital.
Após isso, o segundo projeto iria aceitar cartões de crédito diretamente no site, sem intermediários. Após o cadastro do cliente aprovado (isso demora um pouco) com as operadoras (Visa, Master, Amex, boletos, etc), o primeiro problema comum: todas estas operadoras fornecem um software que só roda em Windows (cheguei à pensar no uso de uma máquina virtual). A saída foi usar o serviço fornecido pela Locaweb: eles tem um servidor com o software de todas estas operadoras já configurados, com interface de configuração, documentação em PDF e exemplos de código. Muito bom, e tudo funcionou perfeitamente.
Um detalhe interessante aqui: Visa e Amex podem operar em modo teste, e eles também te fornecem um número de cartão para teste. O sistema de testes da Visa retorna aleatoriamente casos em que aceita o pagamento de teste, e casos em que não aceita (o que é legal, é possível testar o sistema em várias condições).
Já a bandeira Master não te dá nada para testar, nem um número de cartão, nem ambiente de testes. Você tem que realmente fazer uma compra, e aí cancelar no sistema deles.
Indo agora para o terceiro projeto: este precisava usar novamente um intermediário de pagamentos... Mas como o site é internacional, e a interface deste site está em inglês, recorremos ao PayPal mesmo (que não tem interface em português para o usuário que vai pagar): tudo funcionou (quase) perfeitamente, eles tem vários manuais em PDF e exemplos de código em várias linguagens.
O único porém é que o código que o PayPal fornece em PHP gera alguns warnings, e tinha um pequeno erro (facilmente corrigível). E o sistema de retorno assíncrono deles não funciona sem primeiro ser configurado no site deles (o manual diz que ele funciona sem ser configurado apenas informando algumas variáveis na hora de uso). Como eles fornecem 2 sistemas de retorno (síncrono - o retorno é feito após o pagamento; assíncrono - qualquer hora eles te enviam um retorno, mas com mais detalhes), ficamos com o síncrono.
Aliás, ainda relacionado ao código fornecido por estes sistemas: o código fornecido pela Locaweb funcionou de primeira; o código fornecido pelo Paypal teve 1 erro e alguns warnings, mas foi fácil de arrumar; o do PagamentoDigital funciona o envio (como o retorno não funciona, não dá pra saber se este funciona); e o código fornecido pelo PagSeguro usava uma função que não era do PHP (e sim de um comércio eletrônico de código aberto). Eu até avisei eles disso, e como corrigirem, mas claro que isso também foi ignorado. A não ser que corrigiram nos últimos meses, depois de termos desistido de usar o sistema deles.