تكامل تطبيق الويب
تصف هذه الصفحة كيفية عمل رحلات Unico ونماذج التكامل المتاحة لدمجها في أحد التطبيقات.
الرحلة هي مجموعة الخطوات التي يمر بها المستخدم لإتمام التحقق من الهوية. على سبيل المثال: التقاط صورة للمستند وإجراء التقاط للوجه (لايفنس).
تتولى Unico إدارة التجربة بأكملها. جهد التكامل ضئيل: تُنشأ الرحلة عبر CreateProcess، ويُوجَّه المستخدم إليها، وتُستلَم النتيجة في النهاية. كل ما يحدث في الأثناء (الشاشات والتعليمات وعمليات التحقق) جاهز بالفعل وتتولى Unico صيانته.
- Web SDK (حزمة
unico-webframe): استخدمها عندما يتحكم الـ back-end لديك بالفعل في تدفق التحقق من الهوية ويحتاج فقط إلى مكوّن الالتقاط من جانب العميل. تُعيدbase64+ رمز JWT مشفّرًا مباشرةً إلى الـ callback الخاص بك؛ وأنت من يدير استدعاءات الـ API. - Web App Integration (حزمة
idpay-b2b-sdk): استخدمها عندما تريد أن تتولى Unico تنسيق الرحلة بأكملها (تدفقات متعددة الخطوات، التقاط المستند + لايفنس). حزمةidpay-b2b-sdkتشغّل نموذج Journeys SDK (iFrame) المضمَّن؛ أما نموذج الوصول المباشر (إعادة التوجيه) فلا يحتاج إلى أي مكتبة.
نموذجا التكامل
لكل عميل احتياجات مختلفة. تقدّم Unico نموذجين لتوجيه المستخدم إلى الرحلة.
| النموذج | الأنسب لـ |
|---|---|
| الوصول المباشر | تطبيقات الجوال التي تستخدم بالفعل WebView، أو تدفقات الويب التي يمكن أن تتم فيها الرحلة خارج الصفحة الرئيسية |
| Journeys SDK | تطبيقات الويب التي تحتاج إلى تجربة متكاملة وسلسة، مع إبقاء المستخدم داخل البيئة نفسها |
- الوصول المباشر
- Journeys SDK
يُعاد توجيه المستخدم إلى رابط مُستضاف من Unico، حيث تتم الرحلة. وعند الاكتمال، يُعاد إلى عنوان URL المحدَّد أثناء إنشاء العمل ية (المعامل callbackUri).
هذا هو أبسط نهج يمكن اعتماده: فهو لا يتطلب تثبيت أي مكتبة، ويعمل جيدًا عندما لا تحتاج الرحلة إلى أن تتم داخل صفحة التطبيق نفسها. في المقابل، فإن نقل المستخدم خارج بيئة العميل يميل إلى إحداث مزيد من الاحتكاك، ومن ثَمّ معدل تخلٍّ أعلى.
بعد إنشاء عملية، تتضمن استجابة الـ API عنوان URL للرحلة المستضافة من Unico. هناك طريقتان شائعتان لتوجيه المستخدم إليها:
- إعادة التوجيه القياسية. يُعاد توجيه المستخدم مباشرةً إلى عنوان URL للرحلة. وعند الاكتمال، تعيد Unico توجيهه إلى
callbackUriالمحدَّد أثناء إنشاء العملية. - علامة تبويب جديدة باستخدام
window.open(). تُفتح الرحلة في علامة تبويب جديدة في المتصفح، مما يُبقي المستخدم في سياق منفصل. في هذه الحالة، يُوصى بمراقبة تغيُّر عنوان URL إلىcallbackUriوإغلاق علامة التبويب بمجرد اكتمال العملية. للاطلاع على تفاصيل حول الـ API، راجع توثيق MDN.
في تطبيقات الجوال، من الشائع استخدام WebView لفتح الرحلة مباشرةً دون الحاجة إلى إعادة توجيه إضافية. في هذه الحالة، يقبل callbackUri أيضًا deeplink، مما يتيح أن يؤدي اكتمال الرحلة إلى فتح شاشة م حددة في التطبيق الأصلي. ما عليك سوى ضبط الـ deeplink كوجهة عودة، ويتولى نظام التشغيل توجيه المستخدم إلى المكان الصحيح.
تتم الرحلة داخل التطبيق نفسه، دون إخراج المستخدم من سياقه. يُثبَّت Journeys SDK في التطبيق ويُستخدم لفتح الرحلة عند الحاجة.
هذا هو المسار الموصى به للحصول على تجربة أكثر تكاملًا وسلاسة، مع إبقاء المستخدم في البيئة نفسها طوال الوقت، مما يميل إلى تقليل الاحتكاك ومعدل التخلي على امتداد التدفق.
تقدّم Unico مكتبة JavaScript متوافقة مع المتصفحات الحديثة، تتيح دمج الرحلة في أي تطبيق تقريبًا بأسطر قليلة من التعليمات البرمجية.
التوافق
صُمِّمت المكتبة لتندمج في أي مشروع دون احتكاك، بغضّ النظر عن الـ stack المُستخدَم:
- أي تطبيق ويب. تُوزَّع بصيغة UMD، وتعمل عند استيرادها عبر أدوات الحزم الحديثة (مثل webpack أو Vite). متوافقة مع أي إطار عمل (React وAngular وVue) أو مع JavaScript الخالص.
- المتصفحات الحديثة. تتضمن المكتبة بالفعل الـ polyfills اللازمة لميزات مثل Promises و
async/await، مما يوسّع التوافق ليشمل أيضًا الإصدارات الأقدم من المتصفحات. - واجهات الويب البرمجية القياسية. تعمل الرحلة اعتمادًا على القدرات الأصلية للمتصفح، دون الاعتماد على إضافات أو مكتبات خارجية في المشروع.
كيف يعمل الـ SDK داخليًا
عند فتح رحلة، يُدرِج الـ SDK إطار iFrame في الصفحة ويتولى من تلك اللحظة التحكم في التجربة المرئية بالكامل. تعمل شاشات كل خطوة ونصوصها البرمجية وأصولها داخل هذا الـ iFrame، منذ لحظة بدء المستخدم وحتى اكتمال العملية.
هذا القرار المعماري مقصود: يضمن عزل الـ iFrame ألا تتداخل رحلة Unico مع أنماط التطبيق أو سلوكه. لا يتسرب أي نص برمجي إلى السياق الخارجي، ولا تتعارض أي قاعدة CSS مع أنماط التطبيق نفسه. والنتيجة تجربة متسقة للمستخدم النهائي وأثر ضئيل على منتج العميل.
بما أن Unico مسؤولة عن إنشاء الـ iFrame وإدارته، فإن تحسينات الرحلة (سواء في الأداء أو التجربة أو التحقق) تصل تلقائيًا إلى جميع المستخدمين، دون الحاجة إلى أي تغيير في التطبيق المُدمَج. وستعمل عملية التكامل دائمًا بأفضل التحسينات المتاحة، دون الحاجة إلى متابعة كل تطور في المنصة أو التفاعل معه.
البدء
الخطوة 1: التثبيت
تُشارَك حزمة idpay-b2b-sdk بين رحلات الدفع في IDPay ورحلات التحقق من الهوية. لحالات استخدام الهوية، استورد الفئة ByUnicoSDK كما هو موضح في الخطوات أدناه.
npm install idpay-b2b-sdk
الطريقة الموصى بها لتثبيت Journeys SDK هي عبر مدير اعتماديات مثل npm أو yarn، من الحزمة المتاحة على npm registry. وإلى جانب تبسيط التثبيت وإدارة الاعتماديات، يوفّر هذا النهج تحكمًا واضحًا في الإصدار المُستخدَم ويُسهّل التحديث في كل مرة يُنشر فيها إصدار جديد.
يتبع الـ SDK الإصدار الدلالي (SemVer)، ما يعني أن تحديثات patch وminor لا تُدخِل تغييرات كاسرة للتوافق. ومن الآمن تهيئة المشروع لتلقّي هذه التحديثات تلقائيًا. أما التغييرات التي قد تتطلب تعديلات في التكامل فهي محصورة في إصدارات major وتأتي دائمًا مصحوبة بدليل ترحيل.
البقاء على أحدث إصدار مهم بشكل خاص لسببين. الأول هو الأمان: تُنشر تصحيحات الأمان كلما اكتُشفت ثغرات أو سنحت فرص لتعزيز بروتوكول الاتصال. وتشغيل إصدار قديم يعني التخلي عن هذه الإصلاحات وتعريض التدفق لمخاطر غير ضرورية. والثاني هو الاستقرار: تُوزَّع إصلاحات الأخطاء بالطريقة نفسها، وقد تُظهر الإصدارات القديمة سلوكيات سبق حلّها في الإصدارات الأحدث.
قبل البدء، سجّل نطاقاتك لدى فريق دعم Unico. يجب أن تستخدم جميع النطاقات HTTPS.
الخطوة 2: استدعِ init(options)
يُهيّئ الـ SDK ويُحمّل مسبقًا النصوص البرمجية اللازمة لعمل الرحلة بشكل صحيح، مما يوفّر تجربة أكثر سلاسة للمستخدم النهائي. استدعِه في أبكر وقت ممكن في التدفق.
| المعامل | مطلوب | الوصف |
|---|---|---|
token | نعم | رمز العملية المُعاد من واجهة Create Process البرمجية |
env |