الانتقال إلى المحتوى الرئيسي
ضمّن مسار التحقق من Didit مباشرةً داخل تطبيقك باستخدام iframe. يوفّر ذلك تجربة سلسة دون إعادة توجيه المستخدمين بعيداً عن موقعك.

نظرة عامة


أسرع طريقة للبدء: ما عليك سوى نسخ رابط UniLink الخاص بك ولصقه.

ما تحتاجه

  1. سير عمل في Didit (يُنشأ في Didit Console)
  2. رابط UniLink الخاص بك (انقر Copy Link في سير العمل الخاص بك)

التنفيذ

⚠️ مطلوب: سمة allow إلزامية للوصول إلى الكاميرا أثناء كشف الحيوية.

أبرز المزايا

  • إعداد في أقل من دقيقة: بدون خادم خلفي ولا مفاتيح API
  • دون أي إعدادات: يُضبط رابط الاستدعاء في إعدادات سير العمل
  • مثالي للنماذج الأولية (MVP): ابدأ فوراً

جلسة iframe عبر API (مع خادم خلفي)

للتكاملات المتقدمة التي تحتاج إلى تخصيص لكل جلسة.

متى تستخدمها

  • مرّر vendor_data أو metadata مخصصة لكل جلسة
  • اضبط روابط استدعاء مختلفة لكل جلسة
  • تتبّع الجلسات على الخادم قبل بدء التحقق
  • اربط الجلسات بمعرّفات المستخدمين لديك

التنفيذ

الخطوة 1: أنشئ جلسة (من الخادم الخلفي) تستخدم استجابة إنشاء الجلسة حقلاً اسمه url، استخدمه كقيمة src للـ iframe.
الخطوة 2: ضمّن الجلسة في iframe (الواجهة الأمامية)

الاستماع للأحداث (postMessage)

ترسل صفحة التحقق الأحداث إلى النافذة الأم. تحتوي كل رسالة على هذا الغلاف:
الحمولة متداخلة: اقرأ event.data.data.sessionId وليس event.data.sessionId:
أهم الأحداث: didit:ready ({ sessionId })، didit:started، didit:step_started / didit:step_completed / didit:step_changed ({ step, ... })، didit:status_updated ({ status })، didit:completed ({ sessionId, status })، didit:cancelled، didit:error ({ error, step? })، didit:close_request، وdidit:layout ({ contentHeight, colorScheme, dir }، انظر أدناه). تسرد مرجع أحداث SDK لـ JavaScript أحداث التحقق المتاحة كدوال رد نداء محددة النوع. ابتداءً من الإصدار 0.5.0، يتولى SDK رسائل التخطيط داخلياً ولا يمررها إلى onEvent.

تحديد حجم iframe من didit:layout

تُخبرك صفحة التحقق بالمساحة التي تحتاجها عبر رسالة didit:layout. ترسل رسالة عند التحميل وأخرى كلما تغيّر ارتفاع المحتوى أو السمة أو اتجاه النص:
لاستقبال didit:layout في iframe الخاص بك، أضف sdk_presentation=embedded إلى رابط التحقق الخاص به. ابتداءً من الإصدار 0.5.0، يضبط SDK لـ JavaScript هذا العرض تلقائياً. بدون معامل العرض، تستخدم الصفحة تخطيطها المستقل ولا ترسل رسائل التخطيط.
يتبع هذا المضيف الأحجام الموصى بها: بطاقة ثابتة من عرض 1024 بكسل، وملء الشاشة عند 540 بكسل وأقل، وبينهما iframe بعرض 500 بكسل يأخذ الارتفاع الذي تُبلغ عنه الصفحة:
بين 541 و1023 بكسل، يستخدم هذا المثال ارتفاع بداية قدره 700 بكسل إلى أن تصل رسالة التخطيط، مع حد أقصى 90% من ارتفاع النافذة المرئية. تُطبّق أحجام الحاسوب والهاتف فوراً. على الهواتف يغطي iframe النافذة، لذا وفّر طريقة للخروج من التحقق داخل المضيف. استخدم colorScheme وdir لمطابقة أي عناصر تحكم ترسمها حول iframe مع سمة الصفحة واتجاه نصها. إذا انقطع اتصال المستخدم، تعرض الصفحة شاشة “لا يوجد اتصال بالإنترنت” تُغلق نفسها تلقائياً عند عودة الاتصال. إذا اختار المستخدم Exit Verification هناك، ترسل الصفحة didit:error مع error: "network_error"، ثم didit:cancelled: أغلق iframe عند didit:cancelled.

تنفيذ النافذة المنبثقة

لتجربة نافذة منبثقة متقنة تُعرض فوق صفحتك:

HTML/CSS/JS


مكوّن React

مكوّن React قابل لإعادة الاستخدام للتحقق عبر نافذة منبثقة:

الاستخدام


مكوّن Vue


الإعدادات

الأذونات المطلوبة

استخدم قائمة الأذونات الكاملة هذه للالتقاط والموقع والنسخ وتوافق الوسائط:
تفوّض سمة allow الأذونات، لكنها لا تتجاوز اختيار المستخدم، ولا ترويسة Permissions-Policy الأكثر صرامة في صفحتك المضيفة.

حجم الإطار

تتكيّف عملية التحقق مع حجم إطارها. اضبط حجم الإطار وفق النافذة التي يظهر فيها: في النطاق المتوسط، ابدأ بحجم 500px × 700px إلى أن تصل أول رسالة didit:layout، مع الحد الأقصى للارتفاع نفسه. يطبّق مثال didit:layout الأحجام الثلاثة، بما فيها أحجام الحاسوب والهاتف قبل وصول أي رسالة.

سياسة أمان المحتوى (CSP)

إذا كنت تستخدم CSP، فأضف Didit إلى توجيه frame-src:

التحقق عبر الأجهزة

يدعم إطار InContext التحقق عبر الأجهزة تلقائياً:
  1. يبدأ المستخدم التحقق من الحاسوب
  2. إذا كانت الكاميرا غير متاحة، يُعرض رمز QR
  3. يمسح المستخدم رمز QR بهاتفه
  4. يكمل المستخدم التحقق على الهاتف
  5. يتحدّث إطار الحاسوب تلقائياً بالنتيجة
يحدث هذا تلقائياً، ولا يتطلب أي إعداد إضافي.

استكشاف الأخطاء وإصلاحها

الكاميرا لا تعمل

  1. تأكد من أن الإطار يتضمن قائمة الأذونات كاملة
  2. تحقق من أن موقعك يعمل عبر HTTPS
  3. تأكد من أن المستخدم منح أذونات الكاميرا لنطاقك
  4. جرّب طريقة إعادة التوجيه إذا فشل الوصول إلى الكاميرا داخل الإطار

الإطار لا يُحمَّل

  1. تحقق من مشكلات سياسة أمان المحتوى (CSP)
  2. أضف https://verify.didit.me إلى توجيه frame-src
  3. تحقق من أخطاء وحدة التحكم في المتصفح

لا تُستقبل رسالة postMessage

  1. تأكد من أنك تستمع إلى الأصل الصحيح (https://verify.didit.me، أو نطاقك ذي العلامة البيضاء)
  2. تحقق من إضافة مستمع الحدث قبل فتح الإطار
  3. تحقق من اسم الحدث وبنيته: الأنواع تبدأ ببادئة (didit:completed، وليس verification_complete)، وpayload متداخل ضمن event.data.data

مستودع الأمثلة

مستودع GitHub

اطلع على الكود المصدري والأمثلة على GitHub

آخر تعديل في ٧ نوفمبر ٢٠٢٦