SolidusInter
Integração do Banco Inter com o Solidus para pagamentos via PIX.
Sobre
SolidusInter é uma extensão para o Solidus que permite integração com a API do Banco Inter para processamento de pagamentos via PIX. A gem oferece uma solução completa para gerar códigos PIX, QR codes e processar pagamentos em tempo real.
Funcionalidades
- ✅ Geração automática de códigos PIX
- ✅ Criação de QR codes para pagamento
- ✅ Validação de pagamentos em tempo real
- ✅ Integração completa com o admin do Solidus
- ✅ Suporte para diferentes chaves PIX
- ✅ Interface responsiva para mobile e desktop
- ✅ Webhooks para confirmação automática de pagamentos
Instalação
Adicione esta linha ao Gemfile da sua aplicação:
gem 'solidus_inter'
Execute:
$ bundle install
Execute o gerador de instalação:
$ rails generate solidus_inter:install
Isso irá:
- Copiar as migrações necessárias
- Executar as migrações (se você confirmar)
Configuração
1. Credenciais do Banco Inter
Você precisará das seguintes credenciais do Banco Inter:
- Client ID: ID do cliente fornecido pelo Banco Inter
- Client Secret: Chave secreta fornecida pelo Banco Inter
- Chave PIX: Sua chave PIX cadastrada no Banco Inter
- Conta Corrente: Número da conta corrente
- Certificados: Certificado (.crt) e chave privada (.key) fornecidos pelo Banco Inter
2. Configuração do Payment Method
No admin do Solidus, vá para:
Settings→Payment Methods- Clique em
New Payment Method - Selecione
SolidusInter::InterPixcomo tipo - Configure as preferências:
- Client ID: Seu client ID do Banco Inter
- Client Secret: Seu client secret do Banco Inter
- Chave PIX: Sua chave PIX
- Conta Corrente: Número da sua conta corrente
- CRT: Conteúdo do certificado (.crt)
- Key: Conteúdo da chave privada (.key)
Uso
Fluxo de Pagamento
- Checkout: O cliente seleciona PIX como método de pagamento
- Geração: A gem gera automaticamente o código PIX e QR code
- Pagamento: O cliente usa o app do banco para pagar
- Confirmação: O pagamento é confirmado via webhook ou polling
- Finalização: O pedido é processado automaticamente
Códigos de Estado
A gem controla automaticamente os seguintes estados de pagamento:
pending: Pagamento aguardando confirmaçãopaid: Pagamento confirmadoexpired: Pagamento expiradocancelled: Pagamento cancelado
API
Principais Classes
SolidusInter::InterPix
Classe principal do método de pagamento que herda de Spree::PaymentMethod:
payment_method = SolidusInter::InterPix.new
payment_method.create_payment(order) # Cria pagamento PIX
payment_method.find_payment(txid) # Busca pagamento por txid
SolidusInter::PixPaymentSource
Representa a fonte de pagamento PIX:
source = SolidusInter::PixPaymentSource.new
source.paid? # Verifica se foi pago
source.expired? # Verifica se expirou
source.active? # Verifica se está ativo
SolidusInter::InterClient
Cliente para comunicação com a API do Banco Inter:
client = SolidusInter::InterClient.new(payment_method)
client.get_payment(txid) # Busca pagamento
client.create_payment(data) # Cria novo pagamento
Personalização
Views
As views podem ser customizadas copiando-as para sua aplicação:
app/views/spree/admin/payments/source_forms/_inter_pix.html.erb
app/views/spree/admin/payments/source_views/_inter_pix.html.erb
app/views/spree/api/payments/source_views/_inter_pix.jbuilder
Desenvolvimento
Configuração do Ambiente
git clone https://github.com/todasessascoisas/solidus_inter.git
cd solidus_inter
bundle install
Dependências
- Ruby: >= 2.5, < 4
- Solidus: Compatível com versões atuais
- inter_api: API client para o Banco Inter
- solidus_brazilian_adaptations: Adaptações brasileiras para Solidus
- rqrcode: Geração de QR codes