الانتقال إلى المحتوى الرئيسي
يوفر Didit JavaScript SDK طريقة برمجية لدمج التحقق من الهوية في تطبيق الويب لديك، مع تحكم كامل في تجربة المستخدم.

الميزات

  • واجهة برمجية بسيطة - نمط Singleton مع دوال سهلة الاستخدام
  • تكامل مرن - استخدم رابط UniLink مباشرةً أو أنشئ الجلسات عبر الخادم الخلفي
  • متجاوب - يعمل على متصفحات أجهزة سطح المكتب والأجهزة المحمولة
  • قابل للتخصيص - خيارات إعداد للتنسيق والسلوك
  • صيغ متعددة - بناءات ESM وCommonJS وUMD
  • دعم TypeScript - تعريفات الأنواع الكاملة مضمّنة
  • الوضعان المنبثق والمضمَّن - اختر بين طبقة نافذة منبثقة أو تضمين داخل الصفحة
  • استدعاءات الأحداث - أحداث فورية لتقدم التحقق (بدء التحقق، اكتمال الخطوة، انتهاء التحقق)
  • إدارة الحالة - راقب حالة SDK لبناء واجهة مخصصة

التثبيت

NPM/Yarn

CDN (UMD)

أحدث إصدار منشور على npm هو 0.5.1. أضاف 0.5.0 الدالة DiditSdk.shared.submitEvent() (راجع إرسال الأحداث)، ويتيح 0.5.1 للتدفق المستضاف طلب الهوية الرقمية من محفظة الهوية الرقمية داخل SDK، ويُبقي عملية التشغيل الفاشلة في الحالة error مع errorMessage الخاصة بها. أضاف 0.4.0 خيارات الكاميرا التي تقدمها SDKs الأصلية أصلاً، بما فيها defaultLivenessCamera التي تفتح التقاط الوجه على الكاميرا الخلفية (راجع خيارات الكاميرا).

التحقق من الإصدار المثبّت

يبقى مدير الحزم لديك المرجع الأساسي لمعرفة الإصدار المثبّت:
يمكنك أيضاً فحص التصدير وقت التشغيل:
ابتداءً من الإصدار 0.3.1، يُولَّد هذا التصدير من إصدار الحزمة في كل صيغ JavaScript (ESM وCommonJS وUMD وUMD المصغّر) وفي ملف تعريف TypeScript، لذلك يتطابق دائماً مع الإصدار المثبّت. الإصدار 0.3.0 والإصدارات الأقدم تُبلغ عن 0.2.1 من هذا التصدير بغض النظر عن الإصدار المثبّت فعلياً. في هذه الإصدارات، استخدم npm list أو ملف القفل (lockfile) الخاص بك بدلاً من ذلك.

JavaScript العادي

ES Modules / TypeScript

وسم Script (UMD)


أمثلة الأطر البرمجية

أمثلة SDK للويب

React وAngular وSvelte وNext.js وNuxt وVue وغيرها، مع أمثلة ووثائق لكل إطار عمل.

طرق التكامل

هناك طريقتان لدمج SDK: استخدم رابط UniLink الخاص بسير العمل مباشرةً من Didit Console. لا يتطلب خادماً خلفياً.
احصل على رابط UniLink الخاص بك من Didit Console ← سير العمل الخاص بك ← نسخ الرابط. سيُرسَل إليك معرّف الجلسة session_id المُولَّد عبر حدث. راجع مرجع الأحداث هنا

الطريقة 2: جلسة من الخادم الخلفي (موصى بها للإنتاج)

ينشئ الخادم الخلفي جلسة عبر واجهة Didit API ويعيد رابط التحقق المستضاف. يمنحك هذا تحكماً في vendor_data وcallback لكل جلسة وmetadata، ويتيح لك إنشاء الجلسات قبل وصول المستخدم إلى الواجهة الأمامية. اقرأ المزيد في مرجع واجهة إنشاء الجلسة. الخادم الخلفي (Node.js / Express)
الواجهة الأمامية
حقل الاستجابة لإنشاء الجلسة اسمه url (راجع مخطط OpenAPI لإنشاء الجلسة). مرّره مباشرةً إلى startVerification({ url }).

الإعدادات

راجع تعريفات أنواع TypeScript الكاملة أدناه للاطلاع على الواجهة DiditSdkConfiguration كاملةً.

خيارات الكاميرا

تتطلب خيارات الكاميرا الإصدار 0.4.0 من @didit-protocol/sdk-web أو أحدث.
يوفّر SDK الويب الخيارات الأربعة نفسها للكاميرا المتوفرة في SDKs الأصلية. افتراضيًا، يفتح التقاطُ المستند الكاميرا الخلفية، ويفتح التقاطُ الوجه (كشف الحيوية) الكاميرا الأمامية (السيلفي)، وتتيح الخطوتان مبدّلَ الكاميرا داخل الالتقاط على الأجهزة التي تحتوي على أكثر من كاميرا. اضبط defaultLivenessCamera: 'back' لفتح التقاط الوجه بالكاميرا الخلفية، مثلًا في الأكشاك أو عندما يمسك المشغّل الجهاز ويوجّهه نحو الشخص الذي يجري التحقق منه.
  • القيم المقبولة للعدسة هي 'front' و'back'. أي قيمة أخرى تُتجاهل، وكذلك علامة المبدّل إذا لم تكن قيمة منطقية.
  • الجهاز الذي لا يحتوي على الكاميرا المطلوبة يحتفظ بكاميرته المتوفرة: حاسوب محمول طُلب له 'back' يستخدم كاميرا الويب الخاصة به. يُخفى المبدّل على الأجهزة ذات الكاميرا الواحدة مهما كانت العلامات.
  • تنطبق خيارات كشف الحيوية على فحص كشف الحيوية السلبي. كشف الحيوية النشط لا يتأثر.
  • يمرّر SDK الخيارات إلى صفحة التحقق بوصفها معاملات استعلام في عنوان التحقق: document_camera وliveness_camera وdocument_camera_switch وliveness_camera_switch. إذا فتحت عنوان التحقق مباشرة بدلًا من المرور عبر SDK، فاضبطها بنفسك: أضف ?liveness_camera=back إلى عنوان بلا سلسلة استعلام، أو &liveness_camera=back إلى عنوان يحتوي معاملات بالفعل، أو اضبطها بواجهة URL لتتم معالجة الحالتين:

إرسال الأحداث

DiditSdk.shared.submitEvent() يضع في قائمة الانتظار أحداث المستخدم النهائي (التسجيل، وتسجيل الدخول، وتسجيل الدخول الفاشل، وتسجيل الخروج، وإعادة تعيين كلمة المرور، والمصادقة متعددة العوامل، وتغيير الجهاز) لمراقبة الأحداث لدى Didit. يُنشئ الخادم الخلفي لديك token للمراقبة للشخص، ويرسل SDK الأحداث على دفعات مع بصمة الجهاز. لا ترسل مفتاح API إلى المتصفح مطلقًا.
للاطلاع على token وحقول الحدث وسلوك التسليم، انظر إرسال أحداث SDK.

ضبط حجم النافذة والتمرير

يتطلب سلوك الحجم الموضّح أدناه الإصدار 0.3.1 أو أحدث. 0.3.0 والإصدارات الأقدم قد تقتطع تدفق التحقق على منافذ العرض القصيرة في سطح المكتب والوضع الأفقي.
يستخدم وضع النافذة المنبثقة عرضًا أقصى قدره 500px وارتفاعًا أقصى قدره 700px. على منافذ العرض القصيرة في سطح المكتب والوضع الأفقي، يبلغ حجم iframe نسبة 90% من منطقة العرض المرئية. يتمرّر تدفق التحقق داخل iframe، فتبقى كل خطوة متاحة بينما تبقى الصفحة خلف النافذة مقفلة. يستخدم SDK الوحدة dvh في المتصفحات التي تدعم وحدات منفذ العرض الديناميكية، ويعود إلى vh في المتصفحات المدعومة الأقدم. عند عرض 540px وأقل، تملأ النافذة المنبثقة منطقة العرض المرئية. يبقى زر الإغلاق وتأكيد الخروج داخل النافذة المنبثقة.

تخطيط جديد لتدفق التحقق

ينطبق كل ما في هذا القسم ابتداءً من الإصدار 0.5.0، وهو غير منشور بعد. إلى أن تقوم بالترقية، تحتفظ النافذة المنبثقة بالحجم الموضّح أعلاه.
ابتداءً من الإصدار 0.5.0، تضبط النافذة المنبثقة حجمها بنفسها حول تدفق التحقق المُعاد تصميمه بمجرد أن تُبلغ الصفحة عن تخطيطها عبر رسالة didit:layout:
  • حجم البداية، ابتداءً من الإصدار 0.5.0: إلى أن تُبلغ الصفحة عن تخطيطها، وبالنسبة للصفحات التي لا تفعل ذلك أبدًا، تحتفظ النافذة المنبثقة بالحد الأقصى الحالي 500px × 700px. وما زالت تتناسب مع النوافذ القصيرة، وتبقى بملء الشاشة عند 540px وأقل.
  • زر الإغلاق، ابتداءً من الإصدار 0.5.0: دائرة قطرها 44px فوق الشريط العلوي للصفحة. تتبع السمة الفاتحة أو الداكنة للصفحة، وتنتقل إلى اليسار في اللغات التي تُكتب من اليمين إلى اليسار.
  • الوضع المضمّن، ابتداءً من الإصدار 0.5.0: يستمر في ملء عنصره المضيف كما كان من قبل (انظر الوضع المضمّن).
  • عنوان التحقق، ابتداءً من الإصدار 0.5.0: يضيف SDK المعامل sdk_presentation (modal أو embedded)، وفي النافذة المنبثقة المعامل sdk_close_button (true أو false، بحسب showCloseButton)، حتى تعرف الصفحة طريقة عرضها.
  • الأحداث، ابتداءً من الإصدار 0.5.0: يتولى SDK معالجة didit:layout بنفسه ولا يمرّرها إلى onEvent.
لا يوجد ما يتطلب ضبطًا، وتستمر كل الخيارات الحالية في العمل.

الوضع المضمّن

لا يستخدم الوضع المضمّن الحدّ 500px × 700px الخاص بالنافذة المنبثقة. يملأ SDK منطقة المحتوى للعنصر المضيف، لذا امنح هذا العنصر ارتفاعًا صريحًا أو ارتفاعًا محسوبًا بطريقة أخرى:
إذا لم يكن للعنصر المضيف ارتفاع محسوب، فلن يكون لـ iframe المضمّن ارتفاع قابل للاستخدام أيضًا. أعد ضبط حجم العنصر المضيف عندما يتغيّر تخطيطك؛ يستمر SDK في ملئه تلقائيًا.

نتائج التحقق

يُرجع SDK ثلاثة أنواع من النتائج:

مكتمل

انتهى تدفق التحقق (مقبولة أو قيد الانتظار أو مرفوضة).
يحدد نوع TypeScript القيم 'Approved' | 'Pending' | 'Declined'، لكن القيمة تُمرَّر كما هي من حالة الجلسة في التدفق المستضاف، وقد تتلقى حالات أخرى مثل In Review أيضًا. تمثل Pending القيمة البديلة التي يستخدمها SDK عندما لا يُبلّغ التدفق عن أي حالة. تعامل مع status على أنه مؤشر فقط، واعتمد على webhook للحصول على القرار المعتمد.

ملغى

أغلق المستخدم نافذة التحقق. تُدرج session عندما يكون sessionId معروفًا بالفعل (وقد تكون undefined إذا ألغى المستخدم العملية قبل أن يُبلّغ iframe عنه).

فشل

حدث خطأ أثناء التحقق.

إدارة الحالة

يمكنك مراقبة حالة SDK لبناء واجهة مستخدم مخصصة:

مرجع API

DiditSdk.shared

مثيل SDK المفرد.

الطرق

الخصائص

الاستدعاءات


الأحداث التفصيلية

تتبع تقدم التحقق باستخدام الدالة onEvent:

مرجع الأحداث

انقطاع الاتصال

إذا انقطع اتصال المستخدم بالإنترنت، تغطي صفحة التحقق المسار بشاشة “لا يوجد اتصال بالإنترنت” بدلاً من ترك الخطوة في حالة التحميل. تواصل الصفحة التحقق من الاتصال في الخلفية، وتغلق الشاشة تلقائياً بمجرد أن يصبح Didit متاحاً مرة أخرى، ويتابع المستخدم من الخطوة التي كان فيها. داخل النافذة المنبثقة الخاصة بالـ SDK أو داخل iframe، تعرض الشاشة أيضاً الزر إنهاء التحقق: عندها ترسل الصفحة didit:error مع error: "network_error"، ثم didit:cancelled، ويغلق الـ SDK النافذة المنبثقة ويستدعي onComplete مع type: "cancelled". ابتداءً من الإصدار 0.5.0، تحدد رسالة didit:layout الخاصة بالصفحة حجم النافذة المنبثقة ولا تصل إلى onEvent. إذا كنت تُضمّن الصفحة باستخدام iframe خاص بك بدلاً من ذلك، فراجع تغيير حجم الـ iframe من didit:layout.

قيم الخطوة

يمكن أن يكون الحقل step أحد القيم التالية:
  • document_selection - اختيار نوع المستند
  • document_front - الوجه الأمامي للمستند
  • document_back - الوجه الخلفي للمستند
  • face - التحقق من الوجه وكشف الحيوية
  • email - التحقق من البريد الإلكتروني
  • phone - التحقق من رقم الهاتف
  • poa - إثبات العنوان
  • questionnaire - خطوة الاستبيان

قيم القناة

يمكن أن يكون الحقل channel في code_sent أحد القيم التالية:
  • email - رمز مرسل عبر البريد الإلكتروني
  • sms - رمز مرسل عبر الرسائل النصية SMS
  • whatsapp - رمز مرسل عبر WhatsApp

حجم الرمز

يشير الحقل codeSize في code_sent إلى طول رمز OTP، مثلاً 4 أو 6 أرقام.

أنواع TypeScript

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