Pesquisar
Projeto exclusivo

Correção estrutural e hardening de checkout PIX (PHP e React)

ontem às 21:53

Descrição do Projeto:

Tenho um checkout PIX já funcional (frontend em React e backend em PHP com MySQL), mas preciso realizar uma revisão técnica completa e aplicar correções estruturais para garantir estabilidade em ambiente de produção com alto volume de transações.

O sistema já está integrado com gateways de pagamento PIX, possui webhooks, polling de status e um painel central remoto que controla configurações como override e split percentual.

O objetivo deste projeto não é criar do zero, e sim revisar, corrigir e blindar o sistema para evitar qualquer cenário de falha que possa impactar conversão ou gerar inconsistência financeira.

Contexto técnico

Frontend:

React (Vite)

- Checkout em múltiplas etapas
- Geração de PIX e redirecionamento para página de pagamento
- Polling de status

Backend:

PHP

- MySQL (InnoDB)
- Endpoints para criar PIX
- Endpoint para verificar status
- Webhooks que atualizam status de pagamento
- Sistema de split baseado em contador atômico
- Painel central remoto com cache

Objetivos principais

- Garantir que nunca exista cenário onde o PIX seja gerado no backend e não chegue corretamente ao frontend.
- Garantir que o sistema de split percentual seja matematicamente determinístico e funcione corretamente sob alta concorrência.
- Garantir idempotência completa em:

• Webhooks
• Marcação de pagamento como "paid"
• Retentativas de criação de transação

- Garantir que todos os endpoints retornem exclusivamente JSON válido, sem risco de HTML, warnings ou erros que quebrem o frontend.
- Blindar o sistema para funcionar corretamente com alto volume de requisições simultâneas.

Problemas que precisam ser tratados

Comunicação Frontend — Backend

- O frontend deve ser capaz de lidar com qualquer resposta inesperada (HTML, erro 502, JSON inválido).
- O backend deve validar completamente a resposta do gateway antes de salvar qualquer transação.
- Nunca deve existir transação salva sem pixCode válido.
- Nunca deve existir retorno success=true com dados incompletos.

Split determinístico

Existe lógica baseada em contador atômico no MySQL.

A distribuição deve seguir exatamente a fórmula:

centralAteAgora = floor(n * percent / 100)
centralAteAnterior = floor((n-1) * percent / 100)
vaiProPainel = centralAteAgora > centralAteAnterior

Em 100 pedidos com 30%, exatamente 30 devem ir para o destino configurado.

Preciso que seja revisado para garantir:

- 1 único incremento por pedido
- Nenhuma condição de corrida
- Nenhuma dupla contagem
- Atomicidade real
- Idempotência

Webhooks

- Webhook não pode processar duas vezes o mesmo pagamento.
- Atualização para status "paid" deve ser idempotente.
- Retry de requisição não pode gerar cobrança duplicada.
- O sistema deve tolerar repetição de chamadas externas.

Concorrência

O sistema precisa suportar:

- Múltiplas criações de PIX simultâneas
- Atualizações simultâneas de status
- Sem deadlocks
- Sem inconsistência de dados

Integridade do JSON

Todos os endpoints devem:

- Forçar header application/json
- Suprimir erros visíveis
- Validar json_decode
- Validar campos obrigatórios antes de qualquer insert no banco
- Logar respostas externas truncadas para auditoria

Entregáveis

- Revisão técnica completa do fluxo de criação e confirmação de pagamento
- Ajustes estruturais no backend PHP
- Revisão e blindagem do split determinístico
- Garantia de idempotência nos webhooks
- Tratamento robusto de concorrência
- Logs estruturados para auditoria
- Ajustes no frontend para parse seguro de respostas
- Checklist técnico documentando as alterações realizadas

Critérios de aceite

- Simulação de resposta inválida do backend não pode quebrar o frontend.
- Simulação de HTML retornado por proxy não pode causar erro fatal.
- Split deve bater exatamente o percentual configurado.
- Nenhuma transação pode ser salva com pix vazio.
- Nenhum pagamento pode ser marcado como pago duas vezes.
- Sistema deve funcionar corretamente sob múltiplas requisições simultâneas.

Habilidades desejadas:

PHP React

Atividades do cliente nesse projeto:

Última visualização: ontem às 22:13

Tem dúvidas? Faça uma pergunta.

ou

Enviar proposta

Informações adicionais

Categoria: Web, Mobile & Software
Subcategoria: Desenvolvimento Web
Orçamento: Aberto
Nível de experiência: Intermediário
Visibilidade: Público
Propostas: 11
Interessados: 12
Tempo restante:
Valor Mínimo: R$ 50,00
Propostas (11)
  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

Nenhuma proposta foi encontrada.

Carregando...
Projetos semelhantes no 99Freelas

Desenvolver marketplace de experiências com sistema de reservas - Olá! Estou desenvolvendo a plataforma Vayro, que será um marketplace de experiências turísticas, semelhante ao modelo do Airbnb Experiences e do GetYourGuide, onde usu&aa...

Programador especialista em JavaScript para suporte - Preciso de um programador com forte conhecimento em JavaScript para me dar suporte em um projeto já existente. Tenho uma foto de vendas usada no WhatsApp integrada com APIs e gateway de paga...

Plataforma de monitoramento do mercado de transportes - Desenvolver uma plataforma web e um app integrados, com acesso restrito a algumas informações e acesso completo a outras mediante login e senha. A base principal de dados será...

Criação de website institucional para empresa - Preciso de um website simples, leve e informativo para minha empresa. Deve incluir um formulário de cadastro para captação de leads, com opção de integraç...

Instalação e configuração de template na Loja Integrada - Preciso criar uma loja na Loja Integrada utilizando um template, cadastrar aproximadamente 20 produtos e deixar a loja totalmente funcional. Não será necessário criar logotipo ...

Carregando...

Carregando...

Pesquisar

FREELANCERS
PROJETOS
Ocorreu um erro inesperado. Caso o erro persista, entre em contato conosco através do e-mail suporte@99freelas.com.br.