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

التحقق من الحضور الحي (السيلفي البيومترية)

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

القدرة

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

كيف يعمل

يدير SDK جلسة الالتقاط الكاملة:

  1. يفتح الكاميرا مع تراكب SmartFrame.
  2. يرشد المستخدم لوضع وجهه داخل الإطار.
  3. يتحقق من الحضور الحي — لا تكتمل الجلسة إلا عندما يكون المستخدم حاضرًا فعليًا.
  4. يعيد كائنًا يحتوي على base64 (معاينة) وencrypted (JWT لاستخدامه مع API) عبر معاودة الاتصال success.
وضع الكاميرا (ذكي أو عادي)

يتيح Web وضعَي كاميرا عبر SelfieCameraTypes:

  • SelfieCameraTypes.NORMAL — وضع الكاميرا القياسي (التقاط يدوي).
  • SelfieCameraTypes.SMART — وضع الكاميرا الذكي مع التقاط تلقائي وإرشاد بالصورة الظلية.

عند استخدام SMART، يجب أيضًا تحميل نماذج الرؤية الحاسوبية عبر setModelsPath أثناء التهيئة.

بدء التقاط الحضور الحي
الخطوة 1 — تنفيذ كائن callback

يستخدم Web SDK كائن callback — يُمرَّر إلى open() — للتعامل مع أحداث النجاح والأخطاء. كلا المعالجَين إلزاميان:

المعالجمتى يُستدعى
on.success(obj)اكتمل الالتقاط بنجاح — يستقبل كائنًا يحتوي على base64 وencrypted
on.error(error)حدث خطأ أثناء الجلسة — يستقبل كائن ErrorBio
const callback = {
on: {
success: (obj) => {
console.log(obj.base64);
console.log(obj.encrypted);
},
error: (error) => {
console.error(error);
}
}
};
كائن callback إلزامي

كائن callback إلزامي. إذا لم يُنفَّذ بشكل صحيح (بحيث يغطي كلًّا من حدثَي success وerror)، فإن SDK يُطلق استثناءً يُعرض في وحدة تحكم المستخدم إذا لم يُعالَج.

الخطوة 2 — بناء الكاميرا وتجهيز جلسة السيلفي

ابنِ نسخة الكاميرا واستدعِ prepareSelfieCamera مع تمرير UnicoConfig ونوع SelfieCameraTypes المطلوب:

انتهاء صلاحية الرمز

يجب ألا تتجاوز الفترة الفاصلة بين إنشاء encrypted وإرساله إلى API 10 دقائق.

const unicoCamera = unicoCameraBuilder.build();

const config = new UnicoConfig()
.setHostname("<YOUR_HOSTNAME>")
.setHostKey("<YOUR_HOST_KEY>");

unicoCamera.prepareSelfieCamera(
config,
SelfieCameraTypes.SMART
).then(cameraOpener => {
cameraOpener.open(callback);
}).catch(error => {
console.error(error);
});
نصيحة

لتحسين بدء تشغيل الكاميرا، يمكنك فصل استدعاءات prepareSelfieCamera() وopen() — إبقاء خطوة التجهيز جاهزة بينما يتنقل المستخدم إلى شاشة الالتقاط.

الخطوة 3 — (اختياري) الاستخدام داخل iFrame

يدعم Web SDK التحقق التفاعلي من الحضور الحي المضمّن في iFrame عبر prepareSelfieCameraForIFrame():

unicoCamera.prepareSelfieCameraForIFrame(
config,
SelfieCameraTypes.SMART
).then(cameraOpener => {
cameraOpener.open(callback);
}).catch(error => {
console.error(error);
});

نفّذ عنصر <iframe> مع الأذونات المطلوبة:

<iframe allow="fullscreen;camera;geolocation" allowFullScreen src="your_app_url"></iframe>
يجب أن تتطابق الطريقة مع السياق

prepareSelfieCameraForIFrame() لا تعمل إلا داخل iFrame — استخدامها خارجه يُفضي إلى الخطأ 73724. وبالمثل، استخدام prepareSelfieCamera() داخل iFrame يُفضي أيضًا إلى الخطأ 73724.

وضع ملء الشاشة على iPhone

لإجراء الالتقاط، يجب أن تكون الصفحة في وضع ملء الشاشة حتى يتمكن SDK من تغيير الحجم تلقائيًا. تُقيّد Apple استخدام واجهات برمجة تطبيقات ملء الشاشة على أجهزة iPhone تحديدًا (يمكن استخدامها على iPad). للالتقاط على أجهزة iPhone، هيّئ موضع iFrame يدويًا.

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