Gateway de pagamento para diferentes provedores de pagamentos.
- Roteamento de pagamentos
- Multiprovider
- Idempotência
- Múltiplos métodos de pagamento
A forma mais fácil é ter o Docker e Docker Compose instalados, pois esse projeto foi construído com Laravel Sail:
composer install
./vendor/bin/sail upPOST /auth/login
Campos:
email: E-mail do usuário.password: Senha do usuário.
Exemplo de corpo:
{
"email": "oi@criskell.com",
"password": "123456789"
}POST /auth/register
Campos:
name: Nome do usuário.email: E-mail do usuário.password: Senha do usuário.
Exemplo de corpo:
{
"name": "criskell",
"email": "oi@criskell.com",
"password": "123456789",
"password_confirmation": "123456789"
}GET /api/profile
Retorna os dados do usuário autenticado.
Rota protegida.
POST /api/payments
Exemplo de corpo:
{
"amount": 1,
"method": "PIX"
}POST /api/webhooks/providers/test
Exemplo de corpo:
{
"correlation_id": "019b9d0b-fae4-737f-b6ac-ea4545be91ff"
}- Criar o pagamento mesmo que os providers falhem
- Para manter a possibilidade idempotência de pagamentos rastreados internamente.
- Separação entre lógica de negócio e camada de apresentação.
- Evita duplicação de lógica de negócio potencialmente levando a bugs.
- Melhora a legibilidade e manutebilidade do código.
- Cada provider provém uma interface HTTP que adapta o formato de webhooks dos providers para o formato de webhook interno.
- Com isso, podemos reutilizar a mesma lógica de processamento para diferentes providers.