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
name age message
file .gitignore Sun Dec 14 19:09:02 -0800 2008 Added a lot of changes in how payment states ar... [edmundo]
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 Tue Jan 20 11:58:01 -0800 2009 Updated readme. [edmundo]
file Rakefile Wed Dec 31 11:46:19 -0800 2008 Changed the way address is handled and some cha... [edmundo]
directory app/ Tue Jan 20 11:57:00 -0800 2009 Updated to work with latest i18n code. [edmundo]
directory config/ Tue Jan 20 11:57:00 -0800 2009 Updated to work with latest i18n code. [edmundo]
directory db/ Wed Dec 31 11:46:19 -0800 2008 Changed the way address is handled and some cha... [edmundo]
directory lib/ Wed Dec 31 11:46:19 -0800 2008 Changed the way address is handled and some cha... [edmundo]
file ps_spree_own_cart_extension.rb Tue Jan 20 11:56:44 -0800 2009 Updated to work with latest i18n code. [edmundo]
directory public/ Fri Nov 21 17:26:09 -0800 2008 Started importing local files. [edmundo]
directory spec/ Wed Dec 31 11:46:19 -0800 2008 Changed the way address is handled and some cha... [edmundo]
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.

Código mantido dentro do diretório app a ser mixado

Atualmente não estou colocando o código dentro do arquivo ..._extension.rb utilizando class_eval, favor dar uma olhada nos últimos commits aqui http://github.com/edmundo/spree/tree/app_override para fazer o código de dentro do app ser mixado automaticamente.

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