SMS डिलीवरी इंस्पेक्टर

सर्वर सहायता नया API टेस्टिंग

अपने ही नंबर के इनबाउंड-SMS वेबहुक को एक कैप्चर URL पर भेजें, खुद को एक संदेश भेजें, और देखें कि आपके प्रोवाइडर ने वास्तव में क्या डिलीवर किया: पार्स किया गया बॉडी, हेडर (credential हेडर [redacted] के रूप में), उपयोग में सिग्नेचर स्कीम, और दोबारा चलाने योग्य curl कमांड। यह तब आपकी अपनी इंटीग्रेशन डीबग करने के लिए है जब संदेश कैरियर तक पहुँचता है पर आपके हैंडलर तक नहीं।

गोपनीयता: कैप्चर किए गए अनुरोध Mutqan सर्वर पर दो घंटे रखे जाते हैं और फिर हटा दिए जाते हैं, जबकि कैप्चर URL स्वयं 24 घंटे तक चलता रहता है। आपके लिए कोई मेलबॉक्स या पता नहीं बनाया जाता। Authorization जैसे क्रेडेंशियल हेडर कभी संग्रहित नहीं होते। व्यक्तिगत डेटा वाला प्रोडक्शन ट्रैफ़िक इस पर न भेजें।
टूल लोड हो रहा है…

वेबहुक क्या है?

वेबहुक वह HTTP रिक्वेस्ट है जो कोई सर्विस आपके रजिस्टर किए URL पर किसी घटना पर भेजती है — भुगतान सेटल हुआ, मैसेज डिलीवर हुआ, बिल्ड पूरा हुआ — ताकि आपका सिस्टम पोलिंग के बजाय घटनाओं पर प्रतिक्रिया दे। इसे टेस्ट करने का मतलब है जो वास्तव में भेजा गया उसे कैप्चर करना (मेथड, हेडर, बॉडी), रिट्राई और क्रम जाँचना, और उस सिग्नेचर को सत्यापित करना जो साबित करता है कि कॉल भेजने वाले से ही आई है।

सुरक्षा नोट: वेबहुक एंडपॉइंट एक सार्वजनिक URL है जिस पर कोई भी पोस्ट कर सकता है। भेजने वाले के सिग्नेचर (आमतौर पर कच्ची बॉडी पर HMAC) को कॉन्स्टेंट-टाइम तुलना से सत्यापित करें, पुराने टाइमस्टैम्प अस्वीकार करें, और पेलोड को अविश्वसनीय इनपुट मानें।

गाइड पढ़ें: API टेस्टिंग क्या है? REST API कैसे टेस्ट करें

SMS डिलीवरी इंस्पेक्टर कैसे इस्तेमाल करें

  1. «कैप्चर URL बनाएँ» दबाएँ और मिला हुआ पता कॉपी करें।
  2. अपने प्रोवाइडर कंसोल में, उस URL को अपने नंबर के इनबाउंड-मैसेज वेबहुक के रूप में सेट करें।
  3. अपने ही नंबर पर एक टेक्स्ट संदेश भेजें।
  4. डिलीवरी यहाँ दिखेगी — बॉडी, हेडर और सिग्नेचर जाँचने के लिए उसे खोलें।
  5. अपने हैंडलर को जो मिला उससे तुलना करें और देखें कि दोनों कहाँ अलग होते हैं।
आपका संदेश आपके प्रोवाइडर पर आपके अपने नंबर तक जाता है; कैप्चर URL तक सिर्फ़ प्रोवाइडर का HTTP कॉलबैक पहुँचता है, और यही यह पेज आपको दिखाता है।
  • आप आपका अपना नंबर
  • आपका SMS प्रोवाइडर जैसे Twilio
  • कैप्चर सर्विस कैप्चर URL
  • यह पेज
  1. 1 यह पेज से कैप्चर सर्विस तक: कैप्चर URL बनाएँ
  2. 2 कैप्चर सर्विस से यह पेज तक: कॉपी करने के लिए कैप्चर URL जवाब https://www.mutqansoft.sa/hooks/AbC123xYz
  3. 3 आप से आपका SMS प्रोवाइडर तक: इसे अपने नंबर के इनबाउंड-मैसेज वेबहुक के रूप में सेट करें Twilio पर: «A message comes in»
  4. 4 आप से आपका SMS प्रोवाइडर तक: अपने ही नंबर पर टेक्स्ट भेजें
  5. 5 आपका SMS प्रोवाइडर से कैप्चर सर्विस तक: इनबाउंड संदेश POST करता है फ़ॉर्म-एन्कोडेड, JSON नहीं, X-Twilio-Signature के साथ From=%2B966500000000&Body=test&MessageSid=SM…
  6. 6 यह पेज से कैप्चर सर्विस तक: नई डिलीवरी देखता है
  7. 7 कैप्चर सर्विस से यह पेज तक: डिलीवरी यहाँ दिखती है जवाब बॉडी, हेडर और सिग्नेचर — अपने हैंडलर को जो मिला उससे तुलना के लिए

परिणाम: कोई नंबर आवंटित नहीं होता और आपकी ओर से कोई संदेश प्राप्त नहीं किया जाता।

कैप्चर की गई हर डिलीवरी आने के दो घंटे बाद हटा दी जाती है; कैप्चर URL 24 घंटे चलता रहता है।

SMS डिलीवरी इंस्पेक्टर की खूबियाँ

  • कैप्चर URL जिसे आप सीधे अपने प्रोवाइडर के इनबाउंड-मैसेज वेबहुक फ़ील्ड में पेस्ट कर सकते हैं
  • पूरा रिक्वेस्ट व्यू: पार्स किया बॉडी, हेडर (credential हेडर [redacted] के रूप में दिखते हैं, signature हेडर बने रहते हैं), क्वेरी स्ट्रिंग, मेथड और सटीक बाइट आकार
  • फ़ॉर्म-एन्कोडेड और JSON दोनों पेलोड पार्स होते हैं, इसलिए Twilio-शैली और JSON-शैली दोनों साफ़ पढ़े जाते हैं
  • सिग्नेचर हेडर सामने लाए जाते हैं और स्कीम पहचानी जाती है, ताकि पता चले आपके कोड को क्या सत्यापित करना है
  • उसी डिलीवरी के लिए दोबारा चलाने योग्य curl कमांड, अपनी एंडपॉइंट पर फिर से चलाने हेतु
  • कोई नंबर आवंटित नहीं होता और आपकी ओर से कोई संदेश प्राप्त नहीं किया जाता — यह आपके अपने प्रोवाइडर का कॉलबैक जाँचता है

SMS डिलीवरी इंस्पेक्टर का उदाहरण

पता लगाना कि इनबाउंड SMS हैंडलर तक क्यों नहीं पहुँचा

इनपुट:

प्रोवाइडर वेबहुक → https://www.mutqansoft.sa/hooks/AbC123xYz
अपने नंबर पर एक SMS भेजें

आउटपुट:

POST /  application/x-www-form-urlencoded  412 बाइट
X-Twilio-Signature: q1VZ…
बॉडी: From=%2B966500000000&Body=test&MessageSid=SM…
→ फ़ॉर्म-एन्कोडेड, JSON नहीं — JSON की अपेक्षा करने वाला हैंडलर इसे खाली पार्स करेगा

SMS डिलीवरी इंस्पेक्टर के बारे में अक्सर पूछे जाने वाले सवाल

क्या इससे मुझे कोई फ़ोन नंबर मिलता है?

नहीं, और यह जानबूझकर है। यह उस नंबर के लिए आपके अपने प्रोवाइडर द्वारा भेजा गया वेबहुक जाँचता है जिसे आप पहले से नियंत्रित करते हैं। यह कोई नंबर आवंटित नहीं करता और किसी और की ओर से कोई संदेश प्राप्त नहीं करता।

मैं अपने प्रोवाइडर को इस पर कैसे भेजूँ?

यहाँ एक कैप्चर URL बनाएँ, फिर उसे अपने प्रोवाइडर कंसोल में अपने नंबर के इनबाउंड-मैसेज वेबहुक फ़ील्ड में पेस्ट करें — Twilio पर «A message comes in», Vonage पर इनबाउंड SMS कॉलबैक, और अन्य जगह उसके समकक्ष। खुद को एक टेक्स्ट भेजें और डिलीवरी यहाँ दिखेगी।

यह कौन-से प्रोवाइडर समझता है?

पेलोड और हेडर किसी भी भेजने वाले के लिए दिखाए जाते हैं। सामान्य प्रोवाइडरों, जिनमें Twilio शामिल है, के सिग्नेचर स्कीम पहचाने जाते हैं, और रॉ हेडर हमेशा दिखाया जाता है ताकि ज़रूरत पड़ने पर आप स्वयं सत्यापित कर सकें।

मेरा संदेश मेरी अपनी एंडपॉइंट तक क्यों नहीं पहुँचा?

सामान्य कारण यहाँ दिखते हैं: आपके हैंडलर से non-2xx उत्तर, ऐसा सिग्नेचर जिसे आपका कोड अस्वीकार करता है, फ़ॉर्म-एन्कोडेड बॉडी को JSON मानकर पार्स करना, या ऐसा URL जिस तक प्रोवाइडर पहुँच नहीं सकता। कैप्चर URL पर जो आता है उसकी तुलना अपने हैंडलर को मिले से करें।

कैप्चर की गई रिक्वेस्ट कितने समय रखी जाती हैं?

दो घंटे। कैप्चर URL स्वयं 24 घंटे चलता रहता है ताकि प्रोवाइडर पर सेट किया गया वेबहुक काम करता रहे, पर उसके द्वारा कैप्चर की गई हर डिलीवरी — इनबाउंड SMS में जिसमें फ़ोन नंबर और अक्सर एक वेरिफ़िकेशन कोड होता है — आने के दो घंटे बाद हटा दी जाती है। व्यक्तिगत डेटा वाला प्रोडक्शन ट्रैफ़िक इस पर न भेजें।

तकनीकी नोट्स

इस टूल में जानबूझकर कोई प्रोवाइडर इंटीग्रेशन नहीं है। यह कोई फ़ोन नंबर आवंटित नहीं करता, कोई प्रोवाइडर क्रेडेंशियल नहीं रखता और किसी के लिए कोई संदेश प्राप्त नहीं करता: यह उस HTTP कॉलबैक को कैप्चर करता है जो आपका अपना प्रोवाइडर उस नंबर के लिए करता है जिसे आप पहले से नियंत्रित करते हैं। इससे यह गुमनाम रूप से संदेश पाने का साधन नहीं, बल्कि आपकी इंटीग्रेशन डीबग करने का टूल बना रहता है।

कैप्चर किया गया अनुरोध आने के दो घंटे बाद हटा दिया जाता है, और प्रति URL सीमित संख्या रखी जाती है। URL उनसे ज़्यादा चलता है — 24 घंटे, ताकि प्रोवाइडर पर सेट किया वेबहुक काम करता रहे — पर पेलोड नहीं, क्योंकि इनबाउंड SMS बॉडी में फ़ोन नंबर और अक्सर एक चालू वेरिफ़िकेशन कोड होता है। चूँकि कैप्चर URL पर भेजी गई हर चीज़ उसे रखने वाले के लिए पठनीय है, व्यक्तिगत डेटा वाला प्रोडक्शन ट्रैफ़िक उस पर नहीं भेजना चाहिए।

संदर्भ

  • RFC 9421: HTTP Message SignaturesIETF · 2024HTTP मैसेज पर हस्ताक्षर करने का मानक तरीका ताकि रिसीवर उनके स्रोत और अखंडता की जाँच कर सके — आधुनिक वेबहुक सिग्नेचर का आधार।
  • RFC 2104: HMAC: Keyed-Hashing for Message AuthenticationIETF · 1997HMAC संरचना: एक सीक्रेट की और हैश फ़ंक्शन मिलकर मैसेज ऑथेंटिकेशन कोड कैसे बनाते हैं।
  • OWASP Cheat Sheet Series: REST SecurityOWASP FoundationREST API के सुरक्षा नियम: HTTPS, हर रिक्वेस्ट पर ऑथेंटिकेशन, इनपुट वैलिडेशन, सुरक्षित एरर रिस्पॉन्स, रेट लिमिटिंग।
  • RFC 5322: Internet Message FormatIETF · 2008ई-मेल मैसेज और पते (local-part@domain) का सिंटैक्स जिसके विरुद्ध वैलिडेटर परखे जाते हैं।