CL-2026-04-27 - Hotfix Mercado Pago valor unitario
Contexto
- Incidente critico em pedidos Mercado Pago: alguns rascunhos gravavam
pedidos.valorcom o total do pedido. - O checkout Mercado Pago interpreta
pedidos.valorcomo valor unitario e calculavalor * qtd. - Isso causou cobranca a maior quando um rascunho contaminado seguia direto para PIX/cartao sem passar por regravacao posterior do checkout.
Impacto confirmado
- Pedido
#73731- Fanaticos: correto R$40, cobrado R$80, diferenca R$40. - Pedido
#73767- As Loucas do Meier: correto R$60, cobrado R$120, diferenca R$60. - Pedido
#73643estava suspeito no banco, mas a API do Mercado Pago confirmou cobranca correta de R$40.
Ajustes aplicados
pedido.phpepedido_pagseguro.php- rascunho proativo passou a enviar valor unitario para
gerenciar_pedido_carrinho. config/functions_new.php- adicionados helpers para normalizar dinheiro e recuperar valor unitario seguro de pedidos antigos.
gerenciar_pedido_carrinhopassou a normalizar valor recebido antes de inserir/atualizar rascunho.checkout_pix.php- resumo, total do pedido e inicializacao do Brick do Mercado Pago passaram a usar valor unitario protegido.
action.php- PIX e cartao Mercado Pago passaram a recalcular
transaction_amountcom valor unitario protegido. - se um pedido pendente ainda tiver total salvo em
valor, o backend corrige antes de cobrar.
Saneamento operacional
- Rascunhos pendentes contaminados foram corrigidos para voltar a armazenar valor unitario.
- Pedidos pagos nao foram alterados automaticamente; os estornos da diferenca foram feitos manualmente pelo admin.
Validacoes
php -l config/functions_new.phpphp -l pedido.phpphp -l pedido_pagseguro.phpphp -l action.phpphp -l checkout_pix.phpgit diff --check- simulacao local pos-hotfix:
#73731: total protegido R$40#73767: total protegido R$60