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.
Jenis pengambilan ini menggunakan kemampuan Liveness. Untuk gambaran konseptual tentang cara kerja Liveness, lihat halaman kemampuan Liveness.
Plugin mendelegasikan ke SDK native yang mendasarinya:
- Plugin membuka kamera (Android atau iOS) dengan overlay SmartFrame.
- SDK native membimbing pengguna untuk memposisikan wajah mereka di dalam bingkai.
- Memvalidasi liveness — sesi hanya selesai ketika pengguna hadir secara fisik.
- Mengembalikan objek
ResultCameradenganbase64danencrypted(JWT) melalui platform channel.
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();
Nilai false/true untuk metode di atas tidak mengubah pengalaman pengambilan; nilai tersebut hanya digunakan untuk logika internal SDK.
Langkah 1 — Implementasikan UnicoListener
UnicoListener menangani callback siklus hidup SDK. Implementasikan empat metode wajib berikut:
| Metode | Kapan 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() {}
}
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:
| Metode | Deskripsi |
|---|---|
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 |
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,
);
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.