Integração de Gateway de Pagamento
Este tutorial guiará você através do processo de integração dos gateways de pagamento Stripe (cartão de crédito) e AbacatePay (PIX) no ecossistema FitLocus.Visão Geral
Neste tutorial, você aprenderá a:
- Configurar o Stripe e AbacatePay no backend
- Implementar processamento de pagamentos com cartão de crédito e PIX
- Gerenciar assinaturas recorrentes
- Implementar webhooks para eventos de pagamento
- Integrar o checkout de ambos os gateways no frontend
Requisitos
Antes de começar, certifique-se de ter:- Ambiente de desenvolvimento configurado (Tutorial de Configuração)
- Conhecimento básico de Java e Spring Boot (backend)
- Conhecimento básico de React/TypeScript (frontend)
- Acesso aos repositórios do FitLocus
- Conta no Stripe (você pode criar uma conta de teste gratuita)
- Conta no AbacatePay (você pode criar uma conta de teste gratuita)
1. Configuração dos Gateways de Pagamento
1.1 Configuração do Stripe (Cartão de Crédito)
1.1.1 Criação de Conta no Stripe
- Acesse Stripe.com e crie uma conta
- No dashboard do Stripe, vá para “Developers” > “API keys”
- Anote sua chave pública (
publishable key) e chave secreta (secret key)
1.1.2 Configuração do Webhook do Stripe
- No dashboard do Stripe, vá para “Developers” > “Webhooks”
- Clique em “Add endpoint”
- Para desenvolvimento local, você pode usar Stripe CLI para encaminhar eventos para seu ambiente local
- Para produção, configure o endpoint como
https://seu-dominio.com/api/webhooks/stripe - Selecione os eventos que deseja receber (recomendados):
payment_intent.succeededpayment_intent.payment_failedcustomer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deletedinvoice.payment_succeededinvoice.payment_failed
- Anote o “Signing Secret” para validação de webhooks
1.2 Configuração do AbacatePay (PIX)
1.2.1 Criação de Conta no AbacatePay
- Acesse AbacatePay.com e crie uma conta
- No dashboard do AbacatePay, vá para “Configurações” > “API”
- Anote sua chave de API (
api_key) e segredo de API (api_secret)
1.2.2 Configuração do Webhook do AbacatePay
- No dashboard do AbacatePay, vá para “Configurações” > “Webhooks”
- Clique em “Adicionar webhook”
- Para produção, configure o endpoint como
https://seu-dominio.com/api/webhooks/abacatepay/payment - Selecione os eventos que deseja receber:
pix.paidpix.expiredpix.cancelled
- Anote o “Segredo do Webhook” para validação de webhooks
2. Implementação do Backend
2.1 Adição de Dependências
Adicione as dependências do Stripe ao seu arquivobuild.gradle:
2.2 Configuração do Stripe no Backend
Crie um arquivoapplication-dev.properties em src/main/resources/:
2.3 Modelos de Dados
2.3.1 Modelo de Assinatura
Crie o modelo de dados para assinaturas:2.3.2 Modelo de Transação PIX
Crie o modelo para transações PIX:2.4 Serviços de Pagamento
2.4.1 Serviço de Pagamento Principal
2.4.2 Serviço Stripe
2.4.3 Serviço AbacatePay
2.5 Controladores de Pagamento
2.5.1 Controlador Principal de Pagamento
2.5.2 Controladores de Webhook
3. Implementação do Frontend
3.1 Instalação de Dependências
3.2 Contexto de Pagamento
3.3 Componente de Seleção de Método de Pagamento
3.4 Componente de Checkout com Cartão de Crédito
3.5 Componente de Checkout com PIX
3.6 Componente de Checkout Unificado
4. Fluxos de Pagamento
4.1 Fluxo de Pagamento com Cartão de Crédito (Stripe)
4.2 Fluxo de Pagamento com PIX (AbacatePay)
5. Considerações de Segurança
-
Proteção de Dados de Pagamento:
- Nunca armazene dados completos de cartão
- Use Stripe Elements para coletar dados de forma segura
- Implemente HTTPS em todas as comunicações
-
Validação de Webhooks:
- Verifique a assinatura de todos os eventos
- Implemente idempotência para evitar processamento duplicado
-
Controle de Acesso:
- Verifique permissões para todas as operações de assinatura
- Implemente autenticação para todas as rotas de pagamento
6. Testes
6.1 Testes de Pagamento com Cartão (Stripe)
6.1.1 Cartões de Teste
| Número do Cartão | Descrição |
|---|---|
| 4242 4242 4242 4242 | Pagamento bem-sucedido |
| 4000 0000 0000 0002 | Cartão recusado |
| 4000 0000 0000 3220 | Requer autenticação 3D Secure |
6.1.2 Testando Webhooks do Stripe
Use o Stripe CLI para testar webhooks localmente:6.2 Testes de Pagamento com PIX (AbacatePay)
6.2.1 Ambiente de Sandbox
O AbacatePay fornece um ambiente de sandbox para testes. Para utilizá-lo:-
Configure suas chaves de API para o ambiente de sandbox:
-
Use o CPF de teste
123.456.789-00para criar clientes no ambiente de sandbox.
6.2.2 Simulando Pagamentos PIX
Para simular um pagamento PIX no ambiente de sandbox:- Gere um QR Code PIX normalmente através da API
-
Use a API de simulação para “pagar” o PIX:
- O webhook será acionado automaticamente após a simulação
6.2.3 Testando Webhooks do AbacatePay
Para testar webhooks do AbacatePay localmente:-
Use uma ferramenta como ngrok para expor seu servidor local:
-
Configure o URL do webhook no dashboard do AbacatePay sandbox para o URL fornecido pelo ngrok:
- Simule um pagamento PIX conforme descrito acima para acionar o webhook