SDK mobile dan web

SDK native untuk iOS, Android, React Native dan Flutter menempatkan alur di dalam aplikasi Anda dan merupakan satu-satunya jalur yang mendukung NFC. SDK web menyematkan alur di frontend Anda.

Short answer

SDK native tersedia untuk iOS, Android, React Native dan Flutter; SDK web menyematkan alur di frontend Anda. Gunakan SDK native jika Anda membutuhkan NFC atau perilaku kamera terbaik - WebView tidak memberikan keduanya. Hasil tetap dikirim lewat webhook, bukan dari SDK.

#Kenapa memilih SDK dibanding redirect

Hosted redirect adalah yang paling sedikit membutuhkan usaha dan sebenarnya sudah cukup baik untuk sebagian besar alur. SDK layak dipakai ketika:

  • Anda membutuhkan NFC. Chip di dalam paspor atau ID tidak bisa dibaca dari halaman browser. SDK native adalah satu-satunya jalur. Lihat verifikasi chip NFC.
  • Anda tidak ingin pengguna keluar dari aplikasi Anda. Redirect keluar lalu kembali adalah titik drop-off yang nyata di mobile.
  • Anda menginginkan perilaku kamera terbaik. Akses kamera native lebih andal dibanding browser, terutama di perangkat yang lebih lama.

#Apa saja yang tersedia

PlatformCatatan
iOSDidistribusikan sebagai XCFramework
AndroidDidistribusikan lewat Maven
React NativeMembungkus modul native; mendukung New Architecture
FlutterMembungkus modul native
JavaScript / webMenyematkan alur hosted di frontend web Anda
In-context iframeMenampilkan alur di dalam halaman Anda alih-alih redirect
The Integrate page in the Didit console with the SDK and documentation links
  1. Pilih platform Anda dan halaman akan memberikan snippet untuk stack tersebut.
  2. SDK native dan web, masing-masing dengan quickstart-nya sendiri, terhubung di sini.
Every SDK starts from the same page as the API.

Persyaratan versi dan minimum platform berubah seiring rilis, jadi periksa dokumentasi SDK yang terbaru alih-alih cuplikan dari halaman bantuan ini - dan jika Anda menggunakan versi framework tertentu (misalnya versi Expo SDK tertentu), konfirmasikan kompatibilitasnya dengan kontak Didit Anda sebelum menetapkannya dalam sebuah sprint.

#WebView bukan SDK native

Membungkus alur web hosted di dalam WebView terlihat seperti memberi Anda pengalaman di dalam aplikasi. Namun sebenarnya itu hanya memberi Anda tampilannya saja:

  • Tidak ada NFC. Chip tetap tidak bisa dibaca.
  • Izin kamera lebih rumit. Akses kamera WebView bergantung pada konfigurasi aplikasi host, dan jika salah konfigurasi akan menghasilkan laporan "kamera tidak pernah terbuka" persis seperti yang dibahas di mengatasi masalah liveness dan face match.
  • Locale mengikuti aplikasi, bukan pengguna. WebView melaporkan locale aplikasi host, jadi sertakan language secara eksplisit saat membuat sesi. Lihat mengatur bahasa verifikasi.

Jika Anda sudah repot-repot membangun alur di dalam aplikasi, gunakan SDK native.

#Hasil tetap datang dari webhook

Ini yang sering membuat orang tertipu: SDK memberi tahu aplikasi Anda bahwa pengguna telah menyelesaikan alur. Itu bukan sumber otoritatif dari keputusan verifikasi.

Keputusan dihasilkan di sisi server setelah pemeriksaan selesai dijalankan, dan sampai ke Anda lewat webhook. Jangan pernah memberikan akses hanya berdasarkan callback penyelesaian dari SDK - sinyal di sisi klien sangat mudah dipalsukan, dan pemeriksaannya bahkan mungkin belum selesai saat callback tersebut terpicu.

Important

Menganggap "SDK bilang selesai" sama dengan "pengguna sudah terverifikasi" adalah kesalahan paling fatal yang bisa terjadi dalam integrasi mobile. Konfirmasikan di server Anda, dari webhook atau endpoint keputusan, sebelum Anda membuka akses apa pun.

#Satu aplikasi konsumen, atau aplikasi Anda sendiri?

Tidak ada aplikasi konsumen Didit terpisah yang menerima limpahan sesi hosted untuk langkah seperti NFC. Jika Anda ingin semuanya - NFC dan non-NFC - berada di dalam satu pengalaman aplikasi, aplikasi itu adalah milik Anda sendiri, dengan SDK yang disematkan di dalamnya.

#Distribusi dan konflik dependency

Integrasi SDK native terkadang berbenturan dengan dependency lain di aplikasi host - library transitif yang sama, atau subspec yang mengunci versi yang juga dikunci oleh komponen lain. Jika Anda mengalami ini, itu adalah masalah konkret dan bisa direproduksi yang sebaiknya dilaporkan beserta manifest dependency Anda alih-alih diakali dengan mengunci versi lama: perbaikannya biasanya harus ada di SDK.

#Menguji di perangkat

Sandbox bekerja sama seperti di tempat lain lewat SDK - arahkan aplikasi ke API key sebuah aplikasi sandbox dan setiap pemeriksaan disimulasikan dan tidak ditagih. Itulah cara yang tepat untuk berlatih alur mobile, karena perilaku SDK yang paling perlu Anda uji (prompt izin, siklus hidup kamera, aplikasi masuk ke background saat capture) adalah perilaku perangkat yang tidak membebani Anda sama sekali untuk diuji berulang kali. Lihat menguji di sandbox.