التوثيق

App ID

UUID عام يحدد تطبيقك. آمن في تطبيقات الجوال مع المفتاح القابل للنشر.

المفتاح القابل للنشر (pk_live_)

لـ POST /v1/sdk/token فقط. مرتبط بـ package + SHA256.

المفتاح السري (sk_live_)

للخادم فقط. لا تضعه في تطبيقات الجوال.

SDK Token (JWT)

JWT قصير (~180 ث) من /v1/sdk/token. يُستخدم كـ Bearer للتحقق.

JWT لوحة التحكم

access + refresh لتسجيل الدخول وإدارة المنظمة.

Package Name

applicationId Android. عدم التطابق → package_mismatch.

Android SHA256

بصمة 64 hex. keytool -list -v. غير مسجل → signature_not_registered.

HTTPS

Webhooks تتطلب HTTPS. عناوين خاصة مرفوضة.

مفاتيح test

sk_test_/pk_test_ — بوابات حقيقية وتستهلك رصيداً. لا تستخدمها في builds الإنتاج.

Receipt JWT

إثبات موقّع. تحقق عبر POST /v1/receipts/verify. استخدام مكرر → SH_014.

حماية Replay

nonce فريد في طلب token. JWT قصير العمر. Receipts لمرة واحدة.

عمر الرموز

الرمزTTL افتراضي
SDK JWT~180 ثانية
جلسة التحقق300 ثانية
JWT لوحة التحكمقصير + refresh

توقيع Webhook

HMAC-SHA256 للجسم JSON. Header: X-Shernova-Signature: sha256=<hex>.

كيف يثبت التحقق ملكية الرقم

Shernova لا ترسل SMS ولا تقرأ سجل مكالمات المستخدم. تُثبت الملكية عندما يتصل نفس الرقم الذي أدخله المستخدم برقم البوابة المخصص أثناء جلسة نشطة.

  1. التطبيق ينشئ جلسة برقم المستخدم بصيغة E.164.
  2. Shernova تخصص رقم بوابة وتحجز رصيداً واحداً.
  3. يجب أن يتصل المستخدم من ذلك الهاتف قبل انتهاء TTL (300 ث افتراضياً).
  4. جهاز البوابة يرسل caller ID؛ API يطابق المتصل بالجلسة.
  5. عند التطابق: verified + receipt JWT موقّع.

المكالمات لا تُسجّل — فقط metadata المتصل للمطابقة. راجع البنية.

قائمة أمان

خزّن الأسرار في مدير آمن، ودوّر المفاتيح بعد الحوادث، وتحقق من توقيع Webhook، واستخدم HTTPS دائماً. راجع أفضل الممارسات.