Un Pipeline de Réservation et de Paiement Unifié pour les Canaux de Vente Fragmentés
Ce projet a nécessité la conception d'un système centralisé qui réunit les réservations, les informations clients, le traitement des paiements et le statut des réservations dans un flux de travail opérationnel fiable. Conçu pour le secteur du tourisme marocain, il démontre comment gérer en toute sécurité les paiements en ligne sans double facturation ou perte de données.

Des canaux de vente fragmentés
L'expérience touristique marocaine est fortement fragmentée. Les voyageurs effectuant des recherches rebondissent entre les sites d'hôtels, les voyagistes et les listes de restaurants, ne réservant souvent nulle part en particulier car rien ne relie les pièces en un seul parcours.
Pour une entreprise, gérer la disponibilité sur différents types de services (une nuit d'hôtel vs une table de restaurant vs un circuit de plusieurs jours) signifie généralement maintenir trois systèmes logiciels distincts et déconnectés.
Le risque de paiements perdus et de surréservation
Le problème métier principal n'était pas seulement de construire un site web, c'était de prévenir l'échec opérationnel. Lorsque les passerelles de paiement et les systèmes de réservation ne sont pas correctement intégrés, les entreprises font face à deux risques majeurs :
1. Double traitement : Si un rappel de paiement (webhook) arrive deux fois (ce qui arrive fréquemment en raison de la latence du réseau), un logiciel mal conçu facturera deux fois le client ou créera deux réservations pour la même chambre.
2. Données incohérentes : Un voyageur peut payer, mais la réservation ne parvient pas à s'enregistrer dans la base de données, ce qui conduit à des clients en colère se présentant pour des réservations qui n'existent pas dans le système.
Avant
- Différents flux de réservation pour chaque type de service.
- Rappels de paiement vulnérables au traitement en double sans idempotence.
- Risque élevé d'erreurs de réconciliation manuelle entre les relevés bancaires et les réservations.
Après
- Cycle de vie de réservation polymorphe partagé entre les types de services.
- Validation HMAC-SHA512 et conception de réconciliation idempotente.
- Alignement garanti entre les paiements réels et les réservations confirmées dans le système.
Intégration de paiement sécurisée et idempotente
J'ai architecturé un système où le paiement s'effectue en trois phases hautement contrôlées. Tout d'abord, le backend signe de manière cryptographique une charge utile et transmet le voyageur au portail hébergé de CMI (la passerelle de paiement interbancaire marocaine), de sorte que les données de la carte ne touchent jamais les serveurs de la plateforme.
Lorsque le CMI renvoie une confirmation, le système vérifie la signature, fait correspondre le montant exact et traite la transaction via un garde d'idempotence strict. Cela signifie que si un rappel en double arrive, il est silencieusement absorbé au lieu d'être traité en double. L'état de la réservation n'est modifié que lorsque la transaction financière est cryptographiquement vérifiée.
Ce qui a changé pour l'entreprise
Le modèle de données polymorphe garantit que la disponibilité est verrouillée dès le début d'une transaction.
Intégration complète avec le CMI sans exposer l'entreprise à la responsabilité des cartes de crédit.
Un seul système gérant les hôtels, les circuits et les restaurants sans compromettre leurs règles opérationnelles uniques.
Découplé et évolutif
Ce projet a été construit avec une architecture découplée. Une API Laravel gère la modélisation de domaine complexe, la validation stricte FormRequest et l'autorisation basée sur des Policies. Une SPA React offre une expérience fluide de type application mobile pour le client.
Le modèle de réservation est polymorphe — une seule table de base de données dessert à la fois les hôtels, les circuits et les restaurants. Cela signifie que l'ajout d'un nouveau type de service (comme la location de voitures) ne nécessite pas de construire un système de réservation entièrement nouveau à partir de zéro.
À l'intérieur de la plateforme
Captures d'écran démontrant le flux unifié de découverte et de réservation.





Propriété Complète
- Conception produit et technique partagée avec un partenaire.
- API REST Laravel et modélisation de domaine polymorphe.
- Interface produit React/TypeScript pour une recherche unifiée.
- Architecture de paiement, de sécurité et d'observabilité.
- Réconciliation idempotente des webhooks pour les passerelles de paiement marocaines.
Vos canaux de vente sont-ils déconnectés ?
Si vous gérez les paiements et les réservations via plusieurs outils, une plateforme unifiée sur mesure peut éliminer les erreurs manuelles coûteuses.