Backend, API et données · Mixte

Travailler avec l'argent : paiements et débits

En une ligne : Ne stockez jamais les données de carte, ne faites jamais confiance à un montant venu du client, et tenez toujours un journal d'événements immuable.

La répartition des responsabilités

Le prestataire de paiement gère la carte ; vous gérez la commande. Les données sont saisies dans le formulaire du prestataire ou un composant isolé, et seul un identifiant est stocké de votre côté. Cela vous maintient en dehors de l'essentiel du monde lourd de la conformité.

Le montant est calculé côté serveur à partir de vos prix. Un montant venu du client est une demande, pas un fait.

Des états, pas des drapeaux

Une commande passe par des états définis : créée, en attente de paiement, payée, échouée, remboursée. Chaque transition est enregistrée avec une heure et une raison. Un drapeau booléen « payé » perd l'histoire exactement quand on en a besoin.

Les notifications du prestataire de paiement arrivent dans le désordre et parfois en double. Traitez-les par identifiant d'événement, de manière sûrement répétable.

Rapprochement

Construisez un processus quotidien qui compare vos enregistrements au rapport du prestataire. Des écarts surviennent toujours ; la question est de savoir si vous les trouvez ou si c'est le client.

Pour aller plus loin

Stockez les montants comme des entiers dans la plus petite unité, jamais comme un décimal flottant, et toujours avec un code devise. Stockez aussi le taux de change et le prix réellement affiché — ce sont les données nécessaires dans tout litige et tout rapport.