حزم SDK أصلية لـiOS وAndroid وReact Native وFlutter، وحزم ويب لواجهتك الأمامية. استخدم SDK أصليًا لـNFC وأفضل سلوك كاميرا؛ النتائج تصلك عبر webhook.

إجابة مختصرة

حزم SDK الأصلية متوفرة لأنظمة iOS وAndroid وReact Native وFlutter؛ أما حزم SDK للويب فتضمّن سير العمل داخل واجهتك الأمامية. استخدم حزمة SDK أصلية عندما تحتاج إلى NFC أو أفضل سلوك للكاميرا - فـ WebView لا يمنحك أيًا منهما. النتائج لا تزال تصلك عبر webhook، لا من حزمة SDK نفسها.

#لماذا SDK بدلًا من إعادة توجيه

إعادة التوجيه المستضافة هي أقل جهد، وهي فعليًا مناسبة لمعظم سيناريوهات سير العمل. تستحق حزمة SDK العناء عندما:

  • تحتاج إلى NFC. لا يمكن قراءة الرقاقة في جواز السفر أو بطاقة الهوية من صفحة متصفح. حزمة SDK أصلية هي المسار الوحيد. انظر التحقق برقاقة NFC.
  • لا تريد أن يغادر المستخدم تطبيقك. إعادة التوجيه إلى الخارج والعودة نقطة تسرّب حقيقية على الجوال.
  • تريد أفضل سلوك للكاميرا. الوصول الأصلي إلى الكاميرا أكثر موثوقية من وصول المتصفح، خصوصًا على الأجهزة الأقدم.

#ما هو متاح

المنصةملاحظات
iOSيُوزَّع كـ XCFramework
Androidيُوزَّع عبر Maven
React Nativeيغلّف الوحدات الأصلية؛ يدعم البنية الجديدة (New Architecture)
Flutterيغلّف الوحدات الأصلية
JavaScript / الويبيضمّن سير العمل المستضاف داخل واجهتك الأمامية على الويب
iframe داخل السياقيعرض سير العمل داخل صفحتك بدلًا من إعادة التوجيه
صفحة Integrate في كونسول Didit مع روابط حزم SDK والتوثيق
كل حزمة SDK تبدأ من نفس الصفحة التي يبدأ منها API.

iOS يدعم Swift Package Manager وCocoaPods؛ أضف أذونات الكاميرا وNFC إلى Info.plist عند الحاجة. Android عبر Maven. React Native يدعم Expo عبر بناء تطوير يحتوي الوحدات الأصلية، وليس Expo Go.

تتغير متطلبات الإصدار والحد الأدنى للمنصة مع الإصدارات الجديدة، لذا تحقق من توثيق SDK الحالي بدلًا من لقطة صفحة مساعدة - وإذا كنت على إصدار إطار عمل معيّن (إصدار Expo محدد، مثلًا)، تأكد من التوافق مع جهة الاتصال في Didit قبل الالتزام به في مرحلة عمل.

#WebView ليست حزمة SDK أصلية

تغليف سير العمل المستضاف على الويب داخل WebView يبدو وكأنه يمنحك تجربة داخل التطبيق. إنه يمنحك مظهرها فقط:

  • لا يوجد NFC. لا تزال الرقاقة غير قابلة للقراءة.
  • أذونات الكاميرا أصعب. يعتمد وصول WebView إلى الكاميرا على إعدادات التطبيق المضيف، والخطأ في ضبطها ينتج بالضبط تقارير "الكاميرا لم تُفتح أبدًا" المذكورة في إصلاح مشكلات فحص الحيوية ومطابقة الوجه.
  • اللغة هي لغة التطبيق، لا لغة المستخدم. يُبلغ WebView عن لغة التطبيق المضيف، لذا مرِّر language صراحةً عند إنشاء الجلسة. انظر تعيين لغة التحقق.

إذا كنت ستتحمل عناء سير عمل داخل التطبيق، استخدم حزمة SDK الأصلية.

#النتائج لا تزال تصلك عبر webhooks

هذا ما يوقع الناس في الخطأ: تخبر حزمة SDK تطبيقك أن المستخدم أنهى سير العمل. إنها ليست المصدر الموثوق لقرار التحقق.

يُنتَج القرار من جهة الخادم بعد تشغيل الفحوصات، ويصلك عبر webhook. لا تمنح الوصول أبدًا استنادًا إلى استدعاء إتمام حزمة SDK وحده - فالإشارة من جهة العميل يسهل تزويرها، وقد لا تكون الفحوصات قد انتهت حتى عند إطلاقها.

مهم

معاملة "حزمة SDK قالت انتهى" كأنها "المستخدم تم التحقق منه" هو الخطأ الأكثر جسامة الممكن في تكامل الجوال. تأكد من ذلك في خادمك، من webhook أو من نقطة نهاية القرار، قبل أن تفتح أي شيء.

#تطبيق مستهلك واحد، أم تطبيقك أنت؟

لا يوجد تطبيق Didit مستهلك منفصل يُسلَّم إليه المستخدمون من جلسة مستضافة لخطوة مثل NFC. إذا أردت كل شيء - NFC وغير NFC - داخل تجربة تطبيق واحدة، فذلك التطبيق هو تطبيقك، مع حزمة SDK مضمَّنة فيه.

#التوزيع وتعارضات الاعتماديات

يتعارض تكامل حزمة SDK الأصلية أحيانًا مع اعتماديات أخرى في التطبيق المضيف - مكتبة متعدية مشتركة، أو subspec يثبّت إصدارًا يثبّته شيء آخر أيضًا. إذا واجهت واحدة من هذه الحالات، فهي مشكلة ملموسة وقابلة للتكرار تستحق الإبلاغ عنها مع ملف اعتمادياتك بدلًا من الالتفاف حولها بتثبيت شيء قديم: الإصلاح عادة ما يكون داخل حزمة SDK نفسها.

#الاختبار على جهاز

بدّل إلى Sandbox من المفتاح أسفل اسم التطبيق، ثم أنشئ مفتاح API للاختبار واستخدمه. تُحاكى الفحوص ولا تُفرض رسوم، ويمكنك اختيار النتيجة المطلوبة.

الاختبار في sandbox

ما زلت عالقًا؟ تحدث إلى إنسان.

أرفق معرّف مؤسستك ومعرّف الجلسة التي تسأل عنها.

تواصل مع الدعم