public
Fork of edmundo/spree-ps-spree-own-cart
Description: Support for brazilian online payment service PagSeguro using Spree's own cart.
Homepage:
Clone URL: git://github.com/fellix/spree-ps-spree-own-cart.git
edmundo (author)
Tue Jan 20 11:57:00 -0800 2009
commit  58576ee6531bbc9632e4906660de8f2c1bfe2562
tree    0aa1240b6937d6271535f29b07b7bd83ddb9aa99
parent  e29c098be7f04f9525463e35b4adf2cfc8a896f0
name age message
file .gitignore Loading commit data...
file CONTRIBUTORS Fri Nov 21 17:26:09 -0800 2008 Started importing local files. [edmundo]
file LICENSE.en Fri Nov 21 17:26:09 -0800 2008 Started importing local files. [edmundo]
file README.markdown
file Rakefile
directory app/
directory config/
directory db/
directory lib/
file ps_spree_own_cart_extension.rb
directory public/ Fri Nov 21 17:26:09 -0800 2008 Started importing local files. [edmundo]
directory spec/
README.markdown

PagSeguro Carrinho Próprio (spree-ps-spree-own-cart)

Extensão que fornece suporte ao sistema brasileiro de pagamentos online PagSeguro utilizando o carrinho próprio do Spree.

Instalação

  script/extension install git://github.com/edmundo/spree-ps-spree-own-cart.git

Como funciona

Esta extensão foi baseada na extensão pp_website_standard (suporte ao PayPal Website Payment Standard) desenvolvida pelo Gregg Pollack, portanto funciona de forma bastante similar sobrepondo a finalização padrão do pedido de forma que ela seja enviada a um gateway externo e finalizada diretamente fora do site pela interface web do gateway. Na finalização do pedido fica visível o botão customizado indicando que o pedido será enviado ao PagSeguro.

Funcionalidades

  • Envio do pedido de compra ao PagSeguro (isso é o mínimo que essa extensão deve fazer).
  • Posicionada após as etapas de preenchimento de informações de envio (endereço e frete) para que já sejam incluídas no pedido e enviadas ao PagSeguro.
  • Processamento, validação (incluindo suporte a token) e registro de notificações.
  • Acompanhamento do estado do pagamento incluindo o histórico de notificações recebidas através da interface administrativa juntamente com as informações do pedido.

Estado atual

Em desenvolvimento.

Pendente

  • Revisar e fazer funcionar de acordo com as últimas mudanças no workflow dos pedidos inseridas no Spree dia 09/01/08.
  • Corrigir problemas de troca de conjunto de caracteres (o PagSeguro utiliza ISO-8859-1 enquanto o Spree utiliza UTF-8).
  • Possibilitar a configuração do tipo de frete (cálculo próprio, PAC calculado pelo PagSeguro, Sedex calculado pelo PagSeguro) através da interface gráfica.
  • Fazer a interface de testes ficar mais parecida com o servidor do PagSeguro.
  • Testar em produção (já que o PagSeguro não tem servidor de testes).

Configuração

Não é necessário "escolher" o PagSeguro como forma de pagamento já que a finalização padrão está sendo sobreposta. Você pode configurar a sua conta utilizada no PagSeguro acessando as configurações da extensão através do módulo administrativo.

gems necessários

  • activerecord-tableless

Screenshots

Exemplos de funcionalidades acessíveis através da interface, (a customização do layout não está incluída).

Acompanhamento do estado dos pedidos

Acompanhamento do estado do pagamento e notificações recebidas

Testes

O sistema tem algumas ações que respondem com respostas pré-definidas imitando o servidor do PagSeguro, você pode rodar duas instâncias do sistema e fazer uma utilizar a outra como servidor de testes, esse é o padrão. Ou você pode fazer o download do ambiente de testes em http://visie.com.br/pagseguro/ambientetestes.php. Conforme as instruções, você deve rodá-lo e ele ficará disponível localmente na porta 443. Eu particularmente não altero o arquivo /etc/hosts, a extensão tenta utilizar automaticamente a url de testes como gateway de pagamento se você setar a opção "Sempre utilizar o servidor de testes" ou rodar o sistema em modo de desenvolvimento.

Agradecimentos

Ao Gregg Pollack por ter publicado a extensão pp_website_standard e ter me poupado bastante trabalho.

Diagramas de Estado (ilustrando as mudanças efetuadas)

Original

Alterado