Skip to main content
Le checkout inline intègre directement un formulaire de paiement sécurisé à la mise en page de votre page. Contrairement au checkout overlay, qui s’ouvre sous forme de fenêtre modale, le checkout inline devient une partie de votre page. Vous contrôlez la mise en page et pouvez afficher votre propre récapitulatif de commande à côté du formulaire de checkout.
Formulaire de checkout inline intégré à une page produit avec récapitulatif de commande

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.
La frame de checkout inline gère de manière sécurisée toutes les informations de paiement sensibles, garantissant la conformité PCI sans certification supplémentaire de votre côté.

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 :
Exemple de checkout inline avec les éléments requis indiqués

Example inline checkout layout showing required elements

  1. 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.
  2. Descriptions des articles : Une description de ce qui est acheté.
  3. Totaux de la transaction : Sous-total, total des taxes et total général, devise comprise.
  4. 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é.
  5. Politique de remboursement : Un lien vers votre politique de remboursement si elle diffère de la politique de remboursement standard de Dodo Payments.
Affichez toujours la frame de checkout inline complète, y compris le pied de page. La suppression ou la dissimulation des informations légales enfreint les exigences de conformité.

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.
1

Customer opens checkout

Vous ouvrez le checkout inline en transmettant une URL de checkout. Utilisez les événements du SDK, tels que checkout.breakdown, pour afficher et mettre à jour les informations de la page.Page de checkout initiale avec liste d’articles et formulaire de paiement
2

Customer enters their details

Le checkout inline demande d’abord aux clients de saisir leur adresse e-mail, de sélectionner leur pays et, si nécessaire, de saisir leur code ZIP ou code postal. Cette étape recueille toutes les informations nécessaires pour déterminer les taxes et les options de paiement disponibles.Vous pouvez préremplir les informations client et proposer les adresses enregistrées afin de simplifier l’expérience.
3

Customer selects payment method

Après avoir saisi leurs informations, les clients voient les moyens de paiement disponibles ainsi que le formulaire de paiement. Les options peuvent inclure une carte de crédit ou de débit, PayPal, Apple Pay, Google Pay et d’autres moyens de paiement locaux selon leur emplacement.Affichez les moyens de paiement enregistrés lorsqu’ils sont disponibles afin d’accélérer le checkout.Moyens de paiement disponibles et formulaire de saisie des informations de carte
4

Checkout completed

Dodo Payments achemine chaque paiement vers l’acquéreur le mieux adapté à la vente afin d’optimiser ses chances de réussite. Les clients accèdent ensuite à un parcours de réussite que vous pouvez concevoir.Écran de réussite avec coche de confirmation
5

Dodo Payments creates the payment or subscription

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. Le moyen de paiement utilisé par le client est conservé pour les renouvellements ou les modifications d’abonnement.Abonnement créé avec notification webhook

Démarrage rapide

Installez le SDK, initialisez-le pour le mode inline et ouvrez le checkout dans un élément conteneur :
Vérifiez que votre page contient un élément conteneur avec le id correspondant : <div id="dodo-inline-checkout"></div>.

Intégration étape par étape

1

Install the SDK

Installez-le avec npm, yarn ou pnpm :
2

Initialize the SDK for Inline Display

Initialisez le SDK et indiquez 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 :
3

Create a Container Element

Ajoutez à votre HTML un élément dans lequel la frame de checkout sera injectée :
4

Open the Checkout

Appelez DodoPayments.Checkout.open() avec checkoutUrl et elementId de votre conteneur :
5

Test Your Integration

  1. Démarrez votre serveur de développement :
  1. 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
Vous devriez voir les événements checkout.breakdown enregistrés dans la console de votre navigateur si vous avez ajouté un journal de console dans le callback onEvent.
6

Go Live

Lorsque vous êtes prêt pour la production :
  1. Remplacez le mode par 'live' :
  1. Mettez à jour vos URL de checkout afin d’utiliser les checkout sessions en production depuis votre backend
  2. 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énement checkout.breakdown :

Référence API

Initialiser

Appelez Initialize 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 callback onEvent. Pour le checkout inline, checkout.breakdown est particulièrement utile pour synchroniser votre interface :

Données de ventilation du checkout

L’événement checkout.breakdown fournit les informations de prix et de taxes :
L’événement est déclenché lors du chargement de la frame de checkout, puis chaque fois que le prix est recalculé, par exemple lorsque le client sélectionne un pays ou saisit un code postal qui modifie la taxe. Détails des champs : Conseils d’intégration :
  1. 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.
  2. Gestion des états initiaux : Au premier chargement du checkout, tax et discount peuvent être 0 ou null jusqu’à 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.
  3. « Total final » et « Total » : Même si total fournit le calcul de prix standard, finalTotal constitue la source de vérité de la transaction. Si finalTotal est présent, il reflète exactement le montant qui sera débité de la carte du client.
  4. Retour en temps réel : Utilisez le champ tax pour 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

  1. Appelez l’API de mise à jour du moyen de paiement pour obtenir un payment_link :
  1. Transmettez le payment_link renvoyé comme checkoutUrl pour ouvrir le checkout inline :
La frame inline affiche uniquement le formulaire de collecte du moyen de paiement. Les clients peuvent saisir les informations d’une nouvelle carte ou sélectionner un moyen de paiement enregistré sans quitter votre page.

Pour les abonnements suspendus

Lors de la mise à jour du moyen de paiement d’un abonnement avec le statut on_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.
Vous pouvez également utiliser un moyen de paiement enregistré existant au lieu de collecter de nouvelles informations en transmettant type: 'existing' avec un payment_method_id à l’API de mise à jour du moyen de paiement.

Gestion des erreurs

Implémentez toujours la gestion des erreurs dans votre callback onEvent :
Gérez toujours l’événement checkout.error afin de fournir une expérience utilisateur optimale lorsque des erreurs se produisent.

Bonnes pratiques

  1. 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.
  2. Synchronisation : Utilisez l’événement checkout.breakdown pour synchroniser votre récapitulatif de commande ou vos tableaux de prix personnalisés avec ce que l’utilisateur voit dans la frame de checkout.
  3. États skeleton : Affichez un indicateur de chargement dans votre conteneur jusqu’au déclenchement de l’événement checkout.opened.
  4. Nettoyage : Appelez DodoPayments.Checkout.close() lorsque votre composant est démonté afin de supprimer l’iframe et les écouteurs d’événements.
Pour les implémentations en mode sombre, utilisez #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

Ne vous fiez pas uniquement aux événements du checkout inline pour déterminer la réussite ou l’échec d’un paiement. Implémentez toujours une validation côté serveur à l’aide de webhooks et/ou du polling.

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 :
  1. Écoutez les événements webhook - Dodo Payments envoie des webhooks lors des changements de statut du paiement
  2. Implémentez un mécanisme de polling - Votre frontend doit interroger votre serveur pour obtenir les mises à jour du statut
  3. 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 :
2. Interrogez votre serveur - Créez un endpoint qui vérifie dans votre base de données le statut du paiement, mis à jour par les webhooks :
3. Gérez les webhooks côté serveur - Mettez à jour votre base de données lorsque Dodo envoie les webhooks payment.succeeded ou payment.failed. Consultez notre documentation sur les webhooks pour plus d’informations.

Dépannage

  • Vérifiez que elementId correspond au id d’un div qui existe réellement dans le DOM
  • Vérifiez que displayType: 'inline' a été transmis à Initialize
  • Vérifiez que checkoutUrl est valide
  • 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

La vérification de domaine est requise uniquement pour le checkout inline (intégré). Elle n’est pas requise pour le checkout hébergé.
Apple Pay n’est pas disponible pour le checkout overlay.
Apple Pay est vérifié domaine par domaine depuis le dashboard.
1

Open Wallet domains

Accédez à Settings → Payment Methods puis, sur la ligne Apple Pay, cliquez sur Manage domains.
Bouton Manage domains sur la ligne Apple Pay des paramètres Payment Methods

Open Wallet domains from the Apple Pay row

2

Download the domain association file

Dans le panneau Wallet domains, téléchargez le fichier d’association.
Panneau Wallet domains avec le bouton Download file

Download the Apple Pay domain association file

3

Register your domain

Cliquez sur Register domain, saisissez le domaine sur lequel vous intégrez le checkout inline, par exemple shop.example.com, puis cliquez sur Continue.
Formulaire d’enregistrement d’un domaine avec un domaine saisi

Register the domain where you embed inline checkout

4

Host the file on your domain

Hébergez-le à l’adresse suivante :
Il doit être servi via HTTPS, être accessible sans redirection et être servi avec Content-Type: application/octet-stream ou text/plain.
5

Verify the domain

Cliquez sur Verify domain. Dodo Payments confirme que le fichier est accessible et soumet votre domaine à Apple.
Écran de vérification du domaine avec le chemin d’hébergement du fichier d’association et le bouton Verify domain

Verify the hosted association file

6

Confirm it's active

Lorsque le statut affiche Active, Apple Pay est activé pour ce domaine. Utilisez le bouton Enabled pour l’activer ou le désactiver pour chaque domaine.
Liste des domaines Wallet affichant des domaines avec le statut Apple Pay Active et des boutons Enabled

Verified domains show an Active status

7

Test the integration

  1. Ouvrez le checkout sur un appareil Apple
  2. Vérifiez que le bouton Apple Pay s’affiche
  3. Effectuez une transaction de test
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+

Checkout inline et checkout overlay

Choisissez le type de checkout adapté à votre cas d’utilisation :
Utilisez le checkout inline lorsque vous souhaitez un contrôle maximal de l’expérience de checkout et une identité visuelle cohérente. Utilisez le checkout overlay pour une intégration plus rapide avec un minimum de modifications de vos pages existantes.

Ressources associées

Overlay Checkout

Utilisez le checkout overlay pour une intégration rapide basée sur une fenêtre modale.

Checkout Sessions API

Créez des checkout sessions pour alimenter vos expériences de checkout.

Webhooks

Gérez les événements de paiement côté serveur avec des webhooks.

Integration Guide

Guide complet pour intégrer Dodo Payments.
Pour obtenir de l’aide, consultez notre communauté Discord ou contactez notre équipe d’assistance aux développeurs.
Dernière modification le 26 septembre 2026