Aperçu
Le boilerplate minimal Next.js est une application de démarrage à laquelle Dodo Payments est déjà connecté. Ajoutez vos clés API et vos IDs de produits pour obtenir une page de tarification qui ouvre le checkout, un endpoint webhook pour les événements de paiement et un lien vers le Customer Portal.Ce boilerplate utilise l’App Router de Next.js 16 avec TypeScript, Tailwind CSS 4 et l’adaptateur
@dodopayments/nextjs. Pour ajouter les mêmes route handlers à une application existante, consultez Next.js Adaptor.Caractéristiques
Le boilerplate inclut :- Configuration rapide : passez du clonage à une page de tarification fonctionnelle en environ cinq minutes.
- Checkout : un flux de checkout préconfiguré basé sur
@dodopayments/nextjs. - Page de tarification : une page de tarification au thème sombre, stylisée avec Tailwind CSS.
- Gestionnaire de webhook : un endpoint qui vérifie chaque signature de webhook et exécute votre code pour l’événement.
- Customer Portal : un lien dans l’en-tête qui ouvre le Customer Portal, où les clients gèrent leurs abonnements.
- TypeScript : des définitions de produits et des handlers typés.
- Checkout prérempli : transmet le nom et l’adresse e-mail du client au checkout afin qu’il n’ait pas à les saisir à nouveau.
Prérequis
Avant de commencer, vous avez besoin de :- Node.js 20.9 ou version ultérieure, requis par Next.js 16.
- Un compte Dodo Payments, pour créer une clé API et un secret de signature de webhook dans le dashboard.
Démarrage rapide
1
Clone the Repository
2
Install Dependencies
3
Get API Credentials
Inscrivez-vous sur Dodo Payments, puis récupérez vos identifiants dans le dashboard :
- Clé API : créez une clé dans Dashboard → Developer → API Keys.
- Clé de webhook : ajoutez un endpoint dans Dashboard → Developer → Webhooks, puis copiez son secret de signature. L’URL de l’endpoint doit être publique et utiliser HTTPS. Pour recevoir des événements sur votre machine, consultez Webhook Events.
4
Configure Environment Variables
Copiez le fichier d’exemple pour créer un fichier Définissez les valeurs avec vos identifiants Dodo Payments :Les route handlers lisent ces variables :
.env dans le répertoire racine :DODO_PAYMENTS_API_KEYauthentifie les handlers de checkout et de Customer Portal.DODO_PAYMENTS_WEBHOOK_KEYvérifie les signatures de webhook.DODO_PAYMENTS_RETURN_URLindique où le checkout redirige le client après le paiement.DODO_PAYMENTS_ENVIRONMENTcorrespond àtest_modeoulive_mode.
5
Add Your Products
Remplacez les produits d’exemple dans La page de tarification affiche
src/lib/products.ts par les vôtres. Définissez chaque product_id avec l’ID d’un produit présent dans Products de votre dashboard :name, description, price et features depuis ce fichier. Le checkout facture le prix défini sur le produit dans Dodo Payments ; veillez donc à synchroniser price avec celui-ci.6
Run the Development Server
Structure du projet
Les route handlers du checkout, du Customer Portal et des webhooks se trouvent soussrc/app/api/ :
Personnalisation
Mettre à jour les informations produit
Modifiezsrc/lib/products.ts pour changer :
- Les IDs de produits, depuis Products dans votre dashboard Dodo Payments
- Les prix
- Les fonctionnalités
- Les descriptions
Préremplir les données client
src/app/components/ProductCard.tsx envoie un nom et une adresse e-mail codés en dur avec chaque requête de checkout. Remplacez-les par les informations de l’utilisateur connecté :
Mettre à jour le Customer Portal
Le lien Customer Portal danssrc/app/components/Header.tsx ouvre /api/customer-portal avec un ID client codé en dur. Remplacez-le par l’ID client Dodo Payments de l’utilisateur connecté :
Événements webhook
Le handler danssrc/app/api/webhook/route.ts vérifie chaque requête avec DODO_PAYMENTS_WEBHOOK_KEY, puis gère deux événements :
onSubscriptionActives’exécute lorsqu’un abonnement devient actif (subscription.active).onPaymentSucceededs’exécute lorsqu’un paiement réussit (payment.succeeded).
onSubscriptionCancelled. Next.js Adaptor répertorie tous les handlers pris en charge.
Dodo Payments ne peut pas atteindre localhost. Pour le développement local, utilisez un tunnel tel que ngrok afin d’exposer votre serveur local, et utilisez l’URL du tunnel comme endpoint webhook.
Déploiement
Générer pour la production
Déployer sur Vercel
[DODO_PAYMENTS_RETURN_URL avec votre URL de production.
Mettre à jour l’URL du webhook
Après le déploiement, ajoutez l’URL de votre webhook de production dans le Dodo Payments Dashboard, en remplaçantexample.com par votre domaine :
DODO_PAYMENTS_WEBHOOK_KEY dans votre environnement de production.
Résolution des problèmes
Module not found or build errors
Module not found or build errors
Supprimez
node_modules et package-lock.json, puis réinstallez les dépendances :Checkout redirect fails
Checkout redirect fails
Vérifiez les causes courantes suivantes :
- L’ID du produit n’existe pas dans votre dashboard Dodo Payments.
- La clé API ou
DODO_PAYMENTS_ENVIRONMENTdans.envest incorrecte. Une clé en mode test fonctionne uniquement avectest_mode.
npm run dev.Webhooks not receiving events
Webhooks not receiving events
Pour les tests locaux, utilisez ngrok afin d’exposer votre serveur :Dans votre Dodo dashboard, ajoutez un endpoint avec l’URL HTTPS ngrok suivie de
/api/webhook. Copiez le secret de signature de cet endpoint dans DODO_PAYMENTS_WEBHOOK_KEY de votre fichier .env.Customer portal link doesn't work
Customer portal link doesn't work
Remplacez
CUSTOMER_ID codé en dur dans src/app/components/Header.tsx par l’ID d’un client présent dans votre dashboard Dodo Payments.En production, récupérez plutôt l’ID client depuis votre système d’authentification et votre base de données.En savoir plus
- Documentation Dodo Payments
- Documentation des Checkout Sessions
- Documentation des webhooks
- Next.js Adaptor : options pour les handlers
Checkout,CustomerPortaletWebhooks
Assistance
Pour obtenir de l’aide avec le boilerplate :- Posez vos questions dans la communauté Discord.
- Signalez les problèmes et suivez les mises à jour dans le dépôt GitHub.
- Envoyez un e-mail à l’équipe d’assistance.