Paiements

Stripe, branché en quatre champs.

Produits, formations, accès aux tests, rendez-vous payants : tout s'encaisse par Stripe, carte bancaire comprise. Un paiement réussi déclenche le reste tout seul — accès, stock, confirmation, reçu.

Configurer Stripe

Dans l'administration, Boutique › Moyens de paiement. Vous recopiez trois valeurs depuis votre tableau de bord Stripe, et vous choisissez le mode.

Clé API publique pk_test_… (pk_live_… en production)
Clé secrète sk_test_…
Secret webhook whsec_…
Mode test coché tant que vous essayez

Adresse du webhook à déclarer chez Stripe :
https://votre-site.fr/shop/webhook/stripe/

  1. Le webhook est obligatoire. C'est par lui que Stripe confirme un paiement quand le client a fermé l'onglet avant de revenir sur le site. Sans son secret, l'administration refuse d'activer Stripe.
  2. Les clés secrètes sont chiffrées en base. Une copie volée de la base ne livre pas de quoi émettre des remboursements ni forger des notifications.
  3. Le mode test se décoche le jour de l'ouverture, après avoir remplacé les clés de test par les clés de production.

Ce qu'un paiement déclenche

Une fois l'encaissement confirmé, la commande passe en payée et tout ce qui en dépend suit, dans la même opération.

  1. Les accès sont accordés : inscription à la formation achetée, accès au questionnaire.
  2. Le stock est décompté pour les produits physiques.
  3. Le client reçoit sa confirmation et son reçu, vous êtes prévenu de la nouvelle commande.
  4. Un rendez-vous payant est confirmé à l'encaissement de son montant.

L'achat demande un compte : c'est à lui que sont rattachés la formation, l'accès au test et l'historique de commandes. Un paiement sans destinataire encaisserait sans rien délivrer.

Le bon montant, une seule fois

Deux chemins confirment un paiement : le retour du client sur le site, et la notification de Stripe. JEIKO tient compte des deux sans jamais compter deux fois.

  1. Le montant est contrôlé. Un paiement ne règle une commande que s'il correspond exactement à son total. Un client qui ajouterait des articles après avoir ouvert le paiement ne règle pas 110 € avec une intention de 10 € : l'écart est signalé, la commande n'est pas honorée.
  2. Les accès ne sont accordés qu'une fois, que le webhook ou le retour navigateur arrive le premier, ou les deux ensemble.
  3. Rien ne se perd. Une commande payée chez Stripe mais restée en attente sur le site se rattrape par une commande de réconciliation, qui applique le même contrôle de montant.

python manage.py jeiko_payments_reconcile_orders --dry-run --days 30
# montre ce qui serait réglé, sans rien modifier

Remboursements

  1. Rendez-vous : chaque type de rendez-vous fixe son délai d'annulation remboursable, vingt-quatre heures par défaut. Le remboursement part depuis le site, total ou partiel ; fait depuis le tableau de bord Stripe, il est répercuté sur le rendez-vous.
  2. Commandes : passer une commande en « remboursée » prévient le client par e-mail.

Les abonnements ne sont pas gérés : JEIKO encaisse des paiements uniques. Une notification d'abonnement reçue de Stripe est signalée, pas ignorée en silence.

La boutiqueLes rendez-vous