Repositori GitHub
Lihat kode sumber dan contoh di GitHub
Paket npm
@didit-protocol/sdk-react-native
SDK Native: Ini adalah pendekatan yang direkomendasikan untuk aplikasi React Native dan Expo. SDK ini membungkus SDK native iOS dan Android untuk pengalaman pengguna terbaik, penanganan kamera yang dioptimalkan, dan dukungan NFC penuh.
Persyaratan
Persyaratan Platform
Persetujuan biometrik memerlukan native 4.10.0 atau yang lebih baru. Untuk orang yang tunduk pada hukum Illinois, Texas, atau Colorado, Didit dapat meminta persetujuan biometrik secara eksplisit sebelum pengambilan wajah pertama. Rilis React Native SDK yang mematok native iOS dan Android 4.10.0 atau yang lebih baru menampilkan langkah tersebut. Versi sebelumnya tidak dapat menampilkan langkah ini: sesinya tetap berjalan seperti sebelumnya, dan keputusan melaporkan persetujuan sebagai belum dikumpulkan (
biometric_consent.reason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"). Perbarui jika Anda memverifikasi orang di negara bagian tersebut.Instalasi
Expo (Direkomendasikan)
app.json (atau app.config.js) Anda. NFC diaktifkan secara default:
- Android: Menambahkan repositori Maven Didit ke Gradle, mengatur properti Gradle
diditSdkAndroidNfcEnabled, dan menerapkan aturan dependensi dan pengemasan BouncyCastle - iOS: Menambahkan podspec DiditSDK ke Podfile (dipatok ke iOS 15 saat NFC diaktifkan)
Info.plist. Tambahkan kunci izin iOS dan, untuk NFC, identifier pemilihan ISO7816 di bawah ios.infoPlist dalam file yang sama. D392F000260100000001 memungkinkan SDK membaca Kartu My Number Jepang melalui JPKI:
Menonaktifkan dependensi NFC
Untuk membangun tanpa dukungan NFC (biner lebih kecil, tidak memerlukan kapabilitas NFC), berikan opsi plugin:React Native CLI
Pengaturan iOS
Tambahkan pod DiditSDK kePodfile Anda (pod ini tidak ada di CocoaPods trunk). Blok di bawah ini menghormati variabel lingkungan DIDIT_SDK_IOS_NFC_ENABLED sehingga Anda dapat beralih ke subspec tanpa NFC (DiditSDK/Core) saat instalasi:
Pengaturan Android
Tambahkan repositori Maven Didit kesettings.gradle tingkat proyek Anda:
android/app/build.gradle Anda (di dalam blok android { ... }) untuk mengatasi konflik class duplikat BouncyCastle dan duplikat MANIFEST.MF OSGI yang dapat dipicu oleh dependensi transitif DiditSDK:
me.didit:didit-sdk-core alih-alih me.didit:didit-sdk), tambahkan ini ke android/gradle.properties:
true, untuk menggunakan SDK Android lengkap dengan NFC.
Izin
iOS
Tambahkan kunci berikut keInfo.plist aplikasi Anda. Kunci privasi iOS yang wajib tetapi tidak ada akan menyebabkan iOS menghentikan aplikasi begitu SDK mengakses sumber daya yang dilindungi tersebut.
Konfigurasi NFC
Untuk mengaktifkan pembacaan NFC pada paspor dan kartu identitas yang memiliki chip:-
Tambahkan kapabilitas NFC di Xcode:
- Pilih target Anda > Signing & Capabilities > + Capability > Near Field Communication Tag Reading
-
Tambahkan pengidentifikasi ISO7816 ke
Info.plist:
D392F000260100000001 memungkinkan SDK membaca My Number Card Jepang melalui JPKI: tanpa pengidentifikasi ini, iOS tidak melaporkan kartu tersebut ke SDK. Pembacaan My Number Card belum diaktifkan di produksi, dan pengidentifikasi ini tidak berpengaruh pada dokumen lain, sehingga Anda dapat menambahkannya sekarang.
- Tambahkan file entitlements dengan pembacaan NFC tag diaktifkan:
Android
Izin berikut dideklarasikan diAndroidManifest.xml SDK dan digabungkan secara otomatis:
Fitur perangkat keras kamera dan NFC dideklarasikan sebagai opsional (
android:required="false"), sehingga aplikasi Anda dapat diinstal di perangkat yang tidak memiliki fitur tersebut.
Mulai Cepat
Metode Integrasi
SDK mendukung dua metode integrasi:Metode 1: Token Sesi (Direkomendasikan untuk Produksi)
Buat sesi di backend Anda menggunakan Create Verification Session API, lalu teruskan token ke SDK:- Mengaitkan sesi dengan pengguna Anda (
vendor_data) - Mengatur metadata kustom
- Mengonfigurasi callback per sesi
Metode 2: ID Alur Kerja (Integrasi Lebih Sederhana)
Untuk integrasi yang lebih sederhana, SDK dapat membuat sesi secara langsung menggunakan ID alur kerja Anda:Konfigurasi
Sesuaikan perilaku SDK dengan meneruskan objekDiditConfig:
startVerificationWithWorkflow, teruskan konfigurasi di dalam options.config:
Opsi Konfigurasi
Opsi kamera
Opsi kamera sama dengan opsi kamera Web SDK. Setiap lensa adalahCameraLens.Front atau CameraLens.Back.
Jika perangkat tidak memiliki lensa yang diminta, SDK menggunakan kamera pertama yang tersedia.
Pengalih kamera juga disembunyikan pada perangkat yang hanya memiliki satu kamera.
Atur opsi pengalih ke false untuk mengunci pengguna pada lensa default langkah tersebut.
Tema & Warna: Warna, latar belakang, dan pengaturan layar pembuka dikonfigurasi melalui pengaturan White Label Anda di Didit Console, bukan di konfigurasi SDK. Hal ini memastikan pencitraan merek yang konsisten di semua platform.
Dukungan Bahasa
SDK mendukung 54 bahasa. Jika tidak ada bahasa yang ditentukan, SDK menggunakan locale perangkat dengan bahasa Inggris sebagai cadangan.Opsi Lanjutan
Opsi ini hanya tersedia denganstartVerificationWithWorkflow, saat SDK membuat sesi atas nama Anda.
Detail Kontak (Pengisian Otomatis & Notifikasi)
Berikan detail kontak untuk mengisi otomatis formulir verifikasi dan mengaktifkan notifikasi email:Detail yang Diharapkan (Validasi Silang)
Berikan detail pengguna yang diharapkan untuk validasi silang otomatis dengan data dokumen yang diekstrak:ExpectedDetails bersifat opsional. Lihat src/types.ts untuk tipe lengkapnya.
Metadata Kustom
Simpan metadata JSON kustom bersama sesi (tidak ditampilkan kepada pengguna):Penanganan Hasil
BaikstartVerification maupun startVerificationWithWorkflow mengembalikan Promise<VerificationResult>. Hasilnya berupa union terdiskriminasi, sehingga Anda menggunakan kolom type untuk menentukan hasilnya.
Kasus Hasil
Properti SessionData
Tipe Error
Koneksi terputus
Jika perangkat kehilangan koneksi selama verifikasi, SDK menutupi alur dengan layar “No internet connection”, alih-alih membiarkan langkah tetap dalam keadaan memuat. SDK terus memeriksa di latar belakang dan menutup layar itu dengan sendirinya begitu Didit dapat dijangkau kembali, dan pengguna melanjutkan dari langkah tempat ia berada. Layar ini menampilkan Try Again dan, jikashowCloseButton bernilai true (bawaan), Exit Verification.
Jika pengguna keluar, verifikasi berakhir dengan hasil failed dengan error networkError, sehingga aplikasi Anda tahu bahwa pengguna keluar karena masalah koneksi.
Contoh Lengkap Penanganan Hasil
Contoh End-to-End (Sesi Backend → React Native SDK → Webhook)
Ini adalah integrasi siap produksi: backend Anda membuat sesi, aplikasi RN Anda menerimasession_token, lalu SDK menjalankan alurnya. Keputusan akhir dikirim ke backend Anda melalui webhook, jadi jangan pernah hanya mengandalkan hasil di sisi klien.