Skip to main content

Checkout Handler

Integrasikan checkout Dodo Payments dengan alur statis, dinamis, dan sesi.

Customer Portal

Izinkan pelanggan mengelola langganan dan detail.

Webhooks

Terima dan proses event webhook Dodo Payments.

Instalasi

1

Install the package

Jalankan perintah berikut di root proyek Anda:
2

Set up environment variables

Buat file .env di root proyek Anda:
Jangan pernah meng-commit file .env atau rahasia ke versi kontrol.

Contoh Pengelola Rute

Semua contoh mengasumsikan Anda menggunakan Next.js App Router.
Gunakan handler ini untuk mengintegrasikan checkout Dodo Payments ke dalam aplikasi Next.js Anda. Mendukung alur pembayaran statis (GET), dinamis (POST), dan sesi checkout (POST).

Pengelola Rute Checkout

Dodo Payments mendukung tiga jenis alur pembayaran untuk mengintegrasikan pembayaran ke situs web Anda, adaptor ini mendukung semua jenis alur pembayaran.
  • Tautan Pembayaran Statis: URL yang dapat dibagikan secara instan untuk pengumpulan pembayaran cepat tanpa kode.
  • Tautan Pembayaran Dinamis: Menghasilkan tautan pembayaran secara programatis dengan detail kustom menggunakan API atau SDK.
  • Sesi Checkout: Buat pengalaman checkout yang aman dan dapat disesuaikan dengan keranjang produk dan detail pelanggan yang telah dikonfigurasi sebelumnya.

Parameter Query yang Didukung

string
wajib
Pengenal produk (misalnya, ?productId=pdt_nZuwz45WAs64n3l07zpQR).
integer
Jumlah produk.
string
Nama lengkap customer.
string
Nama depan customer.
string
Nama belakang customer.
string
Alamat email customer.
string
Negara customer.
string
Baris alamat customer.
string
Kota customer.
string
Negara bagian/provinsi customer.
string
Kode pos customer.
boolean
Nonaktifkan kolom nama lengkap.
boolean
Nonaktifkan kolom nama depan.
boolean
Nonaktifkan kolom nama belakang.
boolean
Nonaktifkan kolom email.
boolean
Nonaktifkan kolom negara.
boolean
Nonaktifkan kolom baris alamat.
boolean
Nonaktifkan kolom kota.
boolean
Nonaktifkan kolom negara bagian.
boolean
Nonaktifkan kolom kode pos.
string
Tentukan mata uang pembayaran (misalnya, USD).
boolean
Tampilkan pemilih mata uang.
number
Menetapkan jumlah yang dibebankan, dalam unit utama mata uang (misalnya, 12.5 untuk $12.50). Hanya untuk produk Pay What You Want, dan diabaikan jika berada di bawah harga minimum produk.
boolean
Tampilkan kolom diskon.
string
Parameter query apa pun yang diawali dengan metadata_ akan diteruskan sebagai metadata.
Jika productId hilang, handler mengembalikan respons 400. Parameter query yang tidak valid juga menghasilkan respons 400.

Format Respons

Checkout statis mengembalikan respons JSON dengan URL checkout:
Dynamic Checkout memproksikan endpoint POST /payments dan POST /subscriptions yang sudah deprecated. Fitur ini tetap berfungsi untuk integrasi yang sudah ada, tetapi integrasi baru sebaiknya menggunakan Checkout Sessions di bawah.

Format Respons

Dynamic checkout mengembalikan respons JSON dengan URL checkout:
Checkout sessions menyediakan pengalaman checkout hosted yang lebih aman dan menangani seluruh alur pembayaran untuk pembelian satu kali maupun subscription dengan kontrol kustomisasi penuh.Lihat Panduan Integrasi Checkout Sessions untuk detail lebih lanjut dan daftar lengkap field yang didukung.

Format Respons

Checkout sessions mengembalikan respons JSON dengan URL checkout:

Route Handler Customer Portal

Customer Portal Route Handler memungkinkan Anda mengintegrasikan customer portal Dodo Payments ke dalam aplikasi Next.js secara mulus.

Parameter Query

string
wajib
ID customer untuk sesi portal (misalnya, ?customer_id=cus_123).
boolean
Jika diatur ke true, email berisi tautan portal akan dikirim kepada customer.
Mengembalikan 400 jika customer_id tidak ada.

Route Handler Webhook

  • Metode: Hanya request POST yang didukung. Metode lainnya mengembalikan 405.
  • Verifikasi Signature: Memverifikasi signature webhook menggunakan webhookKey. Mengembalikan 401 jika verifikasi gagal.
  • Validasi Payload: Divalidasi dengan Zod. Mengembalikan 400 untuk payload yang tidak valid.
  • Penanganan Error:
    • 401: Signature tidak valid
    • 400: Payload tidak valid
    • 500: Error internal selama verifikasi
  • Routing Event: Memanggil event handler yang sesuai berdasarkan tipe payload.

Event Handler Webhook yang Didukung


Prompt untuk LLM

Terakhir diubah pada 21 Agustus 2026