← Bibliothèque / Commerce
Réservation séjour sur mesure (proposition humaine + dépôt)
Parcours haute-valeur type RDC : formulaire qualifiant → proposition composée PAR LE GÉRANT → lien nominatif jeton → acompte SystemPay hébergé → IPN seule fait foi.
Construit à partir de :
rangiroa-diving-center/service
Dans le back office
Côté site : CTA « Construisons votre séjour » → formulaire échange-capacité. Côté BO : les propositions arrivent dans la file/conversations, montants saisis dans la proposition (jamais devinés).
Pages & écrans
| Page / zone | Rôle |
|---|---|
POST /api/sejour | Formulaire qualifiant : dates, niveau, certification, dernières plongées, objectifs, hébergement → accusé 24 h → pont HMAC vers BO (DOSSIER-n) |
/depot/{jeton} | Page de dépôt nominative : montant = LA donnée versionnée de la proposition ; jeton ≥256 bits hashé, lié version immuable, révocable, expirant ; re-visite post-paiement = « dépôt reçu » |
SystemPay hosted form | Auto-submit, aucune donnée carte chez nous (frame CSP dédiée systempay dans Caddy) |
Patterns UI/UX
- Formulaire immersive multi-étapes sans scroll inutile (viser hauteur barre collante)
- référence prononçable RDC-XXXX
Composants clés
- service/app.py (FastAPI séjours+IPN)
- systempay.py signature conforme référence PHP (valeurs vads_* triées + clés, HMAC-SHA256 base64)
- db.py machine d'états
Automatisations
- IPN POST /api/systempay/ipn : borne de charge → signature timing-safe → rattachement tentative exacte (devise/montant) → verdict normalisé → quarantaine + alerte SMTP argent
- Règles notification SystemPay À ACTIVER ×4 (fin paiement active par défaut + back-office ops + batch modifs/expirations + batch autorisations) + mode validation AUTOMATIQUE + rejeu échec
- Réconciliation quotidienne des captures + backup SQLite cron 04:17 rotation 14 j
Intelligence artificielle
- Rôle IA
- Aucune : le séjour sur mesure est composé par l'humain (garantie contrat RDC : le montant vient d'une proposition, jamais d'un écran/URL).
- Modèles
- —
- Garde-fous
- —
Données
- propositions (statut envoyee|payee|remboursee|annulee|expiree, montant_cents fait foi, version+jetons NEUFS si modifiée)
- paiements (initie|autorise|refuse|rembourse|abandonnee + quarantaines autorise_surnumeraire|hors_delai|attention|attention_apres_succes, transition monotone, UNIQUE(jour, trans_id))
- pont_attentes HMAC idempotent
Invariants & pièges
- Succès non définitif : AUTHORISED→CAPTURE_FAILED / annulation tardive → attention_apres_succes FIGÉ, jamais déconfirmé automatiquement
- Devis XPF impossible : module EUR uniquement (dépôts 100 € côté RDC)
- Clé de prod SystemPay exigera 2 paiements acceptés + 2 refusés test d'abord