Ikhtisar
Checkout inline memungkinkan Anda untuk membuat pengalaman checkout yang sepenuhnya terintegrasi yang menyatu dengan situs web atau aplikasi Anda. Berbeda dengan overlay checkout, yang muncul sebagai modal di atas halaman Anda, checkout inline menyisipkan formulir pembayaran langsung ke dalam tata letak halaman Anda. Dengan menggunakan checkout inline, Anda dapat:- Membuat pengalaman checkout yang sepenuhnya terintegrasi dengan aplikasi atau situs web Anda
- Membiarkan Dodo Payments dengan aman menangkap informasi pelanggan dan pembayaran dalam bingkai checkout yang dioptimalkan
- Menampilkan item, total, dan informasi lain dari Dodo Payments di halaman Anda
- Menggunakan metode dan peristiwa SDK untuk membangun pengalaman checkout yang lebih canggih

Cara Kerjanya
Checkout inline bekerja dengan menyisipkan bingkai Dodo Payments yang aman ke dalam situs web atau aplikasi Anda. Bingkai checkout menangani pengumpulan informasi pelanggan dan menangkap detail pembayaran. Halaman Anda menampilkan daftar item, total, dan opsi untuk mengubah apa yang ada di checkout. SDK memungkinkan halaman Anda dan bingkai checkout berinteraksi satu sama lain. Dodo Payments secara otomatis membuat langganan ketika checkout selesai, siap untuk Anda provision.Frame checkout inline menangani semua informasi pembayaran sensitif dengan aman, memastikan kepatuhan PCI tanpa perlu sertifikasi tambahan dari pihak Anda.
Apa yang Membuat Checkout Inline yang Baik?
Penting bagi pelanggan untuk mengetahui siapa yang mereka beli, apa yang mereka beli, dan berapa banyak yang mereka bayar. Untuk membangun checkout inline yang sesuai dan dioptimalkan untuk konversi, implementasi Anda harus mencakup:
- Informasi berulang: Jika berulang, seberapa sering itu terjadi dan total yang harus dibayar saat pembaruan. Jika percobaan, berapa lama percobaan berlangsung.
- Deskripsi item: Deskripsi tentang apa yang dibeli.
- Total transaksi: Total transaksi, termasuk subtotal, total pajak, dan total keseluruhan. Pastikan untuk menyertakan mata uang juga.
- Footer Dodo Payments: Bingkai checkout inline lengkap, termasuk footer checkout yang memiliki informasi tentang Dodo Payments, syarat penjualan kami, dan kebijakan privasi kami.
- Kebijakan pengembalian: Tautan ke kebijakan pengembalian Anda, jika berbeda dari kebijakan pengembalian standar Dodo Payments.
Perjalanan Pelanggan
Alur checkout ditentukan oleh konfigurasi sesi checkout Anda. Tergantung pada bagaimana Anda mengonfigurasi sesi checkout, pelanggan akan mengalami checkout yang mungkin menyajikan semua informasi di satu halaman atau di beberapa langkah.Customer opens checkout
Anda dapat membuka inline checkout dengan melewatkan item atau transaksi yang sudah ada. Gunakan SDK untuk menampilkan dan memperbarui informasi pada halaman, dan metode SDK untuk memperbarui item berdasarkan interaksi pelanggan.

Customer enters their details
Checkout inline pertama-tama meminta pelanggan untuk memasukkan alamat email mereka, memilih negara mereka, dan (di mana diperlukan) memasukkan kode pos atau kode pos mereka. Langkah ini mengumpulkan semua informasi yang diperlukan untuk menentukan pajak dan opsi pembayaran yang tersedia.Anda dapat mengisi detail pelanggan sebelumnya dan menyajikan alamat yang disimpan untuk memperlancar pengalaman.
Customer selects payment method
Setelah memasukkan detail mereka, pelanggan disajikan dengan metode pembayaran yang tersedia dan formulir pembayaran. Opsi mungkin termasuk kartu kredit atau debit, PayPal, Apple Pay, Google Pay, dan metode pembayaran lokal lainnya berdasarkan lokasi mereka.Tampilkan metode pembayaran yang disimpan jika tersedia untuk mempercepat checkout.

Checkout completed
Dodo Payments mengarahkan setiap pembayaran ke pengakuisisi terbaik untuk penjualan tersebut untuk mendapatkan peluang terbaik untuk sukses. Pelanggan memasuki alur kerja sukses yang dapat Anda bangun.

Memulai dengan Cepat
Mulai dengan Dodo Payments Inline Checkout hanya dalam beberapa baris kode:Panduan Integrasi Langkah-demi-Langkah
Initialize the SDK for Inline Display
Inisialisasi SDK dan tentukan
displayType: 'inline'. Anda juga harus mendengarkan event checkout.breakdown untuk memperbarui UI Anda dengan perhitungan pajak dan total secara real-time.Open the Checkout
Panggil
DodoPayments.Checkout.open() dengan checkoutUrl dan elementId dari kontainer Anda:Test Your Integration
- Mulai server pengembangan Anda:
- Uji alur checkout:
- Masukkan email dan detail alamat Anda di bingkai inline.
- Verifikasi bahwa ringkasan pesanan kustom Anda diperbarui secara real-time.
- Uji alur pembayaran menggunakan kredensial uji.
- Konfirmasi pengalihan berfungsi dengan benar.
Anda akan melihat event
checkout.breakdown dicatat di konsol browser Anda jika Anda menambahkan console log pada callback onEvent.Contoh React Lengkap
Contoh ini menunjukkan cara mengimplementasikan ringkasan pesanan kustom bersamaan dengan checkout inline, menjaga keduanya tetap sinkron menggunakan eventcheckout.breakdown.
Referensi API
Konfigurasi
Opsi Inisialisasi
| Opsi | Tipe | Wajib | Deskripsi |
|---|---|---|---|
mode | "test" | "live" | Ya | Mode lingkungan. |
displayType | "inline" | "overlay" | Ya | Harus diatur ke "inline" untuk menyematkan checkout. |
onEvent | function | Ya | Fungsi callback untuk menangani event checkout. |
Opsi Checkout
| Option | Type | Required | Description |
|---|---|---|---|
checkoutUrl | string | Yes | URL sesi checkout. |
elementId | string | Yes | id dari elemen DOM di mana checkout harus dirender. |
options.showTimer | boolean | No | Tampilkan atau sembunyikan timer checkout. Default ke true. Saat dinonaktifkan, Anda akan menerima acara checkout.link_expired ketika sesi berakhir. |
options.showSecurityBadge | boolean | No | Tampilkan atau sembunyikan lencana keamanan. Default ke true. |
options.payButtonText | string | No | Teks kustom untuk ditampilkan pada tombol bayar. |
options.fontSize | FontSize | No | Ukuran font global untuk checkout. |
options.fontWeight | FontWeight | No | Berat font global untuk checkout. |
Metode
Buka Checkout
Membuka bingkai checkout di kontainer yang ditentukan.Tutup Checkout
Menghapus bingkai checkout secara program dan membersihkan pendengar acara.Periksa Status
Mengembalikan apakah bingkai checkout saat ini disuntikkan.Acara
SDK menyediakan acara waktu nyata melalui panggilan balikonEvent. Untuk inline checkout, checkout.breakdown sangat berguna untuk sinkronisasi UI Anda.
| Jenis Acara | Deskripsi |
|---|---|
checkout.opened | Bingkai checkout telah dimuat. |
checkout.form_ready | Formulir checkout siap menerima input pengguna. Berguna untuk menyembunyikan status loading dan menampilkan UI checkout. |
checkout.breakdown | Dipicu ketika harga, pajak, atau diskon diperbarui. |
checkout.customer_details_submitted | Detail pelanggan telah diserahkan. |
checkout.pay_button_clicked | Dipicu saat pelanggan mengklik tombol bayar. Berguna untuk analitik dan pelacakan funnel konversi. |
checkout.redirect | Checkout akan melakukan pengalihan (misalnya, ke halaman bank). |
checkout.error | Terjadi kesalahan selama checkout. |
checkout.link_expired | Dipicu ketika sesi checkout berakhir. Hanya diterima ketika showTimer diatur ke false. |
Data Breakdown Checkout
Acaracheckout.breakdown menyediakan data berikut:
Memahami Acara Breakdown
Acaracheckout.breakdown adalah cara utama untuk menjaga UI aplikasi Anda tetap sinkron dengan status checkout Dodo Payments.
Kapan dipicu:
- Saat inisialisasi: Segera setelah bingkai checkout dimuat dan siap.
- Saat perubahan alamat: Setiap kali pelanggan memilih negara atau memasukkan kode pos yang mengakibatkan perhitungan ulang pajak.
| Field | Deskripsi |
|---|---|
subTotal | Jumlah semua item line dalam sesi sebelum diskon atau pajak diterapkan. |
discount | Nilai total dari semua diskon yang diterapkan. |
tax | Jumlah pajak yang dihitung. Dalam mode inline, ini diperbarui secara dinamis saat pengguna berinteraksi dengan field alamat. |
total | Hasil matematis dari subTotal - discount + tax dalam mata uang dasar sesi. |
currency | Kode mata uang ISO (misalnya, "USD") untuk subtotal, diskon, dan nilai pajak standar. |
finalTotal | Jumlah sebenarnya yang dibebankan kepada pelanggan. Ini mungkin termasuk penyesuaian tukar tambah atau biaya metode pembayaran lokal tambahan yang bukan bagian dari pemecahan harga dasar. |
finalTotalCurrency | Mata uang di mana pelanggan benar-benar membayar. Ini dapat berbeda dari currency jika paritas daya beli atau konversi mata uang lokal aktif. |
- Pemformatan Mata Uang: Harga selalu dikembalikan sebagai angka bulat dalam satuan mata uang terkecil (misalnya, sen untuk USD, yen untuk JPY). Untuk menampilkannya, bagi dengan 100 (atau pangkat sepuluh yang sesuai) atau gunakan perpustakaan pemformatan seperti
Intl.NumberFormat. - Menangani Status Awal: Ketika checkout pertama dimuat,
taxdandiscountmungkin0ataunullsampai pengguna memberikan informasi penagihan mereka atau menerapkan kode. UI Anda harus menangani status ini dengan baik (misalnya, menunjukkan tanda hubung—atau menyembunyikan baris). - Total Akhir vs Total: Sementara
totalmemberi Anda perhitungan harga standar,finalTotaladalah sumber kebenaran untuk transaksi. JikafinalTotaltersedia, ini mencerminkan dengan tepat apa yang akan dibebankan ke kartu pelanggan, termasuk penyesuaian dinamis apa pun. - Feedback Real-time: Gunakan bidang
taxuntuk menunjukkan kepada pengguna bahwa pajak sedang dihitung secara real-time. Ini memberikan nuansa “hidup” pada halaman checkout Anda dan mengurangi gesekan selama langkah masuk alamat.
Opsi Implementasi
Instalasi Paket Manager
Instal melalui npm, yarn, atau pnpm seperti yang dijelaskan dalam Panduan Integrasi Langkah-demi-Langkah.Implementasi CDN
Untuk integrasi cepat tanpa langkah build, Anda dapat menggunakan CDN kami:Perbarui Metode Pembayaran
Inline checkout mendukung pembaruan metode pembayaran untuk langganan. Ketika pelanggan perlu memperbarui metode pembayaran mereka — apakah untuk langganan aktif atau untuk mengaktifkan kembali langganan yang ditangguhkan — Anda dapat menampilkan alur pembaruan langsung dalam tata letak halaman Anda.Cara Kerjanya
- Panggil API Pembaruan Metode Pembayaran untuk mendapatkan
payment_link:
- Berikan
payment_linkyang dikembalikan sebagaicheckoutUrluntuk membuka inline checkout:
Untuk Langganan Ditangguhkan
Ketika memperbarui metode pembayaran untuk langganan dalam statuson_hold, Dodo Payments secara otomatis membuat tagihan untuk tunggakan yang tersisa. Pantau webhooks payment.succeeded dan subscription.active untuk mengonfirmasi pengaktifan kembali.
Penanganan Error
SDK menyediakan informasi kesalahan yang detail melalui sistem acara. Selalu terapkan penanganan kesalahan yang tepat dalam panggilan balikonEvent Anda:
Praktik Terbaik
- Desain Responsif: Pastikan elemen kontainer Anda memiliki lebar dan tinggi yang cukup. Iframe biasanya akan berkembang untuk mengisi kontainernya.
- Sinkronisasi: Gunakan acara
checkout.breakdownuntuk menjaga ringkasan pesanan khusus Anda atau tabel harga tetap sinkron dengan apa yang dilihat pengguna dalam bingkai checkout. - Status Kerangka: Tampilkan indikator loading dalam kontainer Anda sampai acara
checkout.openeddipicu. - Pembersihan: Panggil
DodoPayments.Checkout.close()ketika komponen Anda dihapus untuk membersihkan iframe dan pendengar acara.
Untuk implementasi mode gelap, disarankan untuk menggunakan
#0d0d0d sebagai warna latar belakang untuk integrasi visual yang optimal dengan bingkai checkout inline.Validasi Status Pembayaran
Mengapa Validasi Sisi Server Penting
Meski acara checkout inline memberikan umpan balik waktu nyata, mereka seharusnya tidak menjadi satu-satunya sumber kebenaran Anda untuk status pembayaran. Masalah jaringan, kerusakan browser, atau pengguna menutup halaman dapat menyebabkan acara terlewat. Untuk memastikan validasi pembayaran yang andal:- Server Anda harus mendengarkan acara webhook - Dodo Payments mengirim webhook untuk perubahan status pembayaran
- Implementasikan mekanisme polling - Frontend Anda harus melakukan polling ke server Anda untuk perubahan status
- Gabungkan kedua pendekatan - Gunakan webhook sebagai sumber utama dan polling sebagai cadangan
Arsitektur yang Direkomendasikan
Langkah Implementasi
1. Dengarkan acara checkout - Saat pengguna mengklik bayar, mulailah mempersiapkan untuk memverifikasi status:payment.succeeded atau payment.failed. Lihat dokumentasi Webhook kami untuk detailnya.
Pemecahan Masalah
Checkout frame is not appearing
Checkout frame is not appearing
- Verifikasi bahwa
elementIdsesuai denganiddaridivyang benar-benar ada di DOM. - Pastikan
displayType: 'inline'telah diteruskan keInitialize. - Periksa apakah
checkoutUrlvalid.
Taxes are not updating in my UI
Taxes are not updating in my UI
- Pastikan Anda mendengarkan acara
checkout.breakdown. - Pajak hanya dihitung setelah pengguna memasukkan negara dan kode pos yang valid di bingkai checkout.
Mengaktifkan Dompet Digital
Untuk informasi lebih detail tentang menyiapkan Apple Pay, Google Pay, dan dompet digital lainnya, lihat halaman Digital Wallets.Pengaturan Cepat untuk Apple Pay
Download domain association file
Request activation
Email support@dodopayments.com dengan URL domain produksi Anda dan minta aktivasi Apple Pay.
Dukungan Browser
Dodo Payments Checkout SDK mendukung browser berikut:- Chrome (terbaru)
- Firefox (terbaru)
- Safari (terbaru)
- Edge (terbaru)
- IE11+
Inline vs Overlay Checkout
Pilih jenis checkout yang tepat untuk kebutuhan Anda:| Fitur | Inline Checkout | Overlay Checkout |
|---|---|---|
| Kedalaman integrasi | Benar-benar tertanam di halaman | Modal di atas halaman |
| Kontrol tata letak | Kontrol penuh | Terbatas |
| Branding | Mulus | Terpisah dari halaman |
| Usaha Implementasi | Lebih tinggi | Lebih rendah |
| Terbaik untuk | Halaman checkout kustom, aliran konversi tinggi | Integrasi cepat, halaman yang sudah ada |
Sumber Daya Terkait
Overlay Checkout
Gunakan overlay checkout untuk integrasi berbasis modal yang cepat.
Checkout Sessions API
Buat sesi checkout untuk menggerakkan pengalaman checkout Anda.
Webhooks
Tangani acara pembayaran di sisi server dengan webhook.
Integration Guide
Panduan lengkap untuk mengintegrasikan Dodo Payments.
