انتقل إلى المحتوى

واجهة ترخيص مخصصة

يدعم Launch خدمة Licentivo وخدمات الترخيص المخصصة. اختر مزوداً واحداً للمتجر كله من إعدادات النظام ← نظام الترخيص.

تستخدم المنتجات ذات الترخيص المخصص خدمة الترخيص وSDK الخاصين بالتاجر. يدير Launch المبيعات وتأكيد الدفع ومزامنة حالة الشراء واستعلامات التسليم.

  1. اضبط الاتصالات ومفاتيح التوقيع وربط المنتجات والخطط بشكل منفصل لبيئتي sandbox وlive. افحص الاتصال قبل نشر الخطط.
  2. لا يمكن استبدال اتصال مرتبط بطلبات حالية مباشرةً. رحّل الطلبات قبل تغيير المزود، ثم أعد نشر الخطط.
  3. تحقق من الشراء والتجديد والترقية والاسترداد والتعافي من الأعطال في بيئة الاختبار قبل نشر إعدادات الإنتاج.

واجهات خدمة الترخيص لدى التاجر

تنفذ خدمة الترخيص لدى التاجر هذه الواجهات الأربع ويستدعيها خادم Launch. لا ترسل هذه الطلبات إلى www.licentivo.com.

APIالغرض
GET /launch/v1/capabilitiesأعلن البروتوكول والاتصال والبيئة وأنواع الشراء والتسليم المدعومة.
POST /launch/v1/eventsاستقبل لقطة الشراء الكاملة وأعد إيصالاً بعد حفظ الحدث بشكل دائم.
GET /launch/v1/events/{event_id}استعلم عن إيصال الحدث الأصلي. تؤكد applied فقط اكتمال تعديل الترخيص.
GET /launch/v1/entitlements/{entitlement_ref}/deliveryاقرأ التسليم الموجود لإصدار الشراء الحالي دون إصدار ترخيص آخر.

تتضمن اللقطات إصدار الشراء والحالة الحالية وتواريخ صلاحية مطلقة؛ وتعني valid_until=null شراءً دائماً. قد يبقى الشراء الأساسي بعد الاسترداد، لذا يجب إعادة حساب الحقوق من اللقطة الكاملة.

POST /launch/v1/events · JSON
{
  "schema": "launch-external-licensing-v1",
  "event_id": "7bf84b91-2749-4b01-a6a7-bd527c488ee8",
  "connection_ref": "merchant-01-sandbox",
  "environment": "sandbox",
  "type": "entitlement.snapshot",
  "change_reason": "purchase",
  "account_ref": "customer_opaque_001",
  "entitlement_ref": "purchase_opaque_001",
  "launch_product_id": "c6dd463e-50f7-4b76-8239-0a8ec6fc304b",
  "launch_plan_version_id": "5459a073-9362-4b46-949d-9b0c5d84421a",
  "product_ref": "desktop-editor",
  "plan_ref": "professional-yearly-v1",
  "version": 1,
  "desired_state": "active",
  "valid_from": "2026-10-26T00:00:00Z",
  "valid_until": "2027-10-26T00:00:00Z"
}

التوقيعات وإعادة المحاولة

استخدم مفتاح HMAC-SHA256 مستقلاً يتضمن 32 بايت عشوائياً على الأقل لكل اتصال. تتضمن الطلبات معرف المفتاح ووقت Unix بالثواني وnonce عشوائياً وتوقيعاً. تحقق من التوقيع ونافذة 300 ثانية ومنع إعادة استخدام nonce.

HMAC-SHA256 · UTF-8 canonical request
v1
<key_id>
<timestamp>
<nonce>
<UPPERCASE HTTP METHOD>
<encoded full path and raw query>
<lowercase SHA-256 of the exact request body>

لا تضف سطراً جديداً في نهاية مدخل التوقيع. تحتوي X-Launch-Signature على v1= ثم توقيع base64url دون حشو. يكون جسم GET فارغاً.

تحافظ المحاولات على معرف الحدث والجسم الأصلي مع nonce جديد كل مرة. بعد انتهاء المهلة، استعلم أولاً عن الحدث الأصلي. لا يجوز للإصدار القديم استبدال الأحدث، ولا تؤكد 202 تطبيق الترخيص.

واجهات إدارة Launch والعملاء

توجد هذه الواجهات على موقع Launch الخاص بالتاجر. يستخدم المسؤولون جلسة الموقع وX-CSRF-Token. يمكن للعملاء قراءة مشترياتهم الحالية الصالحة فقط.

PUT /api/v1/admin/licensing/provider{"provider":"custom_http"}
GET/POST /api/v1/admin/licensing/connectionsGET/POST
PUT /api/v1/admin/licensing/connections/{id}POST /api/v1/admin/licensing/connections/{id}/check
PUT /api/v1/admin/products/{id}/licensingenvironment + connection_id + mappings
GET /api/v1/me/products/{id}/delivery?environment=sandboxpending / ready / unavailable

قد يتضمن التسليم مفتاح ترخيص أو رابط تنشيط HTTPS أو تعليمات نصية. لا تغني المزامنة الناجحة عن فحوص تفويض العميل أثناء التشغيل.

البروتوكول الكامل والأمثلة · تنزيل OpenAPI · مثال مستقبِل Python

OpenAPI لإدارة Launch والعملاء