Markdown ڈاؤن لوڈ کریںGitHub پر اصل دستاویز
مرچنٹ کے اپنے لائسنس اڈاپٹر کی مثال
یہ Python 3.10+ مثال SQLite ایونٹ/nonce مستقل اسٹوریج اور بحالی ورکر کے ساتھ Launch کا بیرونی HTTP بریج نافذ کرتی ہے۔ یہ لائسنس نہیں بناتی، محفوظ فیچرز کی جانچ نہیں کرتی اور آپ کے لائسنسنگ سسٹم کا متبادل نہیں۔
ان ہکس کے ساتھ Python ماڈیول نافذ کریں:
def apply_snapshot(snapshot):
# Call your licensing system with snapshot["event_id"] as its durable
# idempotency key. Apply desired_state and the absolute purchased dates.
# Return only after confirming the original operation was applied.
# Raise ValueError for a result requiring manual review.
...
def delivery(snapshot):
# Read an existing result owned by this purchase; do not issue here.
return {"type": "instructions", "value": "Your own delivery instructions", "expires_at": None}
بیک اینڈ ترتیب دینے سے پہلے ... کو حقیقی انضمام سے بدلیں۔ بیک اینڈ ماڈیول ترتیب نہ ہو تو شامل ہکس NotImplementedError اٹھاتے ہیں؛ ایونٹس دستی جائزے میں جاتے ہیں اور لائسنس جاری ہونے کا دعویٰ نہیں کرتے۔ مثال کا ورکر کریش یا غیر یقینی غلطی کے بعد ہک دوبارہ آزما سکتا ہے، لہٰذا آپ کا لائسنسنگ بیک اینڈ اسی ایونٹ ID سے ڈپلیکیٹ روکنے/بحالی کرے۔
ماحولیاتی متغیرات سے اڈاپٹر ترتیب دیں، کلید سورس کنٹرول اور شیل ہسٹری سے باہر رکھیں:
CUSTOM_LICENSING_KEY: 32–128 بے ترتیب بائٹس کی معیاری Base64 انکوڈنگ، Launch سے مطابقت رکھتی ہے۔CUSTOM_LICENSING_KEY_ID:key-1، یا آپ کا ترتیب کردہ کلید شناخت کنندہ۔CUSTOM_LICENSING_CONNECTION_REF: مماثل کنکشن حوالہ۔CUSTOM_LICENSING_ENVIRONMENT:sandboxیاlive۔CUSTOM_LICENSING_DATABASE: آپ کے چیک آؤٹ سے باہر نجی قابل تحریر SQLite پاتھ؛ دوبارہ آغاز کے بعد بھی محفوظ رکھیں۔CUSTOM_LICENSING_BACKEND: اوپر کے ہکس نافذ کرنے والا قابل درآمد ماڈیول۔CUSTOM_LICENSING_PORT: مقامی سننے کی پورٹ، طے شدہ18883۔
python server.py چلائیں۔ مقامی sandbox جانچ کے لیے Launch میں http://127.0.0.1:18883 ترتیب دیں اور loopback HTTP استثنا واضح طور پر فعال کریں۔ پروڈکشن میں HTTPS termination، عمل کی نگرانی، محفوظ ڈیٹا بیس بیک اپ اور اپنے بیک اینڈ کی SDK/رن ٹائم توثیق استعمال کریں۔ صرف واقعی معاون خریداری/فراہمی اقسام کا اعلان کریں؛ capabilities اسی مطابق بدلیں۔
بیک اینڈ مسئلہ درست ہونے کے بعد python server.py --retry-event ORIGINAL_EVENT_UUID مقامی طور پر وہی محفوظ پے لوڈ دوبارہ قطار میں ڈالتا ہے۔ Launch کے لائسنس کام صفحے پر بھی اسی اصل ایونٹ کی دوبارہ کوشش کریں۔ جواب بحال کرنے کے لیے ID نہ بدلیں یا وقت دوبارہ نہ بڑھائیں۔
مثال نقطہ آغاز ہے، پروڈکشن اہلیت نہیں۔ ورکر لیز 60 سیکنڈ ہے؛ ہک کال کا ٹائم آؤٹ اس سے کم رکھیں یا لیز تجدید کریں۔ live خریداری قبول کرنے سے پہلے نگرانی، گردش کے طریقے، سخت کاروباری/اسکیما جانچ اور تعیناتی کے عملی کنٹرول شامل کریں۔ انضمام رہنمائی اور OpenAPI پروٹوکول متعین کرتے ہیں۔ Launch حالت کے جواب کو محفوظ کوڈ چلانے کی اجازت کبھی نہ سمجھیں۔