डिजिटल वस्तुओं का थोक मंच

डिजिटल कोड डिलीवरी ऑटोमेट कैसे करें

डिजिटल कोड डिलीवरी ऑटोमेट करने का मतलब है मैन्युअल ऑर्डर प्रोसेसिंग को एक पाइपलाइन से रिप्लेस करना: कस्टमर पेमेंट आपके सप्लायर को API कॉल ट्रिगर करता है, सप्लायर कोड रिटर्न करता है, और आपका सिस्टम सेकंडों में कस्टमर को डिलीवर करता है। छह कंपोनेंट हैं: पेमेंट इवेंट लिसनर, सप्लायर API ऑर्डर कॉल, रिस्पॉन्स से कोड पार्सिंग, कस्टमर डिलीवरी (ईमेल/पेज/मैसेज), async ऑर्डर के लिए पोलिंग फॉलबैक, और फेल्ड ऑर्डर के लिए एरर हैंडलिंग। एक काम करती ऑटोमेशन बिना किसी मैन्युअल स्टेप के असीमित ऑर्डर प्रोसेस करती है।

डिजिटल कोड डिलीवरी ऑटोमेट कैसे करें


संक्षिप्त उत्तर

डिजिटल कोड डिलीवरी ऑटोमेट करने का मतलब है मैन्युअल ऑर्डर प्रोसेसिंग को एक पाइपलाइन से रिप्लेस करना: कस्टमर पेमेंट आपके सप्लायर को API कॉल ट्रिगर करता है, सप्लायर कोड रिटर्न करता है, और आपका सिस्टम सेकंडों में कस्टमर को डिलीवर करता है। छह कंपोनेंट हैं: पेमेंट इवेंट लिसनर, सप्लायर API ऑर्डर कॉल, रिस्पॉन्स से कोड पार्सिंग, कस्टमर डिलीवरी (ईमेल/पेज/मैसेज), async ऑर्डर के लिए पोलिंग फॉलबैक, और फेल्ड ऑर्डर के लिए एरर हैंडलिंग। एक काम करती ऑटोमेशन बिना किसी मैन्युअल स्टेप के असीमित ऑर्डर प्रोसेस करती है।


परिभाषा: ऑटोमेटेड डिजिटल कोड डिलीवरी एक फुलफिलमेंट पाइपलाइन है जो बिना मानवीय हस्तक्षेप के कस्टमर पेमेंट को कोड डिलीवरी से कनेक्ट करती है — API ऑर्डर क्रिएशन, ऑर्डर स्टेटस पोलिंग और प्रोग्रामेटिक कोड डिस्ट्रीब्यूशन उपयोग करके।


मुख्य निष्कर्ष: मैन्युअल कोड डिलीवरी स्केल पर फेल होती है: यह देरी, मानवीय एरर और सपोर्ट ओवरहेड लाती है। ऑटोमेशन तीनों हटा देती है। एक डेवलपर एक सिस्टम बना सकता है जो दस ऑर्डर जितनी मेहनत से हजारों डेली ऑर्डर हैंडल करे।


यह गाइड किसके लिए है

  • डेवलपर्स जो डिजिटल गुड्स स्टोर बना रहे हैं और डिलीवरी पाइपलाइन इम्प्लीमेंट करनी है
  • स्टोर ऑपरेटर जो मैन्युअली कोड डिलीवर कर रहे हैं और ऑटोमेट करना चाहते हैं
  • Telegram बॉट डेवलपर जो ऑटोमेटेड टॉप-अप और गिफ्ट कार्ड डिलीवरी चाहते हैं

मैन्युअल डिलीवरी स्केल पर क्यों फेल होती है

समस्या मैन्युअल ऑटोमेटेड
डिलीवरी स्पीड घंटे (या रात भर) सेकंड
ऑर्डर वॉल्यूम कैपेसिटी ~50/दिन प्रति व्यक्ति असीमित
मानवीय एरर रिस्क कॉपी-पेस्ट गलतियां खत्म
सपोर्ट ओवरहेड उच्च (मिसिंग कोड क्वेरी) कम
ऑफ-आवर्स कवरेज कोई नहीं हमेशा-ऑन
स्केलेबिलिटी कॉस्ट लीनियर (अधिक ऑर्डर = अधिक स्टाफ) नियर-जीरो मार्जिनल कॉस्ट

20 ऑर्डर/दिन पर मैन्युअल काम करता है। 200 पर बॉटलनेक बनता है। 2,000 पर टूट जाता है।


ऑटोमेटेड डिलीवरी पाइपलाइन

[कस्टमर पेमेंट करता है]
      │
      ▼
[पेमेंट गेटवे वेबहुक/कॉलबैक फायर]
      │
      ▼
[ऑर्डर हैंडलर: पेमेंट वैलिडेट करें, ऑर्डर रिक्वेस्ट बनाएं]
      │
      ▼
[FoxReload: POST /api/orders/ → order_id मिला]
      │
      ├─[GET /api/orders/{id} poll करें]──▶ [completed → items[].externalData से कोड पार्स करें]
      │                      │
      │                      ▼
      │              [कस्टमर को कोड डिलीवर करें]
      │              (ईमेल / ऑर्डर पेज / बॉट मैसेज)
      │
      └─[एरर]───▶ [लॉग एरर, ops को अलर्ट, जरूरत हो तो रिफंड]

कंपोनेंट 1: पेमेंट इवेंट लिसनर

आपकी फुलफिलमेंट पाइपलाइन तब शुरू होती है जब पेमेंट कन्फर्म होती है — जब इनिशिएट होती है तब नहीं।

नियम:

  • केवल कन्फर्म्ड पेमेंट इवेंट पर फुलफिलमेंट ट्रिगर करें (ऑर्डर क्रिएशन पर नहीं)
  • Idempotency हैंडल करें: अगर एक ही पेमेंट इवेंट दो बार फायर हो तो दो ऑर्डर न बनाएं
  • वैलिडेट करें कि पेमेंट अमाउंट एक्सपेक्टेड प्रोडक्ट कॉस्ट से मैच करता है

अधिकांश पेमेंट गेटवे (Stripe, PayPal, आदि) पेमेंट कन्फर्म होने पर वेबहुक इवेंट भेजते हैं। सही इवेंट टाइप सब्सक्राइब करें:

  • Stripe: payment_intent.succeeded
  • PayPal: PAYMENT.CAPTURE.COMPLETED

क्लाइंट साइड (ब्राउज़र) से सप्लायर API कॉल कभी ट्रिगर न करें। हमेशा अपने सर्वर से।


कंपोनेंट 2: सप्लायर API ऑर्डर कॉल

पेमेंट कन्फर्म होने के बाद, सप्लायर का ऑर्डर क्रिएशन एंडपॉइंट कॉल करें:

POST /api/orders/
Content-Type: application/json
X-API-Key: {api_key}

{
  "items": [{"itemId": "product_01k...", "quantity": 1}]
}

FoxReload के साथ: itemId प्रोडक्ट का ID है (कैटलॉग से मिला)। ऑर्डर क्रिएशन के बाद GET /api/orders/{order_id} पोल करें — जब status == "completed" हो, items[].externalData में कोड मिलते हैं।

रिस्पॉन्स पर क्या करें:

रिस्पॉन्स स्टेटस एक्शन
completed items[].externalData से कोड पार्स करें और कस्टमर को डिलीवर करें
processing / active / paid पोलिंग जारी रखें (हर 3-5s, max 30 attempts)
failed / cancelled एरर लॉग करें, कस्टमर को चार्ज न करें, ops को अलर्ट करें
Timeout / नेटवर्क एरर एक्सपोनेंशियल बैकऑफ के साथ रिट्राई — पहले GET /api/orders/ से existing ऑर्डर check करें

कंपोनेंट 3: कोड पार्सिंग

API रिस्पॉन्स आमतौर पर स्ट्रक्चर्ड फॉर्मेट में कोड रखता है। डिलीवर करने से पहले पार्स और वैलिडेट करें:

{
  "status": "completed",
  "items": [
    {
      "itemId": "product_01k...",
      "externalData": ["XXXXX-YYYYY-ZZZZZ"],
      "error": null
    }
  ]
}

वैलिडेट करें:

  • status completed है (active, processing, paid नहीं)
  • items[].externalData array non-empty है
  • items[].error null है (per-item error check करें)

टॉप-अप प्रोडक्ट के लिए, रिस्पॉन्स में कोड की बजाय डिलीवरी कन्फर्मेशन हो सकती है।


कंपोनेंट 4: कस्टमर डिलीवरी

कोड उस चैनल से डिलीवर करें जो आपके कस्टमर उपयोग करते हैं:

चैनल इम्प्लीमेंटेशन कब उपयोग करें
ऑर्डर कन्फर्मेशन पेज रिडायरेक्ट के बाद सक्सेस URL पर कोड दिखाएं वेब स्टोर
ट्रांजेक्शनल ईमेल कोड + इंस्ट्रक्शन के साथ ईमेल भेजें सभी चैनल बैकअप के रूप में
Telegram बॉट मैसेज bot.sendMessage() कोड के साथ Telegram बॉट
इन-अकाउंट वॉलेट यूज़र के अकाउंट सेक्शन में कोड स्टोर करें यूज़र अकाउंट वाले प्लेटफॉर्म
SMS Twilio / लोकल SMS गेटवे हाई-वैल्यू ऑर्डर, मोबाइल-फर्स्ट मार्केट

कोड के साथ हमेशा शामिल करें:

  • कोड खुद (कॉपी-फ्रेंडली फॉर्मेट)
  • प्रोडक्ट नाम और डिनॉमिनेशन
  • एक्टिवेशन इंस्ट्रक्शन या लिंक
  • आपका सपोर्ट कॉन्टेक्ट

कंपोनेंट 5: Async ऑर्डर के लिए पोलिंग

FoxReload में webhooks नहीं हैं। जो ऑर्डर तुरंत completed नहीं हुए उनके लिए GET /api/orders/{order_id} poll करें जब तक terminal status न मिले:

import time, requests

BASE = "https://public-api.foxreload.com"
HEADERS = {"X-API-Key": "YOUR_KEY"}

def poll_until_done(order_id, max_attempts=30, interval_s=3):
    for _ in range(max_attempts):
        r = requests.get(f"{BASE}/api/orders/{order_id}", headers=HEADERS)
        order = r.json()
        if order["status"] == "completed":
            codes = [item["externalData"] for item in order["items"]]
            return {"status": "completed", "codes": codes}
        if order["status"] in ("failed", "cancelled"):
            return {"status": order["status"], "items": order.get("items")}
        time.sleep(interval_s)
    raise TimeoutError(f"Order {order_id} still pending after {max_attempts} attempts")

नियम:

  • Terminal statuses: completed, failed, cancelled — polling बंद करें
  • 429 error पर exponential backoff apply करें
  • Retry से पहले GET /api/orders/?statuses=active,paid,processing से existing order check करें (double-buy रोकें)

कंपोनेंट 6: एरर हैंडलिंग

एरर पाथ को हैप्पी पाथ जितना ही डिज़ाइन चाहिए।

एरर परिदृश्य सही रिस्पॉन्स
पेमेंट कन्फर्म, API कॉल फेल 3 बार तक रिट्राई; retry से पहले GET /api/orders/ से existing order check करें; सब फेल हों तो ops को नोटिफाई
API failed / cancelled स्टेटस रिटर्न करे डिलीवर न करें; कस्टमर को चार्ज न करें; अगर पहले से चार्ज हो तो रिफंड
items[].externalData empty फेलर मानें; empty array डिलीवर न करें
BalanceNotEnough error Balance top up करें (POST /api/topups/crypto/); customer को "temporarily unavailable" दिखाएं
डुप्लीकेट पेमेंट इवेंट Duplicate check: GET /api/orders/ से same item का pending order देखें — अगर exist करे तो नया order मत बनाएं

मॉनिटरिंग और अलर्टिंग

मॉनिटरिंग सेट अप करें:

मेट्रिक अलर्ट थ्रेशोल्ड
सप्लायर API रिस्पॉन्स टाइम >3s एवरेज पर अलर्ट
ऑर्डर फेलर रेट किसी भी 30-मिनट विंडो में >2% पर अलर्ट
रिसेलर अकाउंट बैलेंस टिपिकल डेली स्पेंड के 20% पर अलर्ट
अनडिलीवर्ड ऑर्डर (pending >10 मिनट) तुरंत अलर्ट
पोलिंग timeout (30+ attempts) तुरंत अलर्ट; ops को manual review के लिए flag करें

इंटीग्रेशन चेकलिस्ट

  • पेमेंट कन्फर्मेशन हैंडलर इम्प्लीमेंट और टेस्ट किया (आपके पेमेंट गेटवे का webhook)
  • Duplicate check: retry से पहले GET /api/orders/ से existing ऑर्डर check
  • X-API-Key हेडर के साथ POST /api/orders/ ऑर्डर कॉल इम्प्लीमेंट
  • पोलिंग लूप इम्प्लीमेंट: GET /api/orders/{id} हर 3-5s, max 30 attempts
  • सभी terminal स्टेटस हैंडल: completed, failed, cancelled
  • items[].externalData से कोड पार्सिंग — non-empty validate करें
  • आपके प्राइमरी चैनल के लिए कस्टमर डिलीवरी इम्प्लीमेंट
  • डिलीवरी में कोड + प्रोडक्ट नाम + एक्टिवेशन इंस्ट्रक्शन + सपोर्ट कॉन्टेक्ट
  • अलर्टिंग के साथ एरर लॉगिंग
  • लो-बैलेंस अलर्ट के साथ बैलेंस मॉनिटरिंग
  • isMock: true से test करें
  • एक्सपेक्टेड पीक वॉल्यूम पर लोड टेस्ट

अक्सर पूछे जाने वाले प्रश्न

कोड डिलीवरी ऑटोमेट करने के लिए मिनिमम टेक स्टैक क्या चाहिए? सर्वर-साइड रनटाइम (Node.js, Python, PHP, Go), HTTP क्लाइंट लाइब्रेरी, ऑर्डर और डिलीवरी स्टेट स्टोर करने के लिए डेटाबेस, और वेबहुक सपोर्ट वाला पेमेंट गेटवे। कोई स्पेशलाइज्ड फ्रेमवर्क नहीं चाहिए।

मैन्युअल की तुलना में ऑटोमेटेड डिलीवरी कितनी तेज़ है? ऑटोमेटेड डिलीवरी पेमेंट कन्फर्मेशन के सेकंडों में होती है। मैन्युअल में मिनट से घंटे लग सकते हैं। कस्टमर के लिए डिजिटल प्रोडक्ट के लिए कुछ मिनट से ज़्यादा इंतजार सिस्टम एरर जैसा लगता है।

अगर ऑर्डर के दौरान सप्लायर API डाउन हो तो क्या होता है? रिट्राई लॉजिक इम्प्लीमेंट करें (एक्सपोनेंशियल बैकऑफ के साथ 2-3 रिट्राई)। अगर सब फेल हों, ऑर्डर मैन्युअल रिव्यू के लिए फ्लैग करें, ऑपरेशंस टीम को नोटिफाई करें और सप्लायर से संपर्क करें। फेल्ड ऑर्डर के लिए कस्टमर को चार्ज न करें।

उस कस्टमर को कैसे हैंडल करें जो कहता है कि उसे कोड नहीं मिला? अपने डिलीवरी लॉग चेक करें (आपको टाइमस्टैम्प, ऑर्डर ID और कस्टमर आइडेंटिफायर के साथ हर कोड डिलीवरी लॉग करनी चाहिए)। अगर आपके सिस्टम ने डिलीवरी कन्फर्म की है, कस्टमर को कोड दिखाएं। अगर डिलीवरी फेल हुई, अपने लॉग से नई डिलीवरी जारी करें।

FoxReload में order completion कैसे पता चलता है? FoxReload polling-based है — webhooks नहीं हैं। GET /api/orders/{order_id} हर 3-5 seconds poll करें जब तक completed, failed, या cancelled status न मिले। ज्यादातर orders seconds में complete होते हैं। Customer notifications के लिए अपना notification layer build करें (email, Telegram, in-app) — यह आपका own infra है।

क्या Telegram बॉट पर ऑटोमेटेड डिलीवरी चला सकते हैं? हाँ। डिलीवरी पाइपलाइन वही है — फर्क केवल यह है कि कोड ईमेल की बजाय bot.sendMessage() से भेजा जाता है। सप्लायर API कॉल और एरर हैंडलिंग एक जैसी है।


FoxReload API से ऑटोमेटेड डिलीवरी बनाएं

FoxReload के API में ऑर्डर क्रिएशन, ऑर्डर स्टेटस पोलिंग, और कोड डिलीवरी (items[].externalData) शामिल हैं — पूरी तरह ऑटोमेटेड डिजिटल गुड्स डिलीवरी पाइपलाइन के लिए।

API एक्सेस पाएं | API डॉक्युमेंटेशन | कैटलॉग ब्राउज़ करें

संबंधित गाइड:

FoxReload API access लें

संबंधित लेख