Skip to main content
Ini adalah checkout SDK React Native resmi dari Dodo Payments, @dodopayments/react-native-checkout. SDK ini membuka hosted checkout Dodo di tampilan browser native dan mengembalikan hasil bertipe. Catatan: terdapat package lama yang tidak terkait bernama dodopayments-react-native-sdk (unscoped) dengan API yang sepenuhnya berbeda. Halaman ini hanya mendokumentasikan package scoped resmi yang saat ini digunakan.

Checkout Sessions API

Buat checkout_url yang dibuka SDK ini, dari backend Anda.

Mobile Integration Guide

Lihat bagaimana hal ini menjadi bagian dari alur pembayaran mobile secara keseluruhan.
React Native SDK ini adalah wrapper Turbo Module tipis di atas core Swift dan Kotlin native yang sama. SDK ini membuka SFSafariViewController di iOS dan Chrome Custom Tab di Android, tidak menyimpan API key, serta tidak pernah memanggil Dodo API secara langsung. Semua logika checkout berjalan di browser; SDK hanya mengelola siklus hidup tampilan dan menangkap return URL.
SDK ini hanya memerlukan New Architecture, React Native 0.76+, iOS 16+, dan Android minSdk 24.

Instalasi

1

Install the Package

Package ini ditautkan secara otomatis dan menarik com.dodopayments.api:checkout-android dari Maven.
Tidak diperlukan konfigurasi tambahan; dependency native diselesaikan secara otomatis.
2

Register a Callback URL Scheme

Aplikasi Anda harus mendaftarkan URL scheme untuk menerima return URL dari checkout.
Di android/app/build.gradle:
android/app/build.gradle
Ganti "myapp" dengan scheme aplikasi Anda.

Penggunaan

Meneruskan Return URL

Listener Linking diperlukan untuk penanganan return URL di iOS. Di Android, handleOpenURL tidak melakukan apa pun dan menyelesaikan false karena core Android menangani redirect-nya secara native. Listener ini aman untuk didaftarkan tanpa syarat di kedua platform.

Arti Hasil

result.status adalah petunjuk UI, bukan bukti pembayaran. Konfirmasikan setiap pembayaran dari backend Anda melalui webhook payment.succeeded / subscription.active.
CheckoutStatus
wajib
Salah satu dari succeeded, failed, cancelled, pending, expired.
string
Diatur ketika return URL menyertakan salah satunya. Tampilkan di UI, tetapi jangan gunakan untuk memberikan akses. Lihat Verifikasi Pembayaran di bawah.
string
Diatur untuk subscription checkout.
string[]
Diatur ketika checkout menyertakan produk license key.
string
Diatur ketika checkout mengambil email.
Record<string, string>
Setiap query parameter dari return URL, secara verbatim.

Verifikasi Pembayaran

Webhooks

Dodo Payments memanggil backend Anda ketika pembayaran berhasil atau subscription diaktifkan.

Get Payment Detail

Cari paymentId menggunakan secret key Anda untuk memeriksa statusnya secara langsung.
Berikan akses setelah salah satu metode ini mengonfirmasi pembayaran, jangan pernah hanya berdasarkan result.status.

Error

start menolak dengan CheckoutError hanya jika terjadi penyalahgunaan atau kegagalan platform. Pembayaran yang dibatalkan atau ditolak selalu berupa hasil, bukan exception.
  • INVALID_CHECKOUT_URL: bukan session URL checkout.dodopayments.com.
  • INVALID_RETURN_URL: bukan absolute URL yang valid.
  • ALREADY_IN_PROGRESS: checkout sedang berjalan.
  • PLATFORM_ERROR: kegagalan platform yang tidak terduga.

Session yang Ditinggalkan

Jika aplikasi atau JS bundle dihentikan di tengah checkout, promise akan hilang tetapi layer native tetap mempertahankan session. Pulihkan pada mount berikutnya dan rekonsiliasikan dengan backend Anda.

Terkait

Mobile Integration Guide

Contract yang sama untuk Android, iOS, dan Flutter.

Expo Boilerplate

Contoh Expo lengkap dengan integrasi checkout.
Terakhir diubah pada 31 Juli 2026