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:

  1. SettingsPayment Methods
  2. Clique em New Payment Method
  3. Selecione SolidusInter::InterPix como tipo
  4. 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

  1. Checkout: O cliente seleciona PIX como método de pagamento
  2. Geração: A gem gera automaticamente o código PIX e QR code
  3. Pagamento: O cliente usa o app do banco para pagar
  4. Confirmação: O pagamento é confirmado via webhook ou polling
  5. Finalização: O pedido é processado automaticamente

Códigos de Estado

A gem controla automaticamente os seguintes estados de pagamento:

  • pending: Pagamento aguardando confirmação
  • paid: Pagamento confirmado
  • expired: Pagamento expirado
  • cancelled: 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