
Cara Kerjanya
Inline checkout merender frame Dodo Payments yang aman ke dalam container di halaman Anda. Frame ini menangani pengumpulan informasi pelanggan dan detail pembayaran. Halaman Anda menampilkan item, total, dan informasi lainnya. SDK memungkinkan halaman Anda dan frame checkout berkomunikasi satu sama lain. Saat checkout selesai, Dodo Payments membuat pembayaran, atau subscription untuk produk subscription, dan mengirim webhook agar Anda dapat memberikan akses.Karakteristik Inline Checkout yang Baik
Pelanggan perlu mengetahui dengan siapa mereka bertransaksi, apa yang mereka beli, dan berapa yang harus dibayar. Implementasi Anda harus mencakup:
Example inline checkout layout showing required elements
- Informasi berulang: Jika pembayaran berulang, tampilkan seberapa sering pembayaran terjadi dan total yang harus dibayar saat perpanjangan. Jika berupa trial, tampilkan durasi trial.
- Deskripsi item: Deskripsi tentang apa yang dibeli.
- Total transaksi: Subtotal, total pajak, dan total keseluruhan, termasuk mata uang.
- Footer Dodo Payments: Frame inline checkout lengkap, termasuk footer dengan informasi Dodo Payments, ketentuan penjualan, dan kebijakan privasi.
- Kebijakan pengembalian dana: Tautan ke kebijakan pengembalian dana Anda, jika berbeda dari kebijakan pengembalian dana standar Dodo Payments.
Perjalanan Pelanggan
Alur checkout bergantung pada konfigurasi checkout session Anda. Bergantung pada cara Anda mengonfigurasi session, pelanggan mungkin melihat semua informasi di satu halaman atau melalui beberapa langkah.Customer opens checkout
checkout.breakdown, untuk menampilkan dan memperbarui informasi pada halaman.
Customer enters their details
Customer selects payment method

Checkout completed

Dodo Payments creates the payment or subscription

Mulai Cepat
Instal SDK, inisialisasikan untuk mode inline, dan buka checkout di elemen container:Integrasi Langkah demi Langkah
Install the SDK
Initialize the SDK for Inline Display
displayType: 'inline'. Dengarkan event checkout.breakdown untuk memperbarui UI Anda dengan kalkulasi pajak dan total secara real-time:Create a Container Element
Open the Checkout
DodoPayments.Checkout.open() dengan checkoutUrl dan elementId dari container Anda:Test Your Integration
- Jalankan development server Anda:
- Uji alur checkout:
- Masukkan email dan detail alamat Anda di frame inline
- Pastikan ringkasan pesanan kustom Anda diperbarui secara real-time
- Uji alur pembayaran menggunakan kredensial pengujian
- Pastikan pengalihan berfungsi dengan benar
checkout.breakdown tercatat di konsol browser jika Anda menambahkan log konsol di callback onEvent.Go Live
- Ubah mode menjadi
'live':
- Perbarui URL checkout Anda agar menggunakan checkout session live dari backend Anda
- Uji alur lengkap di production
Contoh React Lengkap
Contoh ini menunjukkan cara mengimplementasikan ringkasan pesanan kustom di samping inline checkout dan menjaganya tetap sinkron menggunakan eventcheckout.breakdown:
Referensi API
Inisialisasi
PanggilInitialize sekali untuk menyiapkan SDK:
Buka Checkout
Buka frame checkout di dalam container:Tutup Checkout
Hapus frame checkout secara terprogram dan bersihkan event listener:Periksa Status
Periksa apakah frame checkout saat ini telah disisipkan:Event
SDK menyediakan event real-time melalui callbackonEvent. Untuk inline checkout, checkout.breakdown sangat berguna untuk menyinkronkan UI Anda:
Data Rincian Checkout
Eventcheckout.breakdown menyediakan informasi harga dan pajak:
- Pemformatan Mata Uang: Harga berupa bilangan bulat dalam unit mata uang terkecil, misalnya sen untuk USD. Untuk mata uang dengan dua angka desimal, bagi dengan 100 sebelum memformat menggunakan
Intl.NumberFormat. Mata uang tanpa angka desimal, seperti JPY, tidak memiliki unit yang lebih kecil, jadi jangan membaginya. - Menangani State Awal: Saat checkout pertama kali dimuat,
taxdandiscountmungkin berupa0ataunullhingga pengguna memberikan informasi penagihan atau menerapkan kode. Tangani state ini dengan baik (misalnya, tampilkan tanda pisah—atau sembunyikan baris tersebut). - “Final Total” vs “Total”: Meskipun
totalmemberikan kalkulasi harga standar,finalTotaladalah sumber kebenaran untuk transaksi. JikafinalTotaltersedia, nilainya mencerminkan jumlah persis yang akan dibebankan ke kartu pelanggan. - Feedback Real-time: Gunakan field
taxuntuk menunjukkan kepada pengguna bahwa pajak sedang dihitung secara real-time. Ini membuat halaman checkout terasa “live” dan mengurangi hambatan saat memasukkan alamat.
Implementasi CDN
Untuk integrasi cepat tanpa build step, muat SDK dari CDN:Perbarui Metode Pembayaran
Inline checkout mendukung pembaruan metode pembayaran untuk subscription. Saat pelanggan perlu memperbarui metode pembayaran untuk subscription aktif atau mengaktifkan kembali subscription yang ditangguhkan, Anda dapat merender alur pembaruan langsung di dalam tata letak halaman Anda.Cara Kerjanya
- Panggil Update Payment Method API untuk mendapatkan
payment_link:
- Teruskan
payment_linkyang dikembalikan sebagaicheckoutUrluntuk membuka inline checkout:
Untuk Subscription yang Ditangguhkan
Saat memperbarui metode pembayaran untuk subscription dengan statuson_hold, Dodo Payments secara otomatis membuat charge untuk tunggakan yang tersisa. Pantau webhook payment.succeeded dan subscription.active untuk mengonfirmasi pengaktifan kembali.
Penanganan Error
Selalu implementasikan penanganan error di callbackonEvent Anda:
Praktik Terbaik
- Desain Responsif: Pastikan elemen container Anda memiliki lebar dan tinggi yang cukup. Iframe biasanya akan diperluas untuk mengisi container-nya.
- Sinkronisasi: Gunakan event
checkout.breakdownuntuk menjaga ringkasan pesanan kustom atau tabel harga tetap sinkron dengan yang dilihat pengguna di frame checkout. - State Skeleton: Tampilkan indikator loading di container hingga event
checkout.openeddijalankan. - Pembersihan: Panggil
DodoPayments.Checkout.close()saat component Anda unmount untuk membersihkan iframe dan event listener.
#0d0d0d sebagai warna latar belakang guna mendapatkan integrasi visual optimal dengan frame inline checkout.Validasi Status Pembayaran
Mengapa Validasi Sisi Server Penting
Meskipun event inline checkout memberikan feedback real-time, event tersebut tidak boleh menjadi satu-satunya sumber kebenaran untuk status pembayaran. Masalah jaringan, browser crash, atau pengguna yang menutup halaman dapat menyebabkan event terlewat. Untuk memastikan validasi pembayaran yang andal:- Dengarkan event webhook - Dodo Payments mengirim webhook untuk perubahan status pembayaran
- Implementasikan mekanisme polling - Frontend Anda harus melakukan polling ke server untuk mendapatkan pembaruan status
- Gabungkan kedua pendekatan - Gunakan webhook sebagai sumber utama dan polling sebagai cadangan
Arsitektur yang Direkomendasikan
Langkah Implementasi
1. Dengarkan event checkout - Saat pengguna mengeklik tombol pembayaran, mulai persiapan untuk memverifikasi status:payment.succeeded atau payment.failed. Lihat dokumentasi Webhooks kami untuk detailnya.
Pemecahan Masalah
Checkout frame is not appearing
Checkout frame is not appearing
- Verifikasi bahwa
elementIdcocok denganiddaridivyang benar-benar ada di DOM - Pastikan
displayType: 'inline'diteruskan keInitialize - Periksa apakah
checkoutUrlvalid
Taxes are not updating in my UI
Taxes are not updating in my UI
- Pastikan Anda mendengarkan event
checkout.breakdown - Pajak hanya dihitung setelah pengguna memasukkan negara dan kode pos yang valid di frame checkout
Dompet Digital
Untuk informasi mendetail tentang penyiapan Apple Pay, Google Pay, dan dompet digital lainnya, lihat halaman Dompet Digital.Penyiapan Cepat Apple Pay
Open Wallet domains

Open Wallet domains from the Apple Pay row
Download the domain association file

Download the Apple Pay domain association file
Register your domain
shop.example.com), lalu klik Continue.
Register the domain where you embed inline checkout
Host the file on your domain
Content-Type: application/octet-stream atau text/plain.Verify the domain

Verify the hosted association file
Confirm it's active

Verified domains show an Active status
Test the integration
- Buka checkout di perangkat Apple
- Pastikan tombol Apple Pay muncul
- Selesaikan transaksi pengujian
Dukungan Browser
Dodo Payments Checkout SDK mendukung:- Chrome (terbaru)
- Firefox (terbaru)
- Safari (terbaru)
- Edge (terbaru)
- IE11+