Personnaliser les options d'expédition lors du paiementBêta
Découvrez comment personnaliser les options d'expédition en fonction de l'adresse de livraison du client.
Beta
This feature is in private beta. Request access.
Configurer StripeCôté serveur
Pour commencer, vous devez créer un compte Stripe. S’inscrire.
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application :
Configurez le SDK pour utiliser l’en-tête de version bêta checkout_
.
Créer une session CheckoutCôté serveur
Sur votre serveur, créez une session Checkout.
- Définissez le champ ui_mode sur
embedded
. - Définissez le champ permissions.update.shipping_details sur
server_
.only - Définissez le champ shipping_address_collection.allowed_countries sur la liste des pays auxquels vous souhaitez offrir des services de livraison.
Par défaut, le client Stripe Checkout met automatiquement à jour le champ shipping_details de l’objet Checkout Session avec les informations d’expédition saisies par le client, y compris son nom et son adresse.
Lorsque le champ permissions.update.shipping_details est défini sur server_
, la mise à jour automatique est désactivée et seul votre serveur peut mettre à jour les informations d’expédition à l’aide de votre clé secrète Stripe.
Personnaliser les options d'expéditionCôté serveur
À partir de votre serveur, créez un nouvel endpoint pour calculer les options d’expédition en fonction de l’adresse de livraison du client.
- Récupérez la session Checkout à l’aide de la
checkoutSessionId
fournie dans le corps de la requête. - Validez les informations de livraison du client fournies dans le corps de la demande.
- Calculez les options d’expédition en fonction de l’adresse de livraison du client et des articles de la session Checkout.
- Modifiez la session Checkout avec les shipping_details et les shipping_options du client.
Monter CheckoutCôté client
Mise en garde
Renvoyez toujours une Promise
à partir de votre fonction onShippingDetailsChange
et résolvez-la avec un objet ResultAction.
Le client Checkout met à jour l’interface utilisateur en fonction du résultat de la fonction onShippingDetailsChange
.
- Lorsque le résultat présente
type: "accept"
, l’interface utilisateur de Checkout affiche les options d’expédition que vous avez définies sur votre serveur. - Lorsque le résultat est
type: "reject"
, l’interface utilisateur de Checkout affiche le message d’erreur que vous avez défini dans le résultat.
Checkout s’affiche dans un iframe qui envoie de manière sécurisée les informations de paiement à Stripe via une connexion HTTPS.
Erreur fréquente
Évitez de placer Checkout dans un autre iframe, car certains moyens de paiement nécessitent une redirection vers une autre page pour la confirmation du paiement.
Tester l'intégration
Suivez les étapes ci-dessous pour tester votre intégration et vous assurer que vos options d’expédition personnalisées fonctionnent correctement.
Configurez un environnement de test qui reflète votre configuration en mode production. Utilisez vos clés API Stripe en mode test pour cet environnement.
Simulez diverses adresses de livraison pour vérifier que votre fonction
calculateShippingOptions
traite correctement les différents scénarios.Vérifiez la logique côté serveur en utilisant des outils de journalisation ou de débogage pour confirmer que votre serveur :
- récupère la session Checkout.
- valide les informations de l’expédition.
- calcule les options d’expédition.
- modifie la session Checkout avec les nouvelles informations et options de livraison. Assurez-vous que la réponse de mise à jour contient les nouvelles informations et options d’expédition.
Vérifiez la logique côté client en effectuant plusieurs fois le processus de paiement dans votre navigateur. Veillez à la façon dont l’Interface utilisateur se met à jour après avoir saisi les informations de l’expédition. Assurez-vous que :
- la fonction
onShippingDetailsChange
est appelée comme prévu. - les options de livraison sont correctement mises à jour en fonction de l’adresse fournie.
- les messages d’erreur s’affichent correctement lorsque l’expédition n’est pas disponible.
- la fonction
Saisissez des adresses de livraison non valides ou simulez des erreurs de serveur pour tester la gestion des erreurs, côté serveur et côté client.