Lewati ke konten utama

Liveness (selfie biometrik)

Pengambilan selfie biometrik dengan verifikasi liveness yang terintegrasi. SDK membimbing pengguna hingga mendapatkan frame yang valid secara biometrik melalui SmartFrames dan mengembalikan gambar sebagai Base64 + JWT.

Capability

Jenis pengambilan ini menggunakan kemampuan Liveness. Untuk gambaran konseptual tentang cara kerja Liveness, lihat halaman kemampuan Liveness.

Cara kerjanya

Plugin mendelegasikan ke SDK native yang mendasarinya:

  1. Plugin membuka kamera (Android atau iOS) dengan overlay SmartFrame.
  2. SDK native membimbing pengguna untuk memposisikan wajah mereka di dalam bingkai.
  3. Memvalidasi liveness — sesi hanya selesai ketika pengguna hadir secara fisik.
  4. Mengembalikan objek ResultCamera dengan base64 dan encrypted (JWT) melalui platform channel.
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 pengambilan liveness
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 selfie pada UnicoSelfie

Tambahkan callback selfie ke kelas state Anda:

MetodeDeskripsi
onSuccessSelfie(ResultCamera result)Pengambilan berhasil — mengembalikan ResultCamera dengan base64 (pratinjau) dan encrypted (JWT untuk API)
onErrorSelfie(UnicoError error)Pengambilan gagal — mengembalikan UnicoError dengan kode dan deskripsi
Kedaluwarsa token

Interval antara pembuatan encrypted dan pengirimannya ke API tidak boleh melebihi 10 menit.

@override
void onSuccessSelfie(ResultCamera result) { }

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

Metode openCameraSelfie membuka kamera. Metode ini menerima implementasi listener UnicoSelfie dan file JSON berisi kredensial yang dihasilkan pada langkah sebelumnya:

_opener.openCameraSelfie(
jsonFileName: androidJsonFileName,
listener: this,
);
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(
jsonFileName: androidJsonFileName,
listener: this,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);

Untuk penanganan hasil lengkap, lihat Menerima hasil.