التحقق من الحيوية (صورة شخصية بيومترية)
التقاط صورة شخصية بيومترية مع التحقق المدمج من الحيوية. يرشد SDK المستخدم حتى يتم الحصول على إطار صالح بيومترياً عبر SmartFrames ويُعيد الصورة بصيغة Base64 وJWT.
يستخدم هذا النوع من الا لتقاط قدرة التحقق من الحيوية. للاطلاع على نظرة عامة مفاهيمية حول كيفية عمل التحقق من الحيوية، راجع صفحة قدرة التحقق من الحيوية.
يُفوِّض المكوِّن الإضافي إلى SDKs الأصلية الأساسية:
- يفتح المكوِّن الإضافي الكاميرا (Android أو iOS) مع تراكب SmartFrame.
- يرشد SDK الأصلي المستخدم لوضع وجهه داخل الإطار.
- يتحقق من الحيوية — تكتمل الجلسة فقط عندما يكون المستخدم حاضراً فعلياً.
- يُعيد كائن
ResultCameraمعbase64وencrypted(JWT) عبر قناة المنصة.
يمتلك SDK الإطارة الذكية والالتقاط التلقائي مفعَّلَين بشكل افتراضي. قم بتهيئة وضع الكاميرا في المنشئ الخاص بك على النحو التالي:
UnicoCheckCameraOpener _opener = _unicoCheck
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();
الخطوة 1 — تنفيذ UnicoListener
يتولى UnicoListener معالجة استدعاءات دورة حياة SDK. نفِّذ الأساليب الأربعة الإلزامية:
| الأسلوب | متى يُستدعى |
|---|---|
onErrorUnico(error) | حدث خطأ أثناء تشغيل SDK |
onUserClosedCameraManually() | أغلق المستخدم الكاميرا يدوياً |
onSystemClosedCameraTimeoutSession() | تم الوصول إلى حد الجلسة البالغ 40 ثانية |
onSystemChangedTypeCameraTimeoutFaceInference() | لم يُكتشف أي وجه لمدة 13 ثانية — ينتقل إلى الالتقاط اليدوي |
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;
@override
void onErrorUnico(UnicoError error) {}
@override
void onUserClosedCameraManually() {}
@override
void onSystemClosedCameraTimeoutSession() {}
@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
}
يجب إنشاء جميع أساليب المستمع الأربعة أعلاه في مشروعك (حتى بدون أي منطق). وإلا، لن يتم تجميع المشروع بنجاح.
الخطوة 2 — تنفيذ مستمعات الصورة الشخصية على UnicoSelfie
أضف استدعاءات الصورة الشخصية إلى فئة الحالة الخاصة بك:
| الأسلوب | الوصف |
|---|---|
onSuccessSelfie(ResultCamera result) | نجح الالتقاط — يُعيد ResultCamera مع base64 (معاينة) وencrypted (JWT لواجهة برمجة التطبيقات) |
onErrorSelfie(UnicoError error) | فشل الالتقاط — يُعيد UnicoError مع الرمز والوصف |
يجب ألا تتجاوز الفترة الزمنية بين إنشاء encrypted وإرساله إلى واجهة برمجة التطبيقات 10 دقائق.
@override
void onSuccessSelfie(ResultCamera result) { }
@override
void onErrorSelfie(UnicoError error) { }
الخطوة 3 — استدعاء openCameraSelfie
يفتح أسلوب openCameraSelfie الكاميرا. يأخذ تنفيذ مستمع UnicoSelfie:
_opener.openCameraSelfie(listener: this);
يوفر أسلوب openCameraSelfie تحميلاً زائداً يقبل بيانات وصفية عبر UnicoCheckPrepareInfo للمساعدة في تحديد جلسة المستخدم والتدفق:
externalUserId(String، مطلوب) — معرِّف المستخدم في نظامك. يُجزَّأ تلقائياً باستخدام SHA-256 قبل الإرسال.useCase(String، اختياري) — معرِّف للسياق أو التدفق الجاري تشغيله حالياً. يُرسَل بنص عادي.
_opener.openCameraSelfie(
listener: this,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);
للاطلاع على المعالجة الكاملة للنتيجة، راجع استقبال النتيجة.