Ikhtisar
Boilerplate Astro minimal menyediakan titik awal yang siap digunakan untuk mengintegrasikan Dodo Payments dengan aplikasi Astro Anda. Template ini mencakup sesi checkout, penanganan webhook, portal pelanggan, dan komponen UI modern untuk membantu Anda mulai menerima pembayaran dengan cepat.Boilerplate ini menggunakan Astro 5 dengan TypeScript, Tailwind CSS 4, dan adapter
@dodopayments/astro.Fitur
- Pengaturan Cepat - Mulai dalam waktu kurang dari 5 menit
- Integrasi Pembayaran - Alur checkout yang sudah dikonfigurasi menggunakan
@dodopayments/astro - UI Modern - Halaman harga bertema gelap yang bersih dengan Tailwind CSS
- Penangan Webhook - Titik akhir webhook siap pakai untuk peristiwa pembayaran
- Portal Pelanggan - Manajemen langganan dengan satu klik
- TypeScript - Sepenuhnya diketik dengan tipe minimal dan terfokus
- Checkout Terisi - Menunjukkan pengiriman data pelanggan untuk meningkatkan UX
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki:- Node.js versi LTS (diperlukan untuk Astro 5)
- Akun Dodo Payments (untuk mengakses API dan Kunci Webhook dari dasbor)
Memulai dengan Cepat
1
Kloning Repositori
2
Instal Dependensi
3
Dapatkan Kredensial API
Daftar di Dodo Payments dan dapatkan kredensial Anda dari dasbor:
- Kunci API: Dasbor → Pengembang → Kunci API
- Kunci Webhook: Dasbor → Pengembang → Webhook
4
Konfigurasi Variabel Lingkungan
Buat file Perbarui nilai dengan kredensial Dodo Payments Anda:
.env di direktori root:5
Tambahkan Produk Anda
Perbarui
src/lib/products.ts dengan ID produk aktual Anda dari Dodo Payments:6
Jalankan Server Pengembangan
Struktur Proyek
Kustomisasi
Perbarui Informasi Produk
Editsrc/lib/products.ts untuk memodifikasi:
- ID Produk (dari dasbor Dodo Anda)
- Harga
- Fitur
- Deskripsi
Isi Data Pelanggan
Disrc/components/ProductCard.astro, ganti nilai yang dikodekan dengan data pengguna aktual Anda:
Perbarui Portal Pelanggan
Disrc/components/Header.astro, ganti ID pelanggan yang dikodekan dengan ID pelanggan aktual dari sistem otentikasi atau database Anda:
Peristiwa Webhook
Boilerplate ini menunjukkan penanganan peristiwa webhook disrc/pages/api/webhook.ts:
onSubscriptionActive- Dipicu ketika langganan menjadi aktifonSubscriptionCancelled- Dipicu ketika langganan dibatalkan
Penyebaran
Boilerplate ini menggunakan output statis dengan rendering sesuai permintaan untuk rute API. Anda perlu menginstal adapter untuk platform penyebaran Anda:| Platform | Panduan |
|---|---|
| Vercel | Deploy to Vercel |
| Netlify | Deploy to Netlify |
| Cloudflare | Deploy to Cloudflare |
Perbarui URL Webhook
Setelah penyebaran, perbarui URL webhook Anda di Dasbor Dodo Payments:DODO_PAYMENTS_WEBHOOK_KEY di lingkungan produksi Anda agar sesuai dengan kunci penandatanganan webhook untuk domain yang telah Anda deploy.
Pemecahan Masalah
Modul tidak ditemukan atau kesalahan build
Modul tidak ditemukan atau kesalahan build
Hapus
node_modules dan instal ulang dependensi:Pengalihan checkout gagal
Pengalihan checkout gagal
Penyebab umum:
- ID produk tidak valid - verifikasi bahwa itu ada di dasbor Dodo Anda
- Kunci API atau pengaturan lingkungan yang salah di
.env - Periksa konsol browser dan terminal untuk kesalahan
Webhook tidak menerima peristiwa
Webhook tidak menerima peristiwa
Untuk pengujian lokal, gunakan ngrok untuk mengekspos server Anda:Perbarui URL webhook di dasbor Dodo Anda ke URL ngrok. Ingat untuk memperbarui file .env Anda dengan kunci verifikasi webhook yang benar.
Tautan portal pelanggan tidak berfungsi
Tautan portal pelanggan tidak berfungsi
Ganti
CUSTOMER_ID yang dikodekan di src/components/Header.astro dengan ID pelanggan aktual dari dasbor Dodo Anda.Atau integrasikan sistem otentikasi dan database Anda untuk mengambil ID pelanggan secara dinamis.Build gagal dengan kesalahan adapter
Build gagal dengan kesalahan adapter
Boilerplate ini menggunakan output statis dengan rute API sesuai permintaan. Anda perlu menginstal adapter untuk penyebaran:Lihat panduan penyebaran Astro untuk detailnya.
Pelajari Lebih Lanjut
Dukungan
Butuh bantuan dengan boilerplate?- Bergabunglah dengan komunitas Discord kami untuk pertanyaan dan diskusi
- Periksa repositori GitHub untuk masalah dan pembaruan
- Hubungi tim dukungan kami untuk bantuan