البداية
أنواع التكامل
عند إنشاء تطبيق جديد ستُسأل أوّل شيء عن نوع التكامل. القرار يحدد بقية الرحلة:
Embedded (مدمج)
التطبيق يُشحن داخل okta-web ككود ويعمل في نفس الـ runtime.
| السمة | القيمة |
|---|---|
| مكان الاستضافة | داخل أوكتا |
| الواجهة | Livewire/Blade تظهر في لوحة المستأجر |
| التواصل | استدعاء داخلي عبر App\Services\PartnerApi\* |
| المستودع | Git repo خاص بك مع boilerplate جاهز |
| الفائدة | تجربة سلسة للمستأجر، أداء عالٍ |
| العيب | يلزمك التزام صارم بقواعد العزل |
External (خارجي)
التطبيق مستضاف لديك ويتفاعل مع أوكتا حصراً عبر HTTP.
| السمة | القيمة |
|---|---|
| مكان الاستضافة | عند الشريك |
| الواجهة | تطبيقك الخاص (Web/Mobile/Server-only) |
| التواصل | REST API + Webhooks |
| المستودع | لا حاجة لمستودع كود |
| الفائدة | حرية كاملة في اختيار الـ stack |
| العيب | ضرورة إدارة استضافة + أمان webhooks |
Notification (مزوّد إشعار)
تطبيق إشعار قابل للتوصيل (WhatsApp / SMS / Push / Slack / ...) تستهلكه
المنصة عبر واجهة موحَّدة send(recipient, message) بصرف النظر عن قناة
التسليم.
| السمة | القيمة |
|---|---|
| مكان الاستضافة | عند الشريك (api) أو داخل أوكتا (embedded) أو الاثنين (hybrid) |
| الواجهة | لا يوجد UI للمستخدم — تطبيق "خادم فقط" يُستدعى من بقية المنصة |
| التواصل | استدعاء موحَّد من المنصة لكل recipient |
| الفائدة | يضيف قناة جديدة (مثل WhatsApp Cloud أو Twilio) دون تعديل الـ core |
| العيب | المنصة تُحدّد العقد — لا تستطيع توسعته بمفردك |
ثلاث طرق تسليم:
api— أوكتا تُرسلPOSTإلى endpoint عندك مع HMAC.embedded— تشحن class داخل okta-web يُطبِّقPartnerNotificationProvider.hybrid— embedded بصفته الأساس، يتراجع لـ api على فشل.
خبرة عملية: التطبيق المدمج هو الأنسب للميزات التي تشعر أنها "جزء من أوكتا" (مثل واجهة تقارير مخصصة). التطبيق الخارجي هو الأنسب لما يحتاج لخدمة سحابية مستقلة (مثل ربط مع نظام شركة موجود لديك). تطبيق الإشعار خيار مستقل عن الاثنين — لا يضيف صفحة، فقط قناة قابلة للاستهلاك من باقي المنصة.
Payment (مزوّد دفع)
مزوّد بوابة/وسيلة دفع (Tabby / Tamara / Noon Payments / ...) تثبّته الجهة
مرة واحدة، ثم تدفع بقية التطبيقات المبالغ من خلاله عبر عقد charge(...)
موحَّد. مثل الإشعار في الشكل، لكن الفعل هو تحصيل المبالغ لا إرسال رسائل.
ثلاث طرق تسليم أيضاً: api / embedded / hybrid. استهلاك هذا
العقد (إنشاء دفعة من تطبيق آخر) متاح حصراً لتطبيقات Embedded — راجع
استهلاك المدفوعات من تطبيقك.
التفاصيل الكاملة في قسم تطبيقات الدفع (Payment).