Procéder à la réalisation suite aux paiements par Checkout et Payment Link
Découvrez comment procéder à la réalisation suite aux paiements reçus avec Checkout et Payment Links.
Lorsque vous recevez un paiement, vous devrez peut-être prendre des mesures pour fournir à votre client le produit ou le service acheté. Par exemple, vous devrez peut-être lui donner accès à un service ou lui expédier des biens physiques. On désigne ce processus par le terme de réalisation, et vous avez deux façons de la gérer en utilisantCheckout et Payment Links :
- Manuellement : vous pouvez réaliser manuellement des commandes 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 réaliser les commandes.
- Automatiquement : vous pouvez mettre en place un système d’exécution automatique. Recommended
La première option convient pour les projets expérimentaux ou à faible volume, mais pour la plupart des situations, nous recommandons d’automatiser la réalisation des commandes. La suite de ce guide vous montre comment mettre en place un système d’exécution automatique.
Exécution automatique
Le système d’exécution automatique décrit ci-dessous utilise une combinaison de webhooks et une redirection vers votre site Web pour déclencher la réalisation de la commande. Vous devez utiliser les webhooks pour vous assurer que celle-ci est effectuée pour chaque paiement, et les redirections permettent à vos clients d’accéder aux services ou aux détails du traitement de la commande immédiatement après le paiement.
Note
Payment Links utilise Checkout, de sorte que toutes les informations ci-dessous s’appliquent à la fois à Payment Links et à Checkout, sauf indication contraire.
Créer une fonction de réalisationCôté serveur
Créez une fonction sur votre serveur pour réaliser les commandes associées aux paiements Checkout. Les webhooks déclenchent cette fonction, qui est appelée lorsque les clients sont renvoyés sur votre site Web après avoir effectué le paiement Checkout. 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 identifiant de Session Checkout comme argument.
- récupérer la session Checkout de l’API avec la propriété line_itemsétendue.
- vérifiez la propriété payment_status pour déterminer si la commande doit être réalisée.
- effectuer le traitement des postes de facture.
- enregistrer l’état d’exécution 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_
soit fulfillCheckout
soit FulfillCheckout
en fonction de la langue choisie, mais ils représentent tous la même fonction.
Note
Si une session Checkout comporte de nombreux postes, utilisez la pagination automatique avec l’API pour les postes Checkout afin de pouvoir tous les récupérer.
En fonction des moyens de paiement que vous acceptez et des besoins de votre entreprise, vous pouvez demander à votre fonction fulfill_
d’effectuer les opérations suivantes :
- Fournir un accès aux services.
- Déclencher l’expédition de marchandises.
- Enregistrez une copie des détails du paiement et des postes individuels dans votre propre base de données.
- Envoyez au client un reçu personnalisé par e-mail si vous n’avez pas activé les reçus de Stripe.
- Rapprochez les postes et les quantités achetées si vous permettez aux clients d’ajuster les quantités dans Checkout.
- Actualisez les registres d’inventaire ou de stock.
Créer un gestionnaire d'événement de paiementCôté serveur
Pour déclencher l’a réalisation, créez un gestionnaire d’événements webhook pour écouter les événements de paiement et déclencher votre fonction fulfill_
.
Lorsque quelqu’un vous paie avec Checkout, 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 du CLI Stripe, soit de votre endpoint de webhook. Vous pouvez utiliser le 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é.
Testez votre gestionnaire d'événements localement
La manière la plus rapide de développer et de tester votre gestionnaire d’événement webhook est d’utiliser le CLI Stripe. Si vous ne l’avez pas, suivez le guide d’installation pour commencer.
Lorsque le CLI Stripe est installé, 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 le CLI Stripe 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 la réalisation en utilisant Checkout en tant que client :
- Appuyez sur le bouton de paiement qui vous permet de passer à Checkout, ou visitez votre Payment Link
- Fournissez les données de test suivantes dans Checkout :
- Saisissez
4242 4242 4242 4242
comme numéro de carte bancaire - Saisissez n’importe quelle date future comme date d’expiration
- Saisissez n’importe quel code CVC à 3 chiffres
- Saisissez un code postal pour la facturation (
90210
)
- Saisissez
- Appuyez sur le bouton Payer
Lorsque le paiement est terminé, vérifiez les points suivants :
- Sur votre ligne de commande, où
stripe listen
est en cours d’exécution, il montre un événementcheckout.
transmis à votre serveur local.session. completed - Les journaux de votre serveur montrent la sortie attendue de votre fonction
fulfill_
.checkout
Créer un endpoint de webhook
Après avoir testé localement, 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 Checkout.
Configurer l'URL d'une page d'accueilRecommandé
Configurez Checkout de manière à ce que le client soit redirigé vers une page de votre site Web une fois qu’il a terminé le processus Checkout. Ajoutez le paramètre substituable {CHECKOUT_
dans l’URL de votre page, qui sera remplacé par l’identifiant de la session Checkout lorsque votre client est redirigé à partir de Checkout.
Checkout hébergé
Pour les sessions Checkout dont le code ui_mode par défaut est hosted
, définissez le success_
.
Note
Lorsque vous avez configuré un endpoint de webhook pour écouter les événements checkout.
et que vous avez défini un success_
, Checkout attend que votre serveur réponde à la livraison de l’événement webhook avant de rediriger votre client. Si vous utilisez cette approche, assurez-vous que votre serveur répond aux événements checkout.
le plus rapidement possible.
Checkout avec un ui_mode différent du code par défaut
Pour les sessions Checkout dont le code ui_mode n’est pas défini sur hosted
, définissez le return_
.
Payment Links
Pour les Payment Links que vous créez avec l’API, définissez le paramètre after_completion.redirect.url.
Pour les Payment Links que vous créez dans le Dashboard :
- Accédez à l’onglet Après le paiement.
- Sélectionnez Ne pas afficher la page de confirmation.
- Fournissez l’URL de votre page d’accueil qui inclut le paramètre substituable
{CHECKOUT_
(par exemple,SESSION_ ID} https://example.
)com/after-checkout?session_ id={CHECKOUT_ SESSION_ ID}
Déclencher la réalisation sur votre page d'accueilRecommandé
L’écoute des webhooks est nécessaire pour s’assurer que vous déclenchez toujours la réalisation pour chaque paiement, mais les webhooks peuvent parfois être retardés. Pour optimiser votre tunnel de paiement et garantir une réalisation immédiate lorsque votre client est présent, déclenchez également la réalisation à partir de votre page d’accueil.
Utilisez l’identifiant de la session Checkout de l’URL indiquée à l’étape précédente 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 réalisation terminée.
Lorsque vous affichez votre page d’accueil, vous pouvez présenter les éléments suivants :
- Détails du processus de réalisation de la commande.
- 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 nécessaires
Vous ne pouvez pas compter sur le déclenchement de la réalisation de la commande 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 le paiement. Si l’envoi d’un événement webhook échoue, nous réessayons plusieurs fois.