Aller au contenu principal

Système de Paiement

Ce document décrit l'intégration complète du système de paiement dans l'application e-commerce, incluant le flux de paiement, la gestion des transactions et le suivi des autorisations.

Vue d'ensemble

Le système de paiement s'intègre avec l'application paiement et gère l'ensemble du cycle de vie d'une transaction :

  1. Génération d'une URL de paiement
  2. Redirection vers le fournisseur de paiement
  3. Callback après paiement
  4. Confirmation et enregistrement des données de transaction
  5. Transmission aux systèmes internes (Logistique, Fidélité)

Composants impliqués

  • Frontend : PaymentReturnPage.tsx, OrderConfirmationPage.tsx
  • Backend :
    • paiement.service.ts : Génération des URLs de paiement
    • commandes.service.ts : Gestion des confirmations et envoi aux microservices
    • commandes.controller.ts : Endpoints REST
  • Base de données : Table commandes avec une colonne authorization_id
  • RabbitMQ : Communication avec Logistique et Fidélité

Endpoints API

Générer une URL de paiement

POST /api/publique/interface-paiement

Génère une URL de paiement avec tous les arguments nécessaires

Body :

{
"orderId": "ORD-20241113-001",
"amount": "15.50",
"currency": "EUR",
"client": {
"prenom": "Jean",
"nom": "Dupont",
"email": "jean.dupont@example.com",
"telephone": "+33612345678",
"adresse": "123 Rue de la Paix",
"codePostal": "75001",
"ville": "Paris"
},
"returnUrl": "https://e-commerce.[environnement].ubsi.fr/payment-return",
"source": "e-commerce"
}

Réponse :

{
"paymentUrl": "https://paiement.[environnement].ubsi.fr/...",
"orderId": "ORD-20241113-001"
}

Confirmer un paiement

POST /api/commandes/:ordreId/confirmer-paiement

Confirme le paiement d'une commande et déclenche l'envoi vers la logistique.

Body :

{
"transactionId": "TXN-20241113-154349-12345",
"authorizationId": "CFM-20241113-154349-29318",
"amount": "15.50"
}

Réponse :

{
"ordreId": "ORD-20241113-001",
"statut": "EN_ATTENTE",
"message": "Paiement confirmé, commande envoyée aux systèmes"
}

Récupérer une commande

GET /api/commandes/:ordreId

Récupère les détails d'une commande incluant les informations de paiement.

Réponse :

{
"ordreId": "ORD-20241113-001",
"statut": "EN_ATTENTE",
"montantTotalCents": 1550,
"transactionId": "TXN-20241113-154349-12345",
"authorizationId": "CFM-20241113-154349-29318",
"clientInfo": { ... },
"adresseLivraison": { ... },
"articles": [ ... ],
"createdAt": "2024-11-13T15:43:00Z"
}