मुख्य सामग्री पर जाएँ

कस्टम लाइसेंस API

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"
}

हस्ताक्षर और पुनः प्रयास

हर कनेक्शन के लिए कम से कम 32 यादृच्छिक बाइट की अलग HMAC-SHA256 कुंजी रखें। अनुरोध में कुंजी ID, सेकंड में 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 का बॉडी खाली होता है।

पुनः प्रयास में इवेंट ID और ठीक वही बॉडी रखें, हर बार नया 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 प्राप्तकर्ता का उदाहरण

Launch व्यवस्थापन और ग्राहक OpenAPI