الميزات
- واجهة برمجية بسيطة - نمط 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:الطريقة 1: رابط UniLink (الأبسط)
استخدم رابط UniLink الخاص بسير العمل مباشرةً من Didit Console. لا يتطلب خادماً خلفياً.الطريقة 2: جلسة من الخادم الخلفي (موصى بها للإنتاج)
ينشئ الخادم الخلفي جلسة عبر واجهة Didit API ويعيد رابط التحقق المستضاف. يمنحك هذا تحكماً فيvendor_data وcallback لكل جلسة وmetadata، ويتيح لك إنشاء الجلسات قبل وصول المستخدم إلى الواجهة الأمامية.
اقرأ المزيد في مرجع واجهة إنشاء الجلسة.
الخادم الخلفي (Node.js / Express)
حقل الاستجابة لإنشاء الجلسة اسمه
url (راجع مخطط OpenAPI لإنشاء الجلسة). مرّره مباشرةً إلى startVerification({ url }).الإعدادات
خيارات الكاميرا
تتطلب خيارات الكاميرا الإصدار 0.4.0 من
@didit-protocol/sdk-web أو أحدث.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 إلى المتصفح مطلقًا.
ضبط حجم النافذة والتمرير
يتطلب سلوك الحجم الموضّح أدناه الإصدار 0.3.1 أو أحدث. 0.3.0 والإصدارات الأقدم قد تقتطع تدفق التحقق على منافذ العرض القصيرة في سطح المكتب والوضع الأفقي.
dvh في المتصفحات التي تدعم وحدات منفذ العرض الديناميكية، ويعود إلى vh في المتصفحات المدعومة الأقدم. عند عرض 540px وأقل، تملأ النافذة المنبثقة منطقة العرض المرئية. يبقى زر الإغلاق وتأكيد الخروج داخل النافذة المنبثقة.
تخطيط جديد لتدفق التحقق
ينطبق كل ما في هذا القسم ابتداءً من الإصدار 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 منطقة المحتوى للعنصر المضيف، لذا امنح هذا العنصر ارتفاعًا صريحًا أو ارتفاعًا محسوبًا بطريقة أخرى:نتائج التحقق
يُرجع 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- رمز مرسل عبر الرسائل النصية SMSwhatsapp- رمز مرسل عبر WhatsApp
حجم الرمز
يشير الحقلcodeSize في code_sent إلى طول رمز OTP، مثلاً 4 أو 6 أرقام.