Evaluating bids

Integração de Múltiplas Gateways de Pagamento com Fallback

Published on the October 22, 2024 in IT & Programming

About this project

Open

Projeto: Sistema de Depósitos via QR Code Pix (PHP)
Contexto: O sistema atual utiliza a Pixup para geração de QR Code Pix, mas para garantir alta disponibilidade e redundância queremos adicionar mais duas gateways: Suitpay e Gerencianet. A integração deve implementar um fallback automático entre as três gateways. Se uma falhar, o sistema deve tentar a próxima disponível até obter sucesso na geração do QR Code.

Objetivo:
Integrar três gateways de pagamento: Pixup, Suitpay e Gerencianet.
Implementar fallback automático: Se uma tentativa falhar, o sistema deve tentar gerar o QR Code utilizando a próxima gateway.
Log de Erros e Sucessos: Monitorar todas as tentativas de geração de QR Code e a renovação dos tokens.
Modularidade: A estrutura deve permitir a inclusão de novas gateways no futuro de forma simples.
Requisitos Funcionais:
Geração de QR Code com Prioridade e Fallback:

Primeira tentativa: Gerencianet.
Segunda tentativa: pixup.
Terceira tentativa: suitpay.
Exibir mensagem de erro se todas as tentativas falharem.
Obtenção e Renovação de Tokens:

Cada gateway tem sua própria rotina para obter e renovar tokens.
Armazenar os tokens e datas de expiração no banco de dados para evitar chamadas desnecessárias.
Logs Detalhados:

Registrar falhas e sucessos na geração de QR Codes e na obtenção de tokens.
Logs incluem data, gateway utilizada, e resposta da API.
Configuração Dinâmica:

As gateways devem ser configuradas de forma modular, possibilitando ajustes e inclusão de novas integrações no futuro.
Fluxo de Fallback:
O sistema tenta gerar o QR Code usando Pixup.
Se for bem-sucedido, o QR Code é exibido ao usuário.
Se falhar, tenta novamente com Suitpay.
Caso Suitpay também falhe, tenta com Gerencianet.
Se todas as tentativas falharem, exibe uma mensagem de erro e registra o evento no log.

Project overview

Objetivo da Solicitação: Criar uma integração com múltiplas gateways de pagamento, utilizando Pixup e Suitpay. A integração deve prever: Prioridade e fallback automático: Se uma tentativa de geração de QR Code falhar em uma gateway, o sistema deve tentar gerar o QR Code na outra gateway. Alta disponibilidade: Sempre que possível, a primeira opção deve ser a Pixup, com Suitpay servindo como fallback. Logs detalhados: Registre as falhas e sucessos em arquivos de log para monitoramento e troubleshooting. Suporte a futuras gateways: O sistema deve ser desenvolvido de forma modular para que novas gateways possam ser adicionadas facilmente. Requisitos Funcionais: Rotina de Geração de QR Code com Fallback Automático: Primeira tentativa: Gateway Pixup. Se falhar, tentar com a gateway Suitpay. Caso todas as tentativas falhem, registrar a falha e exibir uma mensagem de erro ao usuário. Manter a função de obtenção e renovação de tokens para cada gateway: A Pixup e a Suitpay possuem APIs diferentes para geração de token e QR Code. Implementar rotinas independentes para solicitar e armazenar os tokens de cada gateway. Logs de Erros e Sucessos: Registrar no log a data e hora, a resposta http, e a gateway utilizada para gerar o qr code. Logs para tokens expirados e tentativas de renovação. Modularidade e Configuração: Permitir adicionar ou remover gateways facilmente (ex.: Adicionando configurações no banco ou em arquivos .env). Cada gateway deve ter sua própria função de integração e geração de QR Code. Fluxo de Fallback: Usuário solicita a geração de QR Code. O sistema tenta gerar o QR Code usando a Pixup. Se for bem-sucedido, o QR Code é exibido. Se falhar (HTTP 4xx ou 5xx), o sistema tenta a Suitpay. Se Suitpay também falhar, o sistema exibe uma mensagem de erro e registra a falha no log. Especificação Técnica: Tecnologia: PHP (com suporte a cURL ou Guzzle para chamadas API). Banco de Dados: MySQL para armazenar tokens e configurações. Gateways: Pixup (já integrado, precisa apenas ser ajustado para fallback). Suitpay (nova integração).

Category IT & Programming
Subcategory Web development
What is the scope of the project? Small change or bug
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
API Integrations Other (Other APIs)
Roles needed Developer

Delivery term: Not specified

Skills needed

Other projects posted by L. G.