Lewati ke konten utama

User Journeys

User Journeys adalah sesi pengambilan multi-langkah yang diorkestrasikan oleh SDK bersama dengan alur yang dikonfigurasi. Misalnya, alur idchecktrustdocssign menjalankan selfie + dokumen + tanda tangan dalam satu sesi.

Kasus penggunaan

Journey yang tersedia bergantung pada alur yang dikonfigurasi untuk integrasi Anda. Lihat Kasus Penggunaan untuk pemetaan lengkap kasus penggunaan → alur → kemampuan.

Cara kerjanya

Plugin mendelegasikan ke SDK native yang mendasarinya:

  1. Plugin membuka kamera (Android atau iOS) dengan overlay SmartFrame.
  2. SDK native mengorkestrasikan urutan pengambilan yang diperlukan untuk alur tersebut (selfie, dokumen, tanda tangan).
  3. SDK secara internal meneruskan hasil ke Unico — klien tidak pernah menerima atau mengelola data gambar secara langsung.
  4. Mengembalikan objek SuccessResult dengan processId melalui platform channel.

Orkestrasi ditangani sepenuhnya oleh SDK — Anda tidak perlu mengimplementasikan urutan langkah dalam kode Dart Anda.

Mode kamera (smart capture)

SDK memiliki framing cerdas dan pengambilan otomatis yang diaktifkan secara default. Konfigurasikan mode kamera di builder Anda sebagai berikut:

UnicoCheckCameraOpener _opener = new UnicoCheck(this)
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();
tips

Nilai false/true untuk metode di atas tidak mengubah pengalaman pengambilan; nilai tersebut hanya digunakan untuk logika internal SDK.

Memulai User Journey
Langkah 1 — Implementasikan UnicoListener

UnicoListener menangani callback siklus hidup SDK. Implementasikan empat metode wajib berikut:

MetodeKapan dipanggil
onErrorUnico(error)Terjadi kesalahan selama operasi SDK
onUserClosedCameraManually()Pengguna menutup kamera secara manual
onSystemClosedCameraTimeoutSession()Batas waktu sesi 40 detik telah tercapai
onSystemChangedTypeCameraTimeoutFaceInference()Tidak ada wajah terdeteksi selama 13 detik — beralih ke pengambilan manual
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;

@override
void onErrorUnico(UnicoError error) {}

@override
void onUserClosedCameraManually() {}

@override
void onSystemClosedCameraTimeoutSession() {}

@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
Metode listener wajib

Keempat metode listener di atas harus dibuat di proyek Anda (meskipun tanpa logika apa pun). Jika tidak, proyek tidak akan berhasil dikompilasi.

Langkah 2 — Implementasikan listener journey pada UnicoSelfie

Tambahkan callback journey ke kelas state Anda:

MetodeDeskripsi
onSuccess(SuccessResult result)Pengambilan berhasil — mengembalikan SuccessResult dengan processId (Unico memproses gambar secara internal)
onErrorSelfie(UnicoError error)Pengambilan gagal — mengembalikan UnicoError dengan kode dan deskripsi
Tidak ada data gambar

Berbeda dengan alur Liveness, callback User Journey tidak mengembalikan base64 atau encrypted. Unico menangani pemrosesan gambar secara internal dan hanya mengembalikan processId.

@override
void onSuccess(SuccessResult result) {
debugPrint('processId: ${result.processId}');
}

@override
void onErrorSelfie(UnicoError error) { }
Langkah 3 — Panggil openCameraSelfie

Metode openCameraSelfie membuka kamera. Untuk User Journeys, berikan webAppToken yang disediakan oleh Unico sebagai pengganti file JSON kredensial:

_opener.openCameraSelfie(
listener: this,
webAppToken: token,
);
Pengumpulan data pemantauan

Metode openCameraSelfie menyediakan overload yang menerima metadata melalui UnicoCheckPrepareInfo untuk membantu mengidentifikasi sesi pengguna dan alurnya:

  • externalUserId (String, wajib) — Pengenal pengguna dalam sistem Anda. Secara otomatis di-hash menggunakan SHA-256 sebelum dikirimkan.
  • useCase (String, opsional) — Pengenal untuk konteks atau alur yang sedang berjalan. Dikirimkan dalam teks biasa.
_opener.openCameraSelfie(
listener: this,
webAppToken: token,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);

Untuk penanganan hasil lengkap, lihat Menerima hasil.