Langsung ke konten utama

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

  • Quick Setup - Mulai dalam kurang dari 5 menit
  • Payment Integration - Alur checkout yang telah dikonfigurasi sebelumnya menggunakan @dodopayments/astro
  • Modern UI - Halaman harga bertema gelap yang bersih dengan Tailwind CSS
  • Webhook Handler - Endpoint webhook siap pakai untuk event pembayaran
  • Customer Portal - Manajemen langganan satu klik
  • TypeScript - Sepenuhnya bertipe dengan tipe minimal dan fokus
  • Pre-filled Checkout - Menunjukkan cara meneruskan 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

Clone the Repository

2

Install Dependencies

3

Get API Credentials

Daftar di Dodo Payments dan dapatkan kredensial Anda dari dasbor:
Pastikan Anda berada dalam Test Mode saat mengembangkan!
4

Configure Environment Variables

Buat file .env di direktori root:
Perbarui nilai dengan kredensial Dodo Payments Anda:
Jangan pernah meng-commit file .env Anda ke kontrol versi. File tersebut sudah termasuk dalam .gitignore.
5

Add Your Products

Perbarui src/lib/products.ts dengan ID produk Anda yang sebenarnya dari Dodo Payments:
6

Run the Development Server

Buka http://localhost:4321 untuk melihat halaman harga Anda!

Struktur Proyek

Kustomisasi

Perbarui Informasi Produk

Sunting src/lib/products.ts untuk mengubah:
  • ID Produk (dari dasbor Dodo Anda)
  • Harga
  • Fitur
  • Deskripsi

Isi Data Pelanggan

Di src/components/ProductCard.astro, gantilah nilai yang dikodekan langsung dengan data pengguna Anda yang sebenarnya:

Perbarui Portal Pelanggan

Di src/components/Header.astro, gantilah ID pelanggan yang dikodekan langsung dengan ID pelanggan aktual dari sistem otentikasi atau basis data Anda:
Anda dapat menyelesaikan pembelian uji untuk mendapatkan ID pelanggan untuk pengujian.

Peristiwa Webhook

Boilerplate ini menunjukkan penanganan event webhook di src/pages/api/webhook.ts:
  • onSubscriptionActive - Dipicu ketika sebuah langganan menjadi aktif
  • onSubscriptionCancelled - Dipicu ketika sebuah langganan dibatalkan
Tambahkan logika bisnis Anda di dalam penangan ini:
Tambahkan lebih banyak peristiwa webhook sesuai kebutuhan. Untuk pengembangan lokal, Anda dapat menggunakan alat seperti ngrok untuk membuat terowongan aman ke server lokal Anda dan menggunakannya sebagai URL webhook Anda.

Penyebaran

Boilerplate ini menggunakan output statis dengan rendering sesuai permintaan untuk rute API. Anda perlu menginstal adapter untuk platform penyebaran Anda: Lihat panduan penyebaran Astro untuk semua platform.

Perbarui URL Webhook

Setelah penyebaran, perbarui URL webhook Anda di Dasbor Dodo Payments:
Juga ingat untuk memperbarui variabel lingkungan DODO_PAYMENTS_WEBHOOK_KEY di lingkungan produksi Anda agar sesuai dengan kunci penandatanganan webhook untuk domain yang Anda deploy.

Pemecahan Masalah

Hapus node_modules dan pasang kembali dependensi:
Penyebab umum:
  • ID produk tidak valid - pastikan ada di dasbor Dodo Anda
  • Kunci API atau pengaturan lingkungan yang salah di .env
  • Periksa konsol browser dan terminal untuk melihat kesalahan
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.
Boilerplate ini menggunakan output statis dengan rute API sesuai permintaan. Anda perlu menginstal adapter untuk deployment:Lihat panduan deployment Astro untuk detail.

Pelajari Lebih Lanjut

Dukungan

Butuh bantuan dengan boilerplate?
Terakhir diubah pada 28 Mei 2026