Pesquisar

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

16/02/2026 à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: 20/02/2026 às 20:58

Última interação: 20/02/2026 às 20:59

Informações adicionais

Categoria: Web, Mobile & Software
Subcategoria: Desenvolvimento Web
Orçamento: Aberto
Nível de experiência: Intermediário
Visibilidade: Público
Propostas: 27
Propostas excluídas: 1
Interessados: 35
Tempo restante:
Valor Mínimo: R$ 50,00

Cliente

Propostas (26)
  • 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

  • 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

  • Maxwell D B.
    Top Freelancer Plus
    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

+ 6 propostas

Nenhuma proposta foi encontrada.

Carregando...
Projetos semelhantes no 99Freelas

Aplicativo de finanças web e mobile - Preciso de uma plataforma web semelhante ao site minhagrana.com.br, além de um aplicativo mobile (iOS e Android) com as mesmas funcionalidades. O sistema deve ter: - página pú...

Landing page para venda de TV Box - Somos a Tizze Digital, um hub de serviços digitais voltados para e-commerce, e estamos em busca de um parceiro para criar um site focado em vendas (landing page ou mini e-commerce) para um p...

Criar site semelhante ao atual hospedado no GoDaddy - Criação de website semelhante ao já existente no GoDaddy (construído com o construtor de sites deles), para possibilitar a migração e hospedagem em outro s...

Criar dois desafios para aplicação online - Desenvolver dois testes curtos para aplicação online: - Um teste com 5 quebra-cabeças, cada um com 5 a 8 peças. - Um teste com 9 tangrams diferentes (alguns com 4 figur...

Sustentação e desenvolvimento - Moodle - Possuímos plataformas Moodle. Precisamos de desenvolvedor Moodle em regime full-time para implementar melhorias e correções. Início urgente. Enviar portfólio e ...

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.