function validateOrderData(data) { if (!Number.isInteger(data.amount)) { throw new Error("Amount must be integer"); } if (data.amount < 500 || data.amount > 500000) { throw new Error("Amount must be between 500 and 500,000 DZD"); } if (!data.title || data.title.trim().length === 0) { throw new Error("Title is required"); } return data;}
-- Accélérer les requêtes de commandes en attenteCREATE INDEX idx_orders_pendingON orders(status, payment_ref)WHERE status = 'PENDING';-- Accélérer les recherches par paymentRefCREATE INDEX idx_payment_ref ON orders(payment_ref);
// Journaliser la création de paiementconsole.log("[Payment] Created", { orderId, paymentRef, amount, timestamp: new Date(),});// Journaliser les changements de statutconsole.log("[Payment] Status changed", { orderId, oldStatus: "PENDING", newStatus: "PAID", timestamp: new Date(),});
Vous disposez maintenant de tout le nécessaire pour accepter des paiements avec Navio. Commencez par le sandbox, testez soigneusement, puis passez en production !