O aviso é dica, não verdade
O Mercado Pago avisa quando um pagamento muda. Esse aviso pode chegar repetido, atrasado ou fora de ordem, então o servidor nunca acredita no corpo dele: confere a assinatura em tempo constante, descarta timestamp velho, registra o evento uma vez só e relê o pagamento na API do provedor.
// Ordem dos estados de UM pagamento: posição menor que a do pedido é evento atrasado
export function paymentStatusRank(status: string) {
switch (status) {
case 'charged_back': return 60;
case 'refunded': return 50;
case 'partially_refunded': return 40;
case 'paid': case 'payment_in_mediation': return 30;
case 'payment_rejected': case 'payment_cancelled': case 'payment_expired': return 25;
case 'payment_authorized': return 20;
case 'payment_in_process': return 15;
default: return 10;
}
}
