मुख्य सामग्री पर जाएं

Webhooks

अपने अकाउंट पर इवेंट होने पर रियल-टाइम HTTP POST नोटिफिकेशन प्राप्त करने के लिए webhook URL कॉन्फ़िगर करें।

समर्थित इवेंट

इवेंटविवरण
order.filledएनर्जी ऑर्डर पूरा हुआ
order.failedएनर्जी ऑर्डर विफल
deposit.confirmedडिपॉज़िट बैलेंस में क्रेडिट हुआ
invoice.paidइनवॉइस भुगतान प्राप्त
invoice.delegatedइनवॉइस एनर्जी डेलिगेट की गई
smart_mode.transferSmart Mode ट्रांसफर प्रोसेस हुआ
withdrawal.completedनिकासी भेजी गई

Webhook पेलोड

{
  "event": "order.filled",
  "data": {
    "order_id": 1234,
    "address": "TAddress...",
    "energy_amount": 65000,
    "price_trx": "2.75"
  },
  "timestamp": "2026-03-04T12:00:00Z"
}

आवश्यकताएं

  • URL को HTTPS का उपयोग करना चाहिए
  • 10 सेकंड के भीतर 2xx स्टेटस के साथ रिस्पॉन्ड करना चाहिए
  • विफल डिलीवरी एक्सपोनेंशियल बैकऑफ़ के साथ 3 बार तक पुनः प्रयास की जाती हैं

Webhook सिग्नेचर सत्यापित करना

प्रत्येक webhook अनुरोध में HMAC-SHA256 सिग्नेचर वाला X-Webhook-Signature हेडर शामिल होता है। इसका उपयोग यह सत्यापित करने के लिए करें कि अनुरोध TronRental से है। सिग्नेचर आपके webhook सीक्रेट (जब आप अपना webhook कॉन्फ़िगर करते हैं तब लौटाया जाता है) का उपयोग करके रॉ अनुरोध बॉडी पर कंप्यूट किया जाता है।
import hmac
import hashlib

def verify_webhook(payload: bytes, signature: str, secret: str) -> bool:
    expected = hmac.new(
        secret.encode(),
        payload,
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, signature)

# In your webhook handler:
# payload = request.body  (raw bytes)
# signature = request.headers["X-Webhook-Signature"]
# secret = "whsec_abc123..."  (from configure response)
# if not verify_webhook(payload, signature, secret):
#     return Response(status_code=401)
Webhook डेटा प्रोसेस करने से पहले हमेशा सिग्नेचर सत्यापित करें। टाइमिंग अटैक को रोकने के लिए कॉन्स्टेंट-टाइम कम्पैरिज़न (hmac.compare_digest / crypto.timingSafeEqual) का उपयोग करें।
Webhook URL localhost, 127.0.0.1, या अन्य प्राइवेट एड्रेस की ओर पॉइंट नहीं कर सकते।