Ikhtisar
Boilerplate minimal Next.js adalah aplikasi awal dengan Dodo Payments yang sudah terhubung. Tambahkan API keys dan product IDs Anda, lalu Anda mendapatkan halaman harga yang membuka checkout, endpoint webhook untuk payment events, dan tautan ke Customer Portal.Boilerplate ini menggunakan Next.js 16 App Router dengan TypeScript, Tailwind CSS 4, dan adaptor
@dodopayments/nextjs. Untuk menambahkan route handlers yang sama ke aplikasi yang sudah ada, lihat Next.js Adaptor.Fitur
Boilerplate ini mencakup:- Penyiapan Cepat: Beralih dari clone ke halaman harga yang berjalan dalam sekitar lima menit.
- Checkout: Alur checkout yang telah dikonfigurasi sebelumnya, dibangun di atas
@dodopayments/nextjs. - Halaman Harga: Halaman harga bertema gelap yang ditata dengan Tailwind CSS.
- Webhook Handler: Endpoint yang memverifikasi setiap webhook signature dan menjalankan kode Anda untuk event tersebut.
- Customer Portal: Tautan header yang membuka Customer Portal, tempat pelanggan mengelola subscription mereka.
- TypeScript: Definisi product dan handler yang memiliki type.
- Checkout Terisi Otomatis: Meneruskan nama dan email pelanggan ke checkout, sehingga pelanggan tidak perlu mengetikkannya lagi.
Prasyarat
Sebelum memulai, Anda memerlukan:- Node.js 20.9 atau yang lebih baru, yang diperlukan oleh Next.js 16.
- Akun Dodo Payments, untuk membuat API key dan webhook signing secret di dashboard.
Mulai Cepat
1
Clone the Repository
2
Install Dependencies
3
Get API Credentials
Daftar di Dodo Payments, lalu dapatkan kredensial Anda dari dashboard:
- API Key: Buat key di Dashboard → Developer → API Keys.
- Webhook Key: Tambahkan endpoint di Dashboard → Developer → Webhooks, lalu salin signing secret-nya. URL endpoint harus bersifat publik dan menggunakan HTTPS. Untuk menerima event di mesin Anda, lihat Webhook Events.
4
Configure Environment Variables
Salin file contoh untuk membuat file Atur nilainya ke kredensial Dodo Payments Anda:Route handlers membaca variabel berikut:
.env di direktori root:DODO_PAYMENTS_API_KEYmengautentikasi checkout dan Customer Portal handlers.DODO_PAYMENTS_WEBHOOK_KEYmemverifikasi webhook signatures.DODO_PAYMENTS_RETURN_URLadalah tempat checkout mengarahkan pelanggan setelah payment.DODO_PAYMENTS_ENVIRONMENTadalahtest_modeataulive_mode.
5
Add Your Products
Ganti sample products di Halaman harga menampilkan
src/lib/products.ts dengan milik Anda sendiri. Atur setiap product_id ke ID product di bawah Products pada dashboard Anda:name, description, price, dan features dari file ini. Checkout membebankan harga yang ditetapkan pada product di Dodo Payments, jadi pastikan price tetap sinkron dengannya.6
Run the Development Server
Struktur Project
Checkout, Customer Portal, dan webhook route handlers berada di bawahsrc/app/api/:
Kustomisasi
Perbarui Informasi Product
Editsrc/lib/products.ts untuk mengubah:
- Product IDs, dari Products di dashboard Dodo Payments Anda
- Harga
- Fitur
- Deskripsi
Isi Otomatis Data Pelanggan
src/app/components/ProductCard.tsx mengirimkan nama dan email hardcoded dalam setiap checkout request. Ganti dengan detail pengguna yang sedang login:
Perbarui Customer Portal
Tautan Customer Portal disrc/app/components/Header.tsx membuka /api/customer-portal dengan customer ID hardcoded. Ganti dengan Dodo Payments customer ID milik pengguna yang sedang login:
Webhook Events
Handler disrc/app/api/webhook/route.ts memverifikasi setiap request dengan DODO_PAYMENTS_WEBHOOK_KEY, lalu menangani dua event:
onSubscriptionActiveberjalan saat subscription menjadi active (subscription.active).onPaymentSucceededberjalan saat payment berhasil (payment.succeeded).
onSubscriptionCancelled. Next.js Adaptor mencantumkan semua handler yang didukung.
Dodo Payments tidak dapat menjangkau localhost. Untuk local development, gunakan tunnel seperti ngrok untuk mengekspos server lokal Anda, dan gunakan URL tunnel tersebut sebagai webhook endpoint.
Deployment
Build untuk Production
Deploy ke Vercel
[DODO_PAYMENTS_RETURN_URL ke URL production Anda.
Perbarui Webhook URL
Setelah melakukan deployment, tambahkan production webhook URL Anda di Dodo Payments Dashboard, dengan domain Anda menggantikanexample.com:
DODO_PAYMENTS_WEBHOOK_KEY di environment production Anda.
Pemecahan Masalah
Module not found or build errors
Module not found or build errors
Hapus
node_modules dan package-lock.json, lalu instal ulang dependencies:Checkout redirect fails
Checkout redirect fails
Periksa penyebab umum berikut:
- Product ID tidak ada di dashboard Dodo Payments Anda.
- API key atau
DODO_PAYMENTS_ENVIRONMENTdi.envsalah. Key test mode hanya berfungsi dengantest_mode.
npm run dev.Webhooks not receiving events
Webhooks not receiving events
Untuk pengujian lokal, gunakan ngrok untuk mengekspos server Anda:Di Dodo dashboard Anda, tambahkan endpoint dengan URL HTTPS ngrok diikuti
/api/webhook. Salin signing secret endpoint tersebut ke DODO_PAYMENTS_WEBHOOK_KEY di file .env Anda.Customer portal link doesn't work
Customer portal link doesn't work
Ganti
CUSTOMER_ID yang hardcoded di src/app/components/Header.tsx dengan ID customer di dashboard Dodo Payments Anda.Dalam production, dapatkan customer ID dari authentication system dan database Anda.Pelajari Lebih Lanjut
- Dokumentasi Dodo Payments
- Dokumentasi Checkout Sessions
- Dokumentasi Webhooks
- Next.js Adaptor: opsi untuk handler
Checkout,CustomerPortal, danWebhooks
Dukungan
Untuk mendapatkan bantuan terkait boilerplate:- Ajukan pertanyaan di komunitas Discord.
- Laporkan masalah dan ikuti pembaruan di repository GitHub.
- Kirim email ke tim dukungan.