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 :
- Génération d'une URL de paiement
- Redirection vers le fournisseur de paiement
- Callback après paiement
- Confirmation et enregistrement des données de transaction
- 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 paiementcommandes.service.ts: Gestion des confirmations et envoi aux microservicescommandes.controller.ts: Endpoints REST
- Base de données : Table
commandesavec une colonneauthorization_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"
}