Refonte d'un module de réservation/paiement de services candidat — conception et développement end-to-end d'un nouveau parcours de souscription de services, en remplacement d'un système legacy, avec stratégie de bascule zéro-régression par feature flag.
Parcours candidat (front-office) :
Wizard de commande mono-page : choix de services par catégorie (restauration, hébergement, transport, activités, choix de campus), tarification dynamique (prix normal / boursier / gratuit selon profil).
Commande unique par candidat/concours, modifiable après validation avec historique et recalcul automatique des écarts (ajouts / annulations / remboursements).
Paiement en ligne SystemPay : intégration complète (premier paiement, modifications, remboursements décorrélés des paiements), vérification de disponibilité et de quota avant paiement, réservation du quota à la validation et libération si paiement échoué.
Annulation de venue avec remboursement partiel, blocage des annulations hors délai (deadlines de réservation).
Reçu PDF, page de confirmation, e-mail de récapitulatif + reçu de paiement.
Administration (back-office) :
Correction de race conditions sur les quotas, atomicité de la synchro items/remboursement.
Réconciliation des paiements au retour navigateur et à l'IPN serveur-à-serveur (SystemPay), gestion idempotente des remboursements, expiration automatique des items en attente de paiement via Symfony Messenger.