Skip to main content

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

  1. Acesse Stripe.com e crie uma conta
  2. No dashboard do Stripe, vá para “Developers” > “API keys”
  3. Anote sua chave pública (publishable key) e chave secreta (secret key)

1.1.2 Configuração do Webhook do Stripe

  1. No dashboard do Stripe, vá para “Developers” > “Webhooks”
  2. Clique em “Add endpoint”
  3. Para desenvolvimento local, você pode usar Stripe CLI para encaminhar eventos para seu ambiente local
  4. Para produção, configure o endpoint como https://seu-dominio.com/api/webhooks/stripe
  5. Selecione os eventos que deseja receber (recomendados):
    • payment_intent.succeeded
    • payment_intent.payment_failed
    • customer.subscription.created
    • customer.subscription.updated
    • customer.subscription.deleted
    • invoice.payment_succeeded
    • invoice.payment_failed
  6. 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

  1. Acesse AbacatePay.com e crie uma conta
  2. No dashboard do AbacatePay, vá para “Configurações” > “API”
  3. Anote sua chave de API (api_key) e segredo de API (api_secret)

1.2.2 Configuração do Webhook do AbacatePay

  1. No dashboard do AbacatePay, vá para “Configurações” > “Webhooks”
  2. Clique em “Adicionar webhook”
  3. Para produção, configure o endpoint como https://seu-dominio.com/api/webhooks/abacatepay/payment
  4. Selecione os eventos que deseja receber:
    • pix.paid
    • pix.expired
    • pix.cancelled
  5. 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 arquivo build.gradle:

2.2 Configuração do Stripe no Backend

Crie um arquivo application-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

  1. 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
  2. Validação de Webhooks:
    • Verifique a assinatura de todos os eventos
    • Implemente idempotência para evitar processamento duplicado
  3. 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

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:
  1. Configure suas chaves de API para o ambiente de sandbox:
  2. Use o CPF de teste 123.456.789-00 para criar clientes no ambiente de sandbox.

6.2.2 Simulando Pagamentos PIX

Para simular um pagamento PIX no ambiente de sandbox:
  1. Gere um QR Code PIX normalmente através da API
  2. Use a API de simulação para “pagar” o PIX:
  3. O webhook será acionado automaticamente após a simulação

6.2.3 Testando Webhooks do AbacatePay

Para testar webhooks do AbacatePay localmente:
  1. Use uma ferramenta como ngrok para expor seu servidor local:
  2. Configure o URL do webhook no dashboard do AbacatePay sandbox para o URL fornecido pelo ngrok:
  3. Simule um pagamento PIX conforme descrito acima para acionar o webhook

Próximos Passos

Agora que você implementou o gateway de pagamento, você pode:
  1. Criar um Plano de Treino
  2. Implementar Autenticação

Recursos Adicionais