Langsung ke konten utama

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

1

Clone the Repository

2

Create Virtual Environment

Siapkan lingkungan Python terisolasi:
Atau menggunakan uv untuk manajemen ketergantungan yang lebih cepat:
3

Install Dependencies

Atau dengan uv:
4

Get API Credentials

Daftar di Dodo Payments dan dapatkan kredensial Anda dari dasbor:
Pastikan Anda dalam Mode Uji saat mengembangkan!
5

Configure Environment Variables

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

Run the Development Server

Buka http://localhost:8000/docs untuk melihat dokumentasi API interaktif!
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:

Contoh Kode

Membuat Sesi Checkout

Menangani Webhook

Integrasi Portal Pelanggan

Peristiwa Webhook

Boilerplate ini menunjukkan penanganan peristiwa webhook umum: Tambahkan logika bisnis Anda di dalam penangan webhook untuk:
  • 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:
Perbarui URL webhook di Dasbor Dodo Payments Anda:

Penyebaran

Docker

Bangun dan jalankan:

Pertimbangan Produksi

Sebelum melakukan deploy ke produksi:
  • Switch DODO_PAYMENTS_ENVIRONMENT ke live_mode
  • Gunakan kunci API produksi dari dasbor
  • Perbarui URL webhook ke domain produksi Anda
  • Aktifkan HTTPS untuk semua endpoint

Pemecahan Masalah

Pastikan lingkungan virtual Anda diaktifkan dan dependensi telah diinstal:
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
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.
  • Pastikan DODO_PAYMENTS_WEBHOOK_KEY sudah diatur dengan benar di .env Anda
  • Verifikasi bahwa Anda menggunakan tubuh permintaan mentah untuk verifikasi tanda tangan
  • Periksa bahwa Anda membaca header webhook-signature dengan 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?
Terakhir diubah pada 9 Juni 2026