الانتقال إلى المحتوى الرئيسي

التحقق من الحيوية (صورة شخصية بيومترية)

التقاط صورة شخصية بيومترية مع التحقق المدمج من الحيوية. يرشد SDK المستخدم حتى يتم الحصول على إطار صالح بيومترياً عبر SmartFrames ويُعيد الصورة بصيغة Base64 وJWT.

القدرة

يستخدم هذا النوع من الالتقاط قدرة التحقق من الحيوية. للاطلاع على نظرة عامة مفاهيمية حول كيفية عمل التحقق من الحيوية، راجع صفحة قدرة التحقق من الحيوية.

How it works

يُفوِّض المكوِّن الإضافي إلى SDKs الأصلية الأساسية:

  1. يفتح المكوِّن الإضافي الكاميرا (Android أو iOS) مع تراكب SmartFrame.
  2. يرشد SDK الأصلي المستخدم لوضع وجهه داخل الإطار.
  3. يتحقق من الحيوية — تكتمل الجلسة فقط عندما يكون المستخدم حاضراً فعلياً.
  4. يُعيد كائن ResultCamera مع base64 وencrypted (JWT) عبر قناة المنصة.
Camera mode (smart capture)

يمتلك SDK الإطارة الذكية والالتقاط التلقائي مفعَّلَين بشكل افتراضي. قم بتهيئة وضع الكاميرا في المنشئ الخاص بك على النحو التالي:

UnicoCheckCameraOpener _opener = _unicoCheck
.setAutoCapture(autoCapture: true)
.setSmartFrame(smartFrame: true)
.build();
Starting a liveness capture
الخطوة 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);
Monitoring data collection

يوفر أسلوب openCameraSelfie تحميلاً زائداً يقبل بيانات وصفية عبر UnicoCheckPrepareInfo للمساعدة في تحديد جلسة المستخدم والتدفق:

  • externalUserId (String، مطلوب) — معرِّف المستخدم في نظامك. يُجزَّأ تلقائياً باستخدام SHA-256 قبل الإرسال.
  • useCase (String، اختياري) — معرِّف للسياق أو التدفق الجاري تشغيله حالياً. يُرسَل بنص عادي.
_opener.openCameraSelfie(
listener: this,
prepareInfo: UnicoCheckPrepareInfo(
externalUserId: 'external_user_id',
useCase: 'use_case', // optional
),
);

للاطلاع على المعالجة الكاملة للنتيجة، راجع استقبال النتيجة.