GitHub Repository
Boilerplate Minimal Go + Dodo Payments
Ikhtisar
Boilerplate Go menyediakan titik awal yang siap produksi untuk mengintegrasikan Dodo Payments dengan backend Go Anda. Template ini mencakup penanganan sesi checkout, verifikasi webhook, integrasi portal pelanggan, dan mengikuti praktik terbaik Go untuk membantu Anda mulai menerima pembayaran dengan cepat.Boilerplate ini menggunakan Go 1.21+ dengan pola arsitektur bersih (
cmd, internal, templates), template HTML, dan SDK dodopayments-go untuk integrasi API yang mulus.Fitur
- Quick Setup - Mulai dalam waktu kurang dari 5 menit
- Payment Integration - Alur checkout yang sudah dikonfigurasi menggunakan SDK
dodopayments-go - Modern UI - Halaman harga bertema gelap yang bersih dengan template HTML
- Webhook Handling - Verifikasi dan proses event pembayaran dengan aman
- Customer Portal - Manajemen langganan swalayan
- Go Best Practices - Arsitektur bersih dengan
cmd,internal, dantemplates - Pre-filled Checkout - Menunjukkan cara meneruskan data pelanggan untuk meningkatkan UX
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki:- Go 1.21+
- Akun Dodo Payments (untuk mengakses API dan Kunci Webhook dari dasbor)
Memulai dengan Cepat
Get API Credentials
Daftar di Dodo Payments dan dapatkan kredensial Anda dari dashboard:
- Kunci API: Dasbor → Pengembang → Kunci API
- Kunci Webhook: Dasbor → Pengembang → Webhook
Configure Environment Variables
Buat file Perbarui nilai dengan kredensial Dodo Payments Anda:
.env di direktori root:.env
Add Your Products
Perbarui
internal/lib/products.go dengan ID produk Anda yang sesungguhnya dari Dodo Payments:Run the Development Server
Anda akan melihat halaman harga bertema gelap dengan produk Anda siap dibeli.
Struktur Proyek
Endpoint API
Boilerplate ini mencakup endpoint yang sudah dikonfigurasi sebagai berikut:| Endpoint | Method | Deskripsi |
|---|---|---|
/ | GET | Halaman harga dengan daftar produk |
/api/checkout | POST | Membuat sesi checkout baru |
/api/webhook | POST | Menangani webhook Dodo Payments |
/api/customer-portal | POST | Menghasilkan URL portal pelanggan |
Kustomisasi
Perbarui Informasi Produk
Editinternal/lib/products.go untuk mengubah:
- ID Produk (dari dashboard Dodo Anda)
- Harga
- Fitur
- Deskripsi
Praisi Data Pelanggan
Ditemplates/index.html, ganti data pelanggan yang di-hardcode dengan data pengguna Anda yang sebenarnya:
Peristiwa Webhook
Boilerplate ini menunjukkan penanganan event webhook diinternal/api/webhook.go. Event yang didukung mencakup:
| Event | Deskripsi |
|---|---|
subscription.active | Dipicu saat langganan menjadi aktif |
payment.succeeded | Dipicu saat pembayaran berhasil |
- Memperbarui izin pengguna di database Anda
- Mengirim email konfirmasi
- Menyediakan akses ke produk digital
- Melacak analitik dan metrik
Menguji Webhook Secara Lokal
Untuk pengembangan lokal, gunakan alat seperti ngrok untuk mengekspos server lokal Anda:Penyebaran
Bangun untuk Produksi
Deploy ke Vercel
[Docker
BuatDockerfile:
Pertimbangan Produksi
Pemecahan Masalah
Build errors or missing dependencies
Build errors or missing dependencies
Pastikan modul Go telah diunduh dengan benar:
Checkout session creation fails
Checkout session creation fails
Penyebab umum:
- ID produk tidak valid - verifikasi bahwa ID tersebut ada di dashboard Dodo Anda
- Kunci API atau pengaturan lingkungan yang salah di
.env - Periksa log server untuk pesan kesalahan yang lebih rinci
Webhooks not receiving events
Webhooks not receiving events
Untuk pengujian lokal, gunakan ngrok untuk mengekspos server Anda:Perbarui URL webhook di dashboard Dodo Anda ke URL ngrok. Pastikan memperbarui file
.env dengan kunci verifikasi webhook yang benar.Templates not loading
Templates not loading
Pastikan Anda menjalankan server dari direktori root proyek, atau path template telah dikonfigurasi dengan benar dalam kode Anda.
Pelajari Lebih Lanjut
Go SDK
Dokumentasi lengkap Go SDK
Webhooks Documentation
Pelajari semua event webhook dan praktik terbaik
Checkout Sessions
Pendalaman konfigurasi sesi checkout
API Reference
Dokumentasi lengkap API Dodo Payments
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