মূল লেখায় যান

কাস্টম লাইসেন্স 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