سیل کال بیکس سے اپنی شاپ کی فروخت کو لنک کلکس سے ملائیں، اور “Custom (API)” سے اپنے ٹولز کا لائیو ڈیٹا اپنے صفحے پر بھیجیں۔
LinkHarbor باہر سے بھی ڈیٹا قبول کرتا ہے۔ دو صورتوں کے لیے اپنے سیکرٹس والے مخصوص اینڈپوائنٹس ہیں – ان کے لیے آپ کو API کلید کی ضرورت نہیں: سیل کال بیکس آپ کی شاپ کی فروخت کی اطلاع دیتے ہیں، تاکہ آپ اپنے اعداد و شمار میں دیکھ سکیں کہ کس لنک سے آمدنی ہوئی۔ “Custom (API)” انٹیگریشن آپ کے اپنے ٹولز کا لائیو ڈیٹا ویجٹ کے طور پر آپ کے صفحے پر لاتی ہے اور پش نوٹیفکیشنز بھی بھیج سکتی ہے۔
سیل کال بیکس: فروخت کا ملان
کلک ID (lt_click_id)، ملان اور رپورٹنگ آپس میں کیسے جڑتے ہیں، یہ کنورژنز اور فروخت کی نسبت میں بیان کیا گیا ہے؛ یہاں آپ کو ڈویلپرز کے لیے تمام فیلڈز اور جوابات ملیں گے۔ مختصراً: جب LinkHarbor کسی گنے گئے کلک کو http یا https ہدف پر ری ڈائریکٹ کرتا ہے تو وہ پیرامیٹر lt_click_id ساتھ لگا دیتا ہے؛ آپ کی شاپ اسے یاد رکھتی ہے اور خریداری کے بعد واپس بھیجتی ہے۔
کال بیک سیکرٹ بنائیں
- “کال بیک اور API” کھولیں
- “کال بیک سیکرٹس” کارڈ میں “+ نیا سیکرٹ بنائیں” پر کلک کریں
- چاہیں تو اسے نام دیں، مثلاً “شاپ کال بیک”، اور “سیکرٹ بنائیں” پر کلک کریں
- سیکرٹ فوراً کاپی کریں – یہ صرف ایک بار دکھایا جاتا ہے
- کون
- مالکان اور ایڈمنز، Creator Pro سے۔ Creator Free میں لکھا ہوتا ہے “کال بیک سیکرٹس Creator Pro سے دستیاب ہیں۔”
- کتنے
- ہر ورک اسپیس میں 5 تک سیکرٹس، مثلاً ہر شاپ کے لیے ایک۔
- “ترمیم کریں”
- نام تبدیل کریں اور اسٹیٹس کو “فعال” یا “غیر فعال” پر سیٹ کریں۔ غیر فعال سیکرٹ کے ساتھ API کال بیکس مسترد کر دیتا ہے۔
- “↺ تبدیل کریں”
- نیا سیکرٹ بناتا ہے؛ پرانا فوراً کام کرنا بند کر دیتا ہے۔
- “آخری کال بیک:”
- دکھاتا ہے کہ سیکرٹ آخری بار کب کامیابی سے استعمال ہوا۔
کال بیک بھیجیں
curl -X POST https://dock.at-harbor.com/v1/callbacks/sale \
-H "Content-Type: application/json" \
-H "X-Callback-Secret: $LH_CALLBACK_SECRET" \
-d '{
"click_id": "3f1c2a9e-8d4b-4a51-9f0e-6b7c1d2e3f40",
"order_id": "A-10023",
"amount": "49.90",
"currency": "EUR",
"occurred_at": "2026-11-01T10:15:00Z"
}'
# → {"ok":true,"conversion_id":123} | فیلڈ | ضروری | مطلب |
|---|---|---|
| click_id | ہاں | lt_click_id کی قدر (10–36 حروف) |
| order_id | ہاں | آپ کا آرڈر نمبر (1–128 حروف)؛ ہر آرڈر نمبر ہر ورک اسپیس میں صرف ایک بار گنا جاتا ہے |
| amount | ہاں | اعشاری عدد کے طور پر رقم، مثلاً "49.90"؛ منفی قدریں نہیں |
| currency | ہاں | تین حرفی کوڈ کے طور پر کرنسی، مثلاً EUR؛ API چھوٹے حروف کو بدل دیتا ہے |
| occurred_at | نہیں | خریداری کا وقت (ISO 8601) |
| amount_base_minor, base_currency, fx_rate | نہیں | سب سے چھوٹی اکائی میں تبدیل شدہ رقم، بنیادی کرنسی اور شرح تبادلہ، اگر آپ کئی کرنسیوں میں فروخت کرتے ہیں |
| meta | نہیں | ہموار آبجیکٹ کی شکل میں آپ کا اپنا اضافی ڈیٹا: 1–64 حروف والی 50 تک کلیدیں؛ قدریں متن (500 حروف تک)، عدد، true/false یا null ہوتی ہیں؛ اندرونی آبجیکٹس اور فہرستیں مسترد کر دی جاتی ہیں |
| workspace_id | نہیں | آپ کی ورک اسپیس ID؛ اس کے ساتھ API نامعلوم click_id کو 403 کے بجائے 404 کے طور پر بتاتا ہے |
| جواب | مطلب |
|---|---|
| 200 {"ok":true,"conversion_id":…} | فروخت محفوظ ہو گئی – یا یہ order_id پہلے ہی محفوظ تھا (تب موجودہ کنورژن کی ID) |
| 403 forbidden | غلط سیکرٹ یا دستخط، یا نامعلوم click_id (workspace_id کے بغیر) |
| 403 secret_inactive | سیکرٹ “غیر فعال” پر سیٹ ہے |
| 404 not_found | نامعلوم click_id (صرف workspace_id اور درست سیکرٹ کے ساتھ) |
| 413 request_too_large | باڈی 1 MB سے بڑی ہے |
| 422 validation_failed | کوئی فیلڈ موجود نہیں یا غلط ہے، مثلاً meta میں کوئی قدر جو بہت لمبی یا اندرونی ہو |
| 429 rate_limited | آپ کے IP پتے سے فی منٹ 120 سے زیادہ کال بیکس |
اختیاری دستخط
سیکرٹ کے علاوہ آپ X-Callback-Signature ہیڈر بھی بھیج سکتے ہیں۔ اس میں sha256= اور خام باڈی کا hex میں HMAC-SHA256 دستخط ہوتا ہے۔ کلید خود سیکرٹ نہیں بلکہ بائنری شکل میں اس کا SHA-256 ہیش ہے۔ اگر آپ ہیڈر بھیجیں تو اسے درست ہونا چاہیے – ورنہ کال بیک مسترد ہو جاتا ہے۔
<?php
$body = json_encode($payload);
$key = hash('sha256', getenv('LH_CALLBACK_SECRET'), true); // binary hash of the secret
$sig = 'sha256=' . hash_hmac('sha256', $body, $key);
// Headers: X-Callback-Secret and X-Callback-Signature: $sig, body: $body فروخت کہاں نظر آتی ہے
رپورٹ کی گئی فروخت آپ کے اعداد و شمار میں کنورژنز کے طور پر نظر آتی ہے، دیکھیں کنورژنز اور فروخت کو منسوب کرنا۔ API کے ذریعے آپ انہیں read:stats کے ساتھ /v1/stats/…/conversions/breakdown کے تحت پڑھتے ہیں۔
Custom (API): آپ کا اپنا لائیو ڈیٹا
“Custom (API)” انٹیگریشن کے ساتھ کوئی بھی پروگرام جو HTTP ریکویسٹس بھیج سکے – گیم سرور پلگ اِن، بوٹ، cron اسکرپٹ – LinkHarbor کو ڈیٹا بھیج سکتا ہے۔ یہ آپ کے صفحے پر لائیو ویجٹ بن جاتا ہے، اور پش قواعد آپ کے فالوورز کو اطلاع دے سکتے ہیں۔
جوڑیں
- ورک اسپیس میں “انٹیگریشنز” کھولیں
- “Custom (API)” چنیں اور ایک نام درج کریں
- جڑنے کے بعد ڈائیلاگ “انجیسٹ URL” اور “سیکرٹ” (“سیکرٹ دکھائیں” کے ساتھ) دکھاتا ہے
- دونوں اپنے ٹول میں محفوظ کریں
انٹیگریشنز Creator Pro سے دستیاب ہیں۔ انجیسٹ URL اور سیکرٹ صرف مالکان اور ایڈمنز دیکھ سکتے ہیں، بعد میں انٹیگریشن کی تفصیلی نظر میں بھی۔ منقطع کر کے دوبارہ جوڑنے سے نیا سیکرٹ بنتا ہے۔ انٹیگریشنز عام طور پر کیسے جوڑی جاتی ہیں، یہ انٹیگریشن جوڑیں میں بیان کیا گیا ہے۔
ڈیٹا بھیجیں
curl -X POST "$INGEST_URL" \
-H "Authorization: Bearer $INGEST_SECRET" \
-H "Content-Type: application/json" \
-d '{
"event": "player.joined",
"event_id": "join-2026-11-01T20:01:02Z-steve",
"data": { "player": "Steve" },
"state": {
"type": "game_server",
"name": "Survival SMP",
"online": true,
"players_online": 3,
"players_max": 20
}
}'
# → {"ok":true,"event_id":4711,"duplicate":false,"event_type":"player.joined"} - event
- آزادانہ ایونٹ کا نام، مثلاً player.joined۔ یہ چھوٹے حروف میں بدل دیا جاتا ہے اور یہی وہ نام ہے جس پر پش قواعد ردعمل دیتے ہیں۔ event کے بغیر ایونٹ کا نام state.updated ہوتا ہے۔
- event_id
- اختیاری کلید جو دوہری پروسیسنگ روکتی ہے۔ اگر وہی event_id دوبارہ بھیجی جائے تو LinkHarbor، duplicate: true سے جواب دیتا ہے اور کچھ نہیں کرتا۔
- data
- پش متن میں پلیس ہولڈرز کی قدریں، مثلاً {player}۔ 40 تک کلیدیں، صرف سادہ قدریں۔
- state
- ویجٹ کی مکمل حالت۔ یہ پچھلی حالت کو پوری طرح بدل دیتی ہے۔ type کی قدر game_server (گیم سرور کارڈ) یا status (اسٹیٹس کارڈ) ہوتی ہے۔
Authorization: Bearer کے بجائے آپ سیکرٹ X-LinkHarbor-Secret ہیڈر میں بھی بھیج سکتے ہیں۔ ہر IP پتے سے فی منٹ 120 کالز کی اجازت ہے۔ چاہیں تو باڈی پر دستخط کریں: X-LinkHarbor-Signature ہیڈر میں sha256= اور سیکرٹ کو کلید بنا کر خام باڈی کا HMAC-SHA256 دستخط ہوتا ہے۔ اگر آپ اسے بھیجیں تو اسے درست ہونا چاہیے۔
| جواب | مطلب |
|---|---|
| 200 {"ok":true,…} | ایونٹ محفوظ ہو گیا، معلوم event_id کے لیے duplicate: true کے ساتھ |
| 400 invalid_json | باڈی JSON آبجیکٹ نہیں ہے |
| 401 invalid_secret | غلط سیکرٹ یا نامعلوم انجیسٹ URL |
| 401 signature_invalid | X-LinkHarbor-Signature باڈی سے میل نہیں کھاتا |
| 413 request_too_large | باڈی 64 KB سے بڑی ہے |
| 422 validation_failed | باڈی میں نہ event ہے نہ state |
| 429 rate_limited | آپ کے IP پتے سے فی منٹ 120 سے زیادہ کالز |
یہ بھی آپ کے کام آ سکتا ہے
کچھ نہیں ملا؟
ہمیں بتائیں کہ آپ کو کیا چاہیے، ہماری سپورٹ ٹیم ذاتی طور پر آپ کی مدد کرے گی۔