Personnaliser le comportement de redirection avec un formulaire intégré
Si vous disposez d’une intégration Checkout qui utilise un formulaire intégré, vous pouvez personnaliser la manière dont Stripe redirige ou non vos clients une fois le paiement effectué. Vous pouvez demander à Stripe de rediriger systématiquement les clients, de les rediriger uniquement pour certains moyens de paiement, ou de désactiver complètement les redirections.
Erreur fréquente
Si vous avez intégré une page de paiement hébergée par Stripe, vous ne pouvez pas utiliser le paramètre return_url
. Vous devez utiliser success_url
. En savoir plus sur la personnalisation d’une page de confirmation de paiement pour les intégrations avec une page hébergée par Stripe.
Pour configurer des redirections, spécifiez la page de retour dans le paramètre return_url
.
Vous pouvez également :
- Rediriger uniquement les clients si le moyen de paiement l’exige (par exemple, une page d’autorisation bancaire pour un moyen de paiement par prélèvement).
- Ne pas utiliser de page de retour et désactiver les moyens de paiement avec redirection.
Rediriger les clients vers une page de retour
Lorsque vous créez la session Checkout, indiquez l’URL de la page renvoyée dans le paramètre return_url
. Incluez la variable de modèle {CHECKOUT_SESSION_ID}
dans l’URL. Lorsque Checkout redirige un client, la variable est remplacée par l’ID de session Checkout.
Lors de l’affichage de votre page de retour, récupérez l’état de la session Checkout à l’aide de l’ID de session Checkout dans l’URL. Traitez le résultat en fonction de l’état de la session comme suit :
complete
: le paiement a abouti. Utilisez les informations de la session Checkout pour afficher une page de confirmation.open
: le paiement a échoué ou a été annulé. Montez à nouveau Checkout pour que votre client puisse effectuer une nouvelle tentative.
app.get('/session_status', async (req, res) => { const session = await stripe.checkout.sessions.retrieve(req.query.session_id); const customer = await stripe.customers.retrieve(session.customer); res.send({ status: session.status, payment_status: session.payment_status, customer_email: customer.email }); });
const session = await fetch(`/session_status?session_id=${session_id}`) if (session.status == 'open') { // Remount embedded Checkout else if (session.status == 'complete') { // Show success page // Optionally use session.payment_status or session.customer_email // to customize the success page }
Moyens de paiement avec redirection
Lors du paiement, certains moyens de paiement redirigent le client vers une page intermédiaire, comme la page d’autorisation de sa banque. Une fois qu’il a renseigné cette page, Stripe le redirige vers votre page de retour.
Rediriger uniquement pour les moyens de paiement avec redirection
Si vous ne souhaitez pas rediriger les clients après les paiements qui ne nécessitent pas de redirection, définissez redirect_on_completion sur if_required
. Cela redirige uniquement les clients qui paient à l’aide de moyens de paiement avec redirection.
Pour les paiements par carte bancaire, Checkout affiche un état de réussite par défaut au lieu d’effectuer une redirection. Pour utiliser votre propre état de réussite, transmettez un rappel onComplete qui détruit l’instance Checkout et affiche votre état de réussite personnalisé.
onComplete
est appelé lorsque la session Checkout aboutit ou lorsque l’événement webhook checkout.session.completed est envoyé.
Désactiver les moyens de paiement avec redirection
Si vous ne souhaitez pas créer de page de retour, définissez redirect_on_completion sur never
lors de la création de votre session Checkout.
Cela désactive les moyens de paiement avec redirection :
- Si vous utilisez des moyens de paiement dynamiques, vous pouvez toujours gérer les moyens de paiement depuis le Dashboard. Cependant, les moyens de paiement avec redirection ne sont pas admissibles.
- Si vous spécifiez manuellement des moyens de paiement avec payment_method_types, vous ne pouvez pas inclure de moyen de paiement avec redirection.
redirect_on_completion: never
entraîne la suppression de l’exigence return_url
. Pour ces sessions, Checkout affiche un état de réussite par défaut au lieu d’effectuer une redirection. Vous pouvez utiliser votre propre état de réussite en transmettant un rappel onComplete qui détruit l’instance Checkout et affiche votre état de réussite personnalisé.
onComplete
est appelé lorsque la session Checkout aboutit ou lorsque l’événement webhook checkout.session.completed est envoyé.