GitHub Repository
Selesaikan boilerplate FastAPI + Dodo Payments
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
Create Virtual Environment
Siapkan lingkungan Python terisolasi:Atau menggunakan uv untuk manajemen ketergantungan yang lebih cepat:
Get API Credentials
Daftar di Dodo Payments dan dapatkan kredensial Anda dari dasbor:
- 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
Run the Development Server
Anda harus melihat UI Swagger 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 | Create a new checkout session |
/webhook | POST | Handle Dodo Payments webhooks |
/customer-portal | POST | Generate customer portal URL |
Contoh Kode
Membuat Sesi Checkout
Menangani Webhook
Integrasi Portal Pelanggan
Peristiwa Webhook
Boilerplate ini menunjukkan penanganan peristiwa webhook umum:| Acara | 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
Import errors or missing modules
Import errors or missing modules
Pastikan lingkungan virtual Anda diaktifkan dan dependensi telah diinstal:
Checkout session creation fails
Checkout session creation fails
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
Webhooks not receiving events
Webhooks not receiving events
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.Webhook signature verification fails
Webhook signature verification fails
- Pastikan
DODO_PAYMENTS_WEBHOOK_KEYsudah diatur dengan benar di.envAnda - Verifikasi bahwa Anda menggunakan tubuh permintaan mentah untuk verifikasi tanda tangan
- Periksa bahwa Anda membaca header
webhook-signaturedengan benar
Pelajari Lebih Lanjut
Python SDK
Dokumentasi SDK Python lengkap dengan dukungan async
Webhooks Documentation
Pelajari semua peristiwa webhook dan praktik terbaik
Checkout Sessions
Mendalami konfigurasi sesi checkout
API Reference
Dokumentasi API Dodo Payments lengkap
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