Traiter vos commandesBêta
Comment traiter vos commandes suite aux paiements de vos clients avec Custom Checkout.
Version bêta privée
The Custom Checkout integration is in private preview. To request access, cliquez ici.
Lorsque vous recevez un paiement, il se peut que vous deviez déclencher des actions pour fournir à votre client ce pour quoi il a payé. Par exemple, vous devrez peut-être lui donner accès à un service ou lui expédier des biens physiques. Ce processus, dit de traitement, peut être géré deux façons :
- Manuellement : vous pouvez traiter manuellement vos commandes reçues en utilisant les informations que Stripe met à votre disposition. Par exemple, vous pouvez surveiller le Dashboard, vérifier les e-mails de notification de paiement ou consulter les rapports, puis traiter les commandes.
- Automatiquement : vous pouvez configurer un système de traitement automatique. Recommandé
La première option convient pour les activités expérimentales ou à faible volume, mais pour la plupart des situations, nous recommandons d’automatiser le traitement. La suite de ce guide vous explique comment mettre en place un système de traitement automatique.
Traitement automatique
Le système de traitement automatique décrit ci-dessous utilise une combinaison de webhooks et une redirection vers votre site Web pour déclencher le traitement. Vous devez utiliser des webhooks pour vous assurer que le traitement intervienne pour chaque paiement, et les redirections permettent à vos clients d’accéder aux services ou aux détails du traitement immédiatement après le paiement.
Créer une fonction de traitementCôté serveur
Créez une fonction sur votre serveur pour initier le traitement une fois les paiements effectués. Les webhooks en place déclencheront cette fonction, qui sera appelée lorsque les clients seront renvoyés sur votre site Web après avoir effectué le paiement. Ce guide fait référence à cette fonction sous le nom de fulfill_
, mais vous pouvez lui donner un autre nom.
Votre fonction fulfill_
doit :
- Gérer correctement le fait d’être appelée plusieurs fois avec le même identifiant de session Checkout.
- Accepter un ID de Session Checkout comme argument.
- Récupérer la session Checkout depuis l’API avec la propriété line_itemsétendue.
- Vérifier la propriété payment_status pour déterminer si le traitement doit être déclenché.
- Lancer le traitement des postes de facture.
- Enregistrer l’état du traitement pour la session Checkout fournie.
Utilisez le code ci-dessous comme point de départ pour votre fonction fulfill_
. Les commentaires TODO
indiquent les fonctionnalités que vous devez implémenter.
Note
Les extraits de code ci-dessous peuvent nommer la fonction fulfill_
tantôt fulfillCheckout
, tantôt FulfillCheckout
en fonction de la langue choisie, mais il s’agit partout de la même fonction.
Note
Si une session Checkout comporte de nombreux postes, utilisez la pagination automatique avec l’API pour les postes Checkout pour les récupérer tous.
En fonction des moyens de paiement que vous acceptez et des besoins de votre activité, vous pouvez demander à votre fonction fulfill_
d’effectuer les opérations suivantes :
- Fournir un accès aux services.
- Déclencher l’envoi des marchandises.
- Enregistrer une copie des détails du paiement et des postes de la commande dans votre propre base de données.
- Envoyer à votre client un reçu personnalisé par e-mail si vous n’avez pas activé les reçus de Stripe.
- Rapprocher les postes et les quantités achetées si vous permettez à vos clients d’ajuster les quantités au moment du paiement.
- Actualiser les registres d’inventaire ou de stock.
Créer votre gestionnaire d'événements de paiementCôté serveur
Pour déclencher le traitement, créez un gestionnaire d’événements webhook pour écouter les événements de paiement et lancer votre fonction fulfill_
.
Lorsqu’un règlement est effectué, un événement checkout.
est créé. Configurez un endpoint sur votre serveur pour accepter, traiter et confirmer la réception de ces événements.
Certains moyens de paiement ne sont pas instantanés, comme les prélèvements automatiques ACH et autres virements bancaires. Les fonds ne seront pas immédiatement disponibles à la fin du processus Checkout. Les moyens de paiement différé génèrent un événement checkout.
lorsque le paiement est effectué ultérieurement.
Note
Le secret du webhook (whsec_
) indiqué dans le code ci-dessous provient soit de la CLI Stripe, soit de votre endpoint de webhook. Vous pouvez utiliser la CLI Stripe pour des tests locaux, et Stripe utilise un endpoint de webhook pour envoyer des événements à votre gestionnaire d’événements lorsqu’il est exécuté sur un serveur. Voir la section suivante pour plus de détails.
Vous pouvez également vouloir écouter et gérer les événements checkout.
. Par exemple, vous pouvez envoyer un e-mail à votre client en cas d’échec d’un paiement différé.
Tester votre gestionnaire d'événements localement
Le moyen le plus rapide de développer et de tester votre gestionnaire d’événements webhook est d’utiliser la CLI Stripe. Si vous n’en disposez pas, reportez-vous aux instructions du guide d’installation.
Lorsque la CLI Stripe est installée, vous pouvez tester votre gestionnaire d’événements localement. Lancez votre serveur (par exemple, sur localhost:4242
), puis exécutez la commande stripe listen pour que la CLI transmette les événements à votre serveur local :
stripe listen --forward-to localhost:4242/webhook Ready! Your webhook signing secret is 'whsec_<REDACTED>' (^C to quit)
Ajoutez le secret du webhook (whsec_
) à votre code de gestion des événements, puis testez le traitement en utilisant Checkout en tant que client :
Une fois le paiement effectué, vérifiez les points suivants :
- Sur votre ligne de commande, où
stripe listen
s’exécute, vous voyez un événementcheckout.
transmis à votre serveur local.session. completed - Les logs de votre serveur affichent la sortie attendue de votre fonction
fulfill_
.checkout
Créer un endpoint de webhook
Un fois vos tests effectués en local, lancez votre gestionnaire d’événements webhook sur votre serveur. Ensuite, créez un endpoint de webhook pour envoyer les événements checkout.
à votre serveur, puis testez à nouveau le tunnel de paiement.
Déclencher le traitement sur votre page d'accueilRecommandé
L’écoute de webhooks est nécessaire pour vous assurer de toujours déclencher le traitement voulu pour chaque paiement effectué, mais les webhooks peuvent parfois être retardés. Pour optimiser votre tunnel de paiement et garantir un traitement immédiat lorsque votre client est présent, déclenchez également le traitement à partir de votre page d’accueil. Vous pouvez configurer la page d’accueil en transmettant return_url lors de la création de la session Checkout, ou en transmettant returnUrl à confirm
sur le front-end.
Utilisez l’identifiant de session Checkout de l’URL que vous avez spécifiée pour effectuer les opérations suivantes :
- Lorsque votre serveur reçoit une requête pour votre page d’accueil Checkout, extrayez l’identifiant de session Checkout de l’URL.
- Exécutez votre fonction
fulfill_
avec l’identifiant fourni.checkout - Affichez la page une fois la tentative de traitement terminée.
Lorsque vous affichez votre page d’accueil, vous pouvez présenter les éléments suivants :
- Détails du processus de traitement.
- Liens ou informations sur les services auxquels le client a désormais accès.
- Détails relatifs à l’expédition ou à la logistique des biens physiques.
Les webhooks sont indispensables
Vous ne pouvez pas compter sur un déclenchement du traitement uniquement à partir de votre page d’accueil Checkout, car il n’est pas sûr que vos clients visitent cette page. Par exemple, quelqu’un peut payer avec succès dans Checkout, puis perdre sa connexion à Internet avant que votre page d’accueil ne se charge.
Configurez un gestionnaire d’événements webhook pour que Stripe envoie les événements de paiement directement à votre serveur, sans passer par le client. Les webhooks sont le moyen le plus fiable de savoir quand vous recevez un paiement. Si l’envoi d’un événement webhook échoue, nous réessayons plusieurs fois.