نظرة عامة
تربط Shernova تطبيقك وSDK الجوال أو API الخادم ورصيد الفوترة وهواتف البوابة الفعلية وWebhooks الاختيارية في مسار تحقق واحد.
المكوّنات
| المكوّن | الدور |
|---|---|
| لوحة المطور | إدارة التطبيقات والمفاتيح والفوترة والجلسات |
| REST API | إنشاء واستعلام جلسات التحقق |
| Flutter SDK | تبادل الرمز + واجهة + استطلاع |
| محرك الفوترة | Hold → Capture/Release لكل جلسة |
| تطبيق Gateway Android | استقبال المكالمات وإرسال أحداث ring |
| توصيل Webhook | POST موقّع إلى endpoint HTTPS |
دورة حياة الجلسة
طبقات المصادقة
- JWT لوحة التحكم — جلسات المتصفح لإدارة المنظمة
- المفتاح السري (
sk_live_/sk_test_) — API التحقق؛ test يستخدم بوابات حقيقية ويستهلك رصيداً - المفتاح القابل للنشر (
pk_live_/pk_test_) — تبادل رمز SDK فقط - SDK JWT — قصير (~180 ث) يُستخدم كالمفتاح السري
- رمز البوابة —
X-Shernova-Gateway-Tokenلأجهزة البوابة فقط
تدفق بيانات التحقق
- يطلب التطبيق تحققاً برقم E.164
- API يتحقق من الفوترة ويحجز رصيداً واحداً
- API يختار بوابة متصلة ويعيد
gateway_phone_number - المستخدم يتصل من نفس الرقم
- تطبيق البوابة يرسل ring؛ API يطابق ذيل المتصل
- تصبح الحالة
verified؛ يلتقط الرصيد؛ يُجدول Webhook
TTL الجلسة الافتراضي 300 ثانية. يجب أن ترسل البوابة heartbeat خلال 120 ثانية لتبقى online.
مفاتيح test مقابل live
مفاتيح test (pk_test_/sk_test_) تستخدم بوابات Android حقيقية وتستهلك رصيداً — نفس تدفق live. صفحة الجلسات تعرض نوع المفتاح (test/live) وحالة الجلسة.
Receipts (إثبات على الخادم)
بعد verified: إصدار receipt ثم التحقق مرة واحدة على الخادم عبر POST /v1/receipts/verify. إعادة الاستخدام → SH_014.
