Repositori GitHub
Boilerplate FastAPI + Dodo Payments lengkap
Ikhtisar
Boilerplate FastAPI menyediakan titik awal yang siap produksi untuk mengintegrasikan Dodo Payments dengan backend Python Anda. Template ini mencakup penanganan sesi checkout, verifikasi webhook, integrasi portal pelanggan, dan pola API async untuk membantu Anda mulai menerima pembayaran dengan cepat.Boilerplate ini menggunakan FastAPI dengan pola async/await, Pydantic untuk validasi, dan
dodopayments Python SDK untuk integrasi API yang mulus.Fitur
- Pengaturan Cepat - Mulai dalam waktu kurang dari 5 menit
- Dukungan Async - Dibangun dengan pola async/await asli FastAPI
- Sesi Checkout - Alur checkout yang sudah dikonfigurasi menggunakan Python SDK
- Penanganan Webhook - Titik akhir webhook yang aman dengan verifikasi tanda tangan
- Portal Pelanggan - Pembuatan sesi portal pelanggan yang mudah
- Keamanan Tipe - Validasi Pydantic penuh dan petunjuk tipe
- Konfigurasi Lingkungan - Pengaturan variabel lingkungan siap pakai
Prasyarat
Sebelum Anda mulai, pastikan Anda memiliki:- Python 3.9+ (disarankan: Python 3.11+)
- pip atau uv untuk manajemen paket
- Akun Dodo Payments (untuk mengakses API dan Kunci Webhook dari dasbor)
Memulai dengan Cepat
1
Kloning Repositori
2
Buat Lingkungan Virtual
Siapkan lingkungan Python yang terisolasi:Atau menggunakan uv untuk manajemen ketergantungan yang lebih cepat:
3
Instal Ketergantungan
4
Dapatkan Kredensial API
Daftar di Dodo Payments dan dapatkan kredensial Anda dari dasbor:
- Kunci API: Dasbor → Pengembang → Kunci API
- Kunci Webhook: Dasbor → Pengembang → Webhook
5
Konfigurasi Variabel Lingkungan
Buat file Perbarui nilai dengan kredensial Dodo Payments Anda:
.env di direktori root:.env
6
Jalankan Server Pengembangan
Anda seharusnya melihat Swagger UI FastAPI dengan semua endpoint yang tersedia siap untuk diuji.
Struktur Proyek
Endpoint API
Boilerplate ini mencakup endpoint yang sudah dikonfigurasi sebagai berikut:| Endpoint | Metode | Deskripsi |
|---|---|---|
/checkout | POST | Buat sesi checkout baru |
/webhook | POST | Tangani webhook Dodo Payments |
/customer-portal | POST | Hasilkan URL portal pelanggan |
Contoh Kode
Membuat Sesi Checkout
Menangani Webhook
Integrasi Portal Pelanggan
Peristiwa Webhook
Boilerplate ini menunjukkan penanganan peristiwa webhook umum:| Peristiwa | Deskripsi |
|---|---|
payment.succeeded | Pembayaran berhasil diselesaikan |
payment.failed | Upaya pembayaran gagal |
subscription.active | Langganan sekarang aktif |
subscription.cancelled | Langganan dibatalkan |
refund.succeeded | Pengembalian dana berhasil diproses |
- 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
Docker
Pertimbangan Produksi
Pemecahan Masalah
Kesalahan impor atau modul yang hilang
Kesalahan impor atau modul yang hilang
Pastikan lingkungan virtual Anda diaktifkan dan ketergantungan terinstal:
Pembuatan sesi checkout gagal
Pembuatan sesi 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 log FastAPI untuk pesan kesalahan yang lebih rinci
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. Pastikan untuk memperbarui file
.env Anda dengan kunci verifikasi webhook yang benar.Verifikasi tanda tangan webhook gagal
Verifikasi tanda tangan webhook gagal
- Pastikan
DODO_PAYMENTS_WEBHOOK_KEYdiatur dengan benar di.envAnda - Verifikasi bahwa Anda menggunakan body permintaan mentah untuk verifikasi tanda tangan
- Periksa bahwa Anda membaca header
webhook-signaturedengan benar
Pelajari Lebih Lanjut
Python SDK
Dokumentasi lengkap Python SDK dengan dukungan async
Dokumentasi Webhook
Pelajari tentang semua peristiwa webhook dan praktik terbaik
Sesi Checkout
Penjelasan mendalam tentang konfigurasi sesi checkout
Referensi API
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