SDK Checkout Dodo Payments menyediakan cara yang mulus untuk mengintegrasikan overlay pembayaran kami ke dalam aplikasi web Anda. Dibangun dengan TypeScript dan standar web modern, ini menawarkan solusi yang kuat untuk menangani pembayaran dengan penanganan peristiwa real-time dan tema yang dapat disesuaikan.
Instal SDK Checkout Dodo Payments menggunakan manajer paket pilihan Anda:
Salin
npm install dodopayments-checkout
2
Inisialisasi SDK
Inisialisasi SDK di aplikasi Anda, biasanya di komponen utama atau titik masuk aplikasi:
Salin
import { DodoPayments } from "dodopayments-checkout";DodoPayments.Initialize({ mode: "test", // Change to 'live' for production displayType: "overlay", // Optional: defaults to 'overlay' for overlay checkout onEvent: (event) => { console.log("Checkout event:", event); // Handle different events switch (event.event_type) { case "checkout.opened": // Checkout overlay has been opened break; case "checkout.closed": // Checkout has been closed break; case "checkout.error": // Handle errors console.error("Checkout error:", event.data?.message); break; } },});
Selalu inisialisasi SDK sebelum mencoba membuka checkout. Inisialisasi harus dilakukan sekali saat aplikasi Anda dimuat.
Tampilkan atau sembunyikan timer checkout. Defaultnya adalah true. Ketika dinonaktifkan, Anda akan menerima peristiwa checkout.link_expired ketika sesi berakhir.
options.showSecurityBadge
boolean
Tidak
Tampilkan atau sembunyikan badge keamanan. Defaultnya adalah true.
options.manualRedirect
boolean
Tidak
Ketika diaktifkan, checkout tidak akan secara otomatis mengalihkan setelah selesai. Sebagai gantinya, Anda akan menerima peristiwa checkout.status dan checkout.redirect_requested untuk menangani pengalihan sendiri.
DodoPayments.Initialize({ onEvent: (event: CheckoutEvent) => { switch (event.event_type) { case "checkout.opened": // Checkout overlay has been opened break; case "checkout.payment_page_opened": // Payment page has been displayed break; case "checkout.customer_details_submitted": // Customer and billing details submitted break; case "checkout.closed": // Checkout has been closed break; case "checkout.redirect": // Checkout will perform a redirect break; case "checkout.error": // An error occurred console.error("Error:", event.data?.message); break; case "checkout.link_expired": // Checkout session has expired (only when showTimer is false) break; case "checkout.status": // Checkout status update (only when manualRedirect is enabled) const status = event.data?.message?.status; break; case "checkout.redirect_requested": // Redirect requested (only when manualRedirect is enabled) const redirectUrl = event.data?.message?.redirect_to; break; } }});
Tipe Peristiwa
Deskripsi
checkout.opened
Overlay checkout telah dibuka
checkout.payment_page_opened
Halaman pembayaran telah ditampilkan
checkout.customer_details_submitted
Detail pelanggan dan penagihan telah diserahkan
checkout.closed
Overlay checkout telah ditutup
checkout.redirect
Checkout akan melakukan pengalihan
checkout.error
Terjadi kesalahan selama checkout
checkout.link_expired
Ditembak ketika sesi checkout berakhir. Hanya diterima ketika showTimer diatur ke false.
checkout.status
Ditembak ketika manualRedirect diaktifkan. Berisi status checkout (succeeded, failed, atau processing).
checkout.redirect_requested
Ditembak ketika manualRedirect diaktifkan. Berisi URL untuk mengalihkan pelanggan.
Anda dapat menyesuaikan tampilan checkout dengan mengirimkan objek themeConfig dalam parameter options saat membuka checkout. Konfigurasi tema mendukung mode terang dan gelap, memungkinkan Anda untuk menyesuaikan warna, batas, teks, tombol, dan radius batas.
SDK menyediakan informasi kesalahan yang detail melalui sistem peristiwa. Selalu terapkan penanganan kesalahan yang tepat di callback onEvent:
Salin
DodoPayments.Initialize({ mode: "test", displayType: "overlay", onEvent: (event: CheckoutEvent) => { if (event.event_type === "checkout.error") { console.error("Checkout error:", event.data?.message); // Handle error appropriately // You may want to show a user-friendly error message // or retry the checkout process } if (event.event_type === "checkout.link_expired") { // Handle expired checkout session console.warn("Checkout session has expired"); } }});
Selalu tangani peristiwa checkout.error untuk memberikan pengalaman pengguna yang baik ketika kesalahan terjadi.
Pilih tipe checkout yang tepat untuk kasus penggunaan Anda:
Fitur
Overlay Checkout
Inline Checkout
Kedalaman integrasi
Modal di atas halaman
Sepenuhnya terintegrasi di halaman
Kontrol tata letak
Terbatas
Kontrol penuh
Branding
Terpisah dari halaman
Mulus
Usaha implementasi
Lebih rendah
Lebih tinggi
Terbaik untuk
Integrasi cepat, halaman yang ada
Halaman checkout kustom, alur konversi tinggi
Gunakan overlay checkout untuk integrasi yang lebih cepat dengan perubahan minimal pada halaman yang sudah ada. Gunakan inline checkout saat Anda ingin kontrol maksimal atas pengalaman checkout dan branding yang mulus.