Sale callbacks से अपनी शॉप की बिक्री को लिंक क्लिक से जोड़ें, और “Custom (API)” से अपने टूल का लाइव डेटा अपने पेज पर भेजें।
LinkHarbor बाहर से भी डेटा स्वीकार करता है। दो मामलों के लिए अपने secrets वाले ख़ास एंडपॉइंट हैं – इनके लिए आपको API key की ज़रूरत नहीं: sale callbacks आपकी शॉप की बिक्री बताते हैं, ताकि आप अपने आँकड़ों में देख सकें कि किस लिंक से कमाई हुई। “Custom (API)” इंटीग्रेशन आपके अपने टूल का लाइव डेटा विजेट के रूप में आपके पेज पर लाता है और पुश नोटिफ़िकेशन शुरू कर सकता है।
Sale callbacks: बिक्री जोड़ना
क्लिक ID (lt_click_id), जोड़ना और रिपोर्टिंग आपस में कैसे जुड़े हैं, यह कन्वर्ज़न और बिक्री जोड़ना में बताया गया है; यहाँ आपको डेवलपरों के लिए सभी फ़ील्ड और जवाब मिलेंगे। संक्षेप में: जब LinkHarbor किसी गिने गए क्लिक को http या https लक्ष्य पर रीडायरेक्ट करता है, तो वह lt_click_id पैरामीटर जोड़ता है; आपकी शॉप इसे याद रखती है और ख़रीदारी के बाद वापस भेजती है।
Callback secret बनाएँ
- “Callback और API” खोलें
- “Callback secrets” कार्ड में “+ नया secret बनाएँ” पर क्लिक करें
- चाहें तो एक नाम दें, जैसे “शॉप callback”, और “secret बनाएँ” पर क्लिक करें
- Secret तुरंत कॉपी करें – यह सिर्फ़ एक बार दिखाया जाता है
- कौन
- मालिक और एडमिन, Creator Pro से। Creator Free में लिखा होता है “Callback secrets Creator Pro से उपलब्ध हैं।”
- कितने
- हर वर्कस्पेस में ज़्यादा से ज़्यादा 5 secrets, जैसे हर शॉप के लिए एक।
- “बदलें”
- नाम बदलें और स्थिति “सक्रिय” या “निष्क्रिय” पर सेट करें। निष्क्रिय secret के साथ API callbacks अस्वीकार करता है।
- “↺ बदलें”
- एक नया secret बनाता है; पुराना तुरंत काम करना बंद कर देता है।
- “आख़िरी callback:”
- दिखाता है कि secret आख़िरी बार सफलतापूर्वक कब इस्तेमाल हुआ।
Callback भेजें
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 keys; वैल्यू टेक्स्ट (500 अक्षर तक), कोई संख्या, true/false या null होती हैं; नेस्ट किए गए ऑब्जेक्ट और सूचियाँ अस्वीकार होती हैं |
| workspace_id | नहीं | आपकी वर्कस्पेस ID; इसके साथ API अज्ञात click_id को 403 की जगह 404 के रूप में बताता है |
| जवाब | मतलब |
|---|---|
| 200 {"ok":true,"conversion_id":…} | बिक्री सहेजी गई – या यह order_id पहले से सहेजी गई थी (तब मौजूदा कन्वर्ज़न की ID) |
| 403 forbidden | ग़लत secret या सिग्नेचर, या अज्ञात click_id (workspace_id के बिना) |
| 403 secret_inactive | Secret “निष्क्रिय” पर सेट है |
| 404 not_found | अज्ञात click_id (सिर्फ़ workspace_id और वैध secret के साथ) |
| 413 request_too_large | बॉडी 1 MB से बड़ी है |
| 422 validation_failed | कोई फ़ील्ड नहीं है या अमान्य है, जैसे meta में बहुत लंबी या नेस्ट की गई वैल्यू |
| 429 rate_limited | आपके IP पते से प्रति मिनट 120 से ज़्यादा callbacks |
वैकल्पिक सिग्नेचर
Secret के अलावा आप X-Callback-Signature हेडर भी भेज सकते हैं। इसमें sha256= और hex में raw बॉडी का HMAC-SHA256 सिग्नेचर होता है। Key ख़ुद secret नहीं, बल्कि बाइनरी रूप में उसका SHA-256 हैश है। अगर आप यह हेडर भेजते हैं, तो इसका सही होना ज़रूरी है – वरना callback अस्वीकार हो जाता है।
<?php
$body = json_encode($payload);
$key = hash('sha256', getenv('LH_CALLBACK_SECRET'), true); // secret का बाइनरी हैश
$sig = 'sha256=' . hash_hmac('sha256', $body, $key);
// हेडर: X-Callback-Secret और X-Callback-Signature: $sig, बॉडी: $body बिक्री कहाँ दिखती है
बताई गई बिक्री आपके आँकड़ों में कन्वर्ज़न के रूप में दिखती है, देखें कन्वर्ज़न और बिक्री जोड़ना। API से आप इन्हें read:stats के साथ /v1/stats/…/conversions/breakdown के तहत पढ़ते हैं।
Custom (API): आपका अपना लाइव डेटा
“Custom (API)” इंटीग्रेशन से HTTP अनुरोध भेज सकने वाला कोई भी प्रोग्राम – गेम सर्वर प्लगइन, बॉट, cron स्क्रिप्ट – LinkHarbor को डेटा भेज सकता है। यह आपके पेज पर एक लाइव विजेट बन जाता है, और पुश नियम आपके फ़ॉलोअर्स को सूचित कर सकते हैं।
जोड़ें
- वर्कस्पेस में “इंटीग्रेशन” खोलें
- “Custom (API)” चुनें और एक नाम डालें
- जुड़ने के बाद डायलॉग “Ingest URL” और “Secret” (“Secret दिखाएँ” के साथ) दिखाता है
- दोनों को अपने टूल में सहेजें
इंटीग्रेशन Creator Pro से उपलब्ध हैं। Ingest URL और secret सिर्फ़ मालिक और एडमिन देख सकते हैं, बाद में इंटीग्रेशन के विवरण व्यू में भी। डिस्कनेक्ट करके फिर से जोड़ने पर नया secret बनता है। इंटीग्रेशन आम तौर पर कैसे जोड़ें, यह इंटीग्रेशन जोड़ें में बताया गया है।
डेटा भेजें
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
- वैकल्पिक key, जो दोहरी प्रोसेसिंग रोकती है। अगर वही event_id फिर भेजी जाती है, तो LinkHarbor duplicate: true के साथ जवाब देता है और कुछ नहीं करता।
- data
- पुश टेक्स्ट के प्लेसहोल्डर के लिए वैल्यू, जैसे {player}। ज़्यादा से ज़्यादा 40 keys, सिर्फ़ सरल वैल्यू।
- state
- विजेट की पूरी स्थिति। यह पिछली स्थिति को पूरी तरह बदल देती है। type game_server (गेम सर्वर कार्ड) या status (स्टेटस कार्ड) होता है।
Authorization: Bearer की जगह आप secret X-LinkHarbor-Secret हेडर में भी भेज सकते हैं। हर IP पते से प्रति मिनट 120 कॉल की अनुमति है। चाहें तो आप बॉडी साइन करें: X-LinkHarbor-Signature हेडर में sha256= और secret को key बनाकर raw बॉडी का HMAC-SHA256 सिग्नेचर होता है। अगर आप इसे भेजते हैं, तो इसका सही होना ज़रूरी है।
| जवाब | मतलब |
|---|---|
| 200 {"ok":true,…} | इवेंट सहेजा गया, जानी-पहचानी event_id के लिए duplicate: true के साथ |
| 400 invalid_json | बॉडी कोई JSON ऑब्जेक्ट नहीं है |
| 401 invalid_secret | ग़लत secret या अज्ञात ingest URL |
| 401 signature_invalid | X-LinkHarbor-Signature बॉडी से मेल नहीं खाता |
| 413 request_too_large | बॉडी 64 KB से बड़ी है |
| 422 validation_failed | बॉडी में न event है न state |
| 429 rate_limited | आपके IP पते से प्रति मिनट 120 से ज़्यादा कॉल |
यह भी आपके काम आ सकता है
कुछ नहीं मिला?
हमें बताएँ कि आपको क्या चाहिए, और हमारी सपोर्ट टीम ख़ुद आपकी मदद करेगी।