
Fonctionnement
Le checkout inline affiche une frame Dodo Payments sécurisée dans un conteneur de votre page. La frame gère la collecte des informations client et des informations de paiement. Votre page affiche les articles, les totaux et les autres informations. Le SDK permet à votre page et à la frame de checkout de communiquer entre elles. Lorsque le checkout est terminé, Dodo Payments crée le paiement ou l’abonnement pour un produit par abonnement, puis envoie un webhook afin que vous puissiez provisionner l’accès.Les caractéristiques d’un bon checkout inline
Les clients doivent savoir auprès de qui ils achètent, ce qu’ils achètent et combien ils paient. Votre implémentation doit inclure :
Example inline checkout layout showing required elements
- Informations récurrentes : En cas de paiement récurrent, indiquez la fréquence et le montant total à payer lors du renouvellement. En cas d’essai, indiquez sa durée.
- Descriptions des articles : Une description de ce qui est acheté.
- Totaux de la transaction : Sous-total, total des taxes et total général, devise comprise.
- Pied de page Dodo Payments : La frame de checkout inline complète, y compris le pied de page contenant les informations de Dodo Payments, les conditions de vente et la politique de confidentialité.
- Politique de remboursement : Un lien vers votre politique de remboursement si elle diffère de la politique de remboursement standard de Dodo Payments.
Parcours client
Le flux de checkout dépend de la configuration de votre checkout session. Selon la manière dont vous configurez la session, les clients peuvent voir toutes les informations sur une seule page ou réparties sur plusieurs étapes.Customer opens checkout
checkout.breakdown, pour afficher et mettre à jour les informations de la page.
Customer enters their details
Customer selects payment method

Checkout completed

Dodo Payments creates the payment or subscription

Démarrage rapide
Installez le SDK, initialisez-le pour le mode inline et ouvrez le checkout dans un élément conteneur :Intégration étape par étape
Install the SDK
Initialize the SDK for Inline Display
displayType: 'inline'. Écoutez l’événement checkout.breakdown pour mettre à jour votre interface avec les calculs de taxes et de totaux en temps réel :Create a Container Element
Open the Checkout
DodoPayments.Checkout.open() avec checkoutUrl et elementId de votre conteneur :Test Your Integration
- Démarrez votre serveur de développement :
- Testez le flux de checkout :
- Saisissez votre adresse e-mail et vos informations d’adresse dans la frame inline
- Vérifiez que votre récapitulatif de commande personnalisé se met à jour en temps réel
- Testez le flux de paiement avec des identifiants de test
- Vérifiez que les redirections fonctionnent correctement
checkout.breakdown enregistrés dans la console de votre navigateur si vous avez ajouté un journal de console dans le callback onEvent.Go Live
- Remplacez le mode par
'live':
- Mettez à jour vos URL de checkout afin d’utiliser les checkout sessions en production depuis votre backend
- Testez le flux complet en production
Exemple React complet
Cet exemple montre comment implémenter un récapitulatif de commande personnalisé à côté du checkout inline, en les synchronisant à l’aide de l’événementcheckout.breakdown :
Référence API
Initialiser
AppelezInitialize une fois pour configurer le SDK :
Ouvrir le checkout
Ouvrez la frame de checkout dans un conteneur :Fermer le checkout
Supprimez programmatiquement la frame de checkout et nettoyez les écouteurs d’événements :Vérifier l’état
Vérifiez si la frame de checkout est actuellement injectée :Événements
Le SDK fournit des événements en temps réel via le callbackonEvent. Pour le checkout inline, checkout.breakdown est particulièrement utile pour synchroniser votre interface :
Données de ventilation du checkout
L’événementcheckout.breakdown fournit les informations de prix et de taxes :
- Formatage des devises : Les prix sont des entiers exprimés dans la plus petite unité de la devise, par exemple les centimes pour USD. Pour les devises à deux décimales, divisez par 100 avant le formatage avec
Intl.NumberFormat. Les devises sans décimales, comme JPY, n’ont pas d’unité plus petite : ne les divisez donc pas. - Gestion des états initiaux : Au premier chargement du checkout,
taxetdiscountpeuvent être0ounulljusqu’à ce que l’utilisateur fournisse ses informations de facturation ou applique un code. Gérez ces états avec élégance, par exemple en affichant un tiret—ou en masquant la ligne. - « Total final » et « Total » : Même si
totalfournit le calcul de prix standard,finalTotalconstitue la source de vérité de la transaction. SifinalTotalest présent, il reflète exactement le montant qui sera débité de la carte du client. - Retour en temps réel : Utilisez le champ
taxpour montrer aux utilisateurs que les taxes sont calculées en temps réel. Cela donne un aspect « vivant » à votre page de checkout et réduit les frictions lors de la saisie de l’adresse.
Implémentation avec CDN
Pour une intégration rapide sans étape de build, chargez le SDK depuis un CDN :Mettre à jour le moyen de paiement
Le checkout inline prend en charge la mise à jour des moyens de paiement pour les abonnements. Lorsqu’un client doit mettre à jour son moyen de paiement pour un abonnement actif ou réactiver un abonnement suspendu, vous pouvez afficher directement le flux de mise à jour dans la mise en page de votre page.Fonctionnement
- Appelez l’API de mise à jour du moyen de paiement pour obtenir un
payment_link:
- Transmettez le
payment_linkrenvoyé commecheckoutUrlpour ouvrir le checkout inline :
Pour les abonnements suspendus
Lors de la mise à jour du moyen de paiement d’un abonnement avec le statuton_hold, Dodo Payments crée automatiquement une charge pour les sommes restantes dues. Surveillez les webhooks payment.succeeded et subscription.active pour confirmer la réactivation.
Gestion des erreurs
Implémentez toujours la gestion des erreurs dans votre callbackonEvent :
Bonnes pratiques
- Design responsive : Vérifiez que votre élément conteneur dispose d’une largeur et d’une hauteur suffisantes. L’iframe s’agrandit généralement pour remplir son conteneur.
- Synchronisation : Utilisez l’événement
checkout.breakdownpour synchroniser votre récapitulatif de commande ou vos tableaux de prix personnalisés avec ce que l’utilisateur voit dans la frame de checkout. - États skeleton : Affichez un indicateur de chargement dans votre conteneur jusqu’au déclenchement de l’événement
checkout.opened. - Nettoyage : Appelez
DodoPayments.Checkout.close()lorsque votre composant est démonté afin de supprimer l’iframe et les écouteurs d’événements.
#0d0d0d comme couleur d’arrière-plan afin d’obtenir une intégration visuelle optimale avec la frame de checkout inline.Validation du statut du paiement
Pourquoi la validation côté serveur est essentielle
Bien que les événements du checkout inline fournissent un retour en temps réel, ils ne doivent pas être votre seule source de vérité pour le statut du paiement. Les problèmes réseau, les plantages du navigateur ou la fermeture de la page par les utilisateurs peuvent entraîner la perte d’événements. Pour garantir une validation fiable du paiement :- Écoutez les événements webhook - Dodo Payments envoie des webhooks lors des changements de statut du paiement
- Implémentez un mécanisme de polling - Votre frontend doit interroger votre serveur pour obtenir les mises à jour du statut
- Combinez les deux approches - Utilisez les webhooks comme source principale et le polling comme solution de secours
Architecture recommandée
Étapes d’implémentation
1. Écoutez les événements du checkout - Lorsque l’utilisateur clique sur le bouton de paiement, commencez à préparer la vérification du statut :payment.succeeded ou payment.failed. Consultez notre documentation sur les webhooks pour plus d’informations.
Dépannage
Checkout frame is not appearing
Checkout frame is not appearing
- Vérifiez que
elementIdcorrespond auidd’undivqui existe réellement dans le DOM - Vérifiez que
displayType: 'inline'a été transmis àInitialize - Vérifiez que
checkoutUrlest valide
Taxes are not updating in my UI
Taxes are not updating in my UI
- Vérifiez que vous écoutez l’événement
checkout.breakdown - Les taxes sont calculées uniquement après la saisie d’un pays et d’un code postal valides dans la frame de checkout
Portefeuilles numériques
Pour plus d’informations sur la configuration d’Apple Pay, Google Pay et des autres portefeuilles numériques, consultez la page Portefeuilles numériques.Configuration rapide d’Apple Pay
Open Wallet domains

Open Wallet domains from the Apple Pay row
Download the domain association file

Download the Apple Pay domain association file
Register your domain
shop.example.com, puis cliquez sur Continue.
Register the domain where you embed inline checkout
Host the file on your domain
Content-Type: application/octet-stream ou text/plain.Verify the domain

Verify the hosted association file
Confirm it's active

Verified domains show an Active status
Test the integration
- Ouvrez le checkout sur un appareil Apple
- Vérifiez que le bouton Apple Pay s’affiche
- Effectuez une transaction de test
Navigateurs pris en charge
Le Checkout SDK de Dodo Payments prend en charge :- Chrome (dernière version)
- Firefox (dernière version)
- Safari (dernière version)
- Edge (dernière version)
- IE11+