प्राधिकरण

सुरक्षित API विधियों के लिए HMAC-SHA256 हस्ताक्षर के साथ प्राधिकरण आवश्यक है।

आवश्यक हेडर

हर अनुरोध में तीन आवश्यक हेडर होने चाहिए:

X-Timestamp
Unix timestamp सेकंड में
X-Signature
HMAC-SHA256 अनुरोध हस्ताक्षर hex प्रारूप में
X-Client-Id
आपका मर्चेंट ID

हस्ताक्षर बनाना

हस्ताक्षर timestamp और अनुरोध के मुख्य भाग से बनाया जाता है।

प्रारूप:

{timestamp}.{canonicalBody}

प्रारूप विवरण

timestamp
वर्तमान Unix time सेकंड में
canonicalBody
JSON अनुरोध का मुख्य भाग canonical प्रारूप में बदला हुआ

हस्ताक्षर एल्गोरिदम:

  • वर्तमान Unix time सेकंड में प्राप्त करें
  • अनुरोध का मुख्य भाग प्राप्त करें
  • JSON को canonical प्रारूप में बदलें
  • स्ट्रिंग बनाएं: timestamp + "." + canonicalBody
  • api_secret का उपयोग करके HMAC-SHA256 से स्ट्रिंग पर हस्ताक्षर करें
  • अनुरोध हेडर में timestamp और हस्ताक्षर भेजें

महत्वपूर्ण आवश्यकताएं:

  • api_secret अनुरोध में नहीं भेजना चाहिए
  • api_secret केवल मर्चेंट सर्वर पर ही संग्रहित होना चाहिए
  • हर अनुरोध के लिए हस्ताक्षर अलग से गणना किया जाना चाहिए
  • X-Timestamp हस्ताक्षर बनाए जाने के समय से मेल खाना चाहिए
  • API को भेजा गया अनुरोध मुख्य भाग हस्ताक्षर की गणना वाले मुख्य भाग से बिल्कुल मेल खाना चाहिए
  • मुख्य भाग के बिना अनुरोधों के लिए इस प्रारूप में स्ट्रिंग पर हस्ताक्षर करें: {timestamp}

उदाहरण:

प्राधिकरण त्रुटियाँ

401 Invalid X-Timestamp

{
  "status": 401,
  "message": "Invalid X-Timestamp"
}

401 Expired X-Timestamp

{
  "status": 401,
  "message": "Expired X-Timestamp"
}

401 Invalid X-Signature

{
  "status": 401,
  "message": "Invalid X-Signature"
}

401 Invalid token

{
  "status": 401,
  "message": "Invalid token"
}

401 Merchant secret not configured

{
  "status": 401,
  "message": "Merchant secret not configured"
}

500 Internal Server Error

{
  "status": 500,
  "message": "Internal Server Error"
}