Este projeto é um serviço de pagamento Pix que permite a criação e o acompanhamento de pagamentos utilizando o MercadoPago.
- Criação de Pagamentos Pix: Permite a criação de pagamentos Pix via API REST.
- Recebimento de Notificações: Recebe notificações de atualização de status de pagamento via webhook.
- Envio de Mensagens: Integração com RabbitMQ para envio de mensagens de confirmação de pagamento.
- Persistência de Dados: Armazena informações de pagamento no banco de dados H2.
- Geração de QR Code: Gera e retorna o QR Code e link de pagamento para o cliente.
- Spring Boot 3.3.1
- Java 17+
- MercadoPago SDK 2.1.24
- RabbitMQ
- H2 Database
- Docker e Docker Compose
- Java 17+
- Docker e Docker Compose
Clone este repositório para sua máquina local:
git clone https://github.com/Jaoow/pix-payment-service.git
cd pix-payment-service
Utilize o Docker Compose para levantar o contêiner RabbitMQ:
docker-compose up -d
Isso iniciará o RabbitMQ e o painel de gerenciamento estará acessível em http://localhost:15672 (usuário: guest
, senha: guest
).
Edite o arquivo application.properties
em src/main/resources/
e adicione o token de acesso da MercadoPago:
# Configurações do MercadoPago
mercadopago.access_token=YOUR_ACCESS_TOKEN
Compile e execute o projeto usando o Maven:
./mvnw spring-boot:run
O serviço estará disponível em http://localhost:8080.
Endpoint para criar um pagamento Pix:
- URL:
/api/pix/create
- Método:
POST
- Conteúdo: JSON
Exemplo de requisição:
POST /api/pix/create HTTP/1.1
Content-Type: application/json
{
"amount": 100.00,
"email": "test@example.com",
"payerFirstName": "João",
"payerDocumentNumber": "12345678900",
"description": "Pagamento de Teste"
}
Exemplo de resposta:
{
"paymentId": "123456789",
"status": "pending",
"qrCode": "00020126600014br.gov.bcb.pix...",
"qrCodeBase64": "iVBORw0KGgoAAAANSUhEUg...",
"ticketUrl": "https://www.mercadopago.com.br/payments/123456789/ticket..."
}
Endpoint para receber notificações de atualização de pagamento:
- URL:
/api/ipn
- Método:
POST
- Conteúdo: JSON
O MercadoPago enviará notificações para este endpoint com o status do pagamento. O sistema atualizará automaticamente o status no banco de dados.
-
Controller:
CreatePaymentController
: Responsável por lidar com requisições de criação de pagamento.PaymentNotificationController
: Responsável por lidar com notificações de pagamento (IPN).
-
Service:
PixPaymentService
: Contém a lógica para criar pagamentos e interagir com o MercadoPago.
-
Model:
PixPaymentRequest
: Modelo para requisições de criação de pagamento.PixPaymentResponse
: Modelo para respostas de pagamento.PixPayment
: Entidade que representa um pagamento Pix no banco de dados.
-
Repository:
PixPaymentRepository
: Interface JPA para acessar e persistir dados de pagamento.
- Faça um fork do projeto.
- Crie uma nova branch (
git checkout -b feature/nova-funcionalidade
). - Faça commit das suas mudanças (
git commit -m 'Adiciona nova funcionalidade'
). - Faça o push para a branch (
git push origin feature/nova-funcionalidade
). - Crie um Pull Request.
Este projeto é licenciado sob a MIT License.