नंबर और मूल्य एक साथ चुनें
उपलब्ध नंबरों की नई खोज से चुना गया एक विशिष्ट नंबर खरीदें। चुनी हुई प्रविष्टि के info.uuid को नंबर ID के रूप में और उसी प्रविष्टि के price[].uuid मानों में से किसी एक को मूल्य ID के रूप में इस्तेमाल करें। यह रूट पूरा सहेजा हुआ नंबर भी स्वीकार करता है, लेकिन देश, क्षेत्र या प्रीफ़िक्स की ID किसी नंबर के चयन का विकल्प नहीं है।
खोज करने या सहेजी हुई मूल्य-सूची पढ़ने से न तो नंबर आरक्षित होता है और न उसका मूल्य स्थिर होता है। चुने हुए सेटअप मूल्य, मासिक मूल्य, आने वाली कॉल की प्रति मिनट दर, शामिल मिनटों और चैनलों के साथ-साथ खाते की खरीद अनुमतियों और पंजीकरण आवश्यकताओं की पुष्टि करें। समीक्षा किए गए हेल्पर में शुरुआती आधार राशि सेटअप और मासिक मूल्य का योग है; चुने हुए प्लान के लिए प्रदाता-विशिष्ट सभी शुल्कों और शर्तों की पुष्टि करना आवश्यक है।
सुरक्षा जाँचों वाला खरीद अनुरोध POST करें
अनुमत स्रोत IP पते से HTTPS पर सक्षम API खाते का इस्तेमाल करें। नीचे दिया गया कमांड खरीद करता है; यह मूल्य पूछने या बिना खरीद किए परीक्षण करने के लिए नहीं है। हर वैरिएबल को उसी नए नंबर/मूल्य चयन से सेट करें। अधिकतम सीमा वाले फ़ील्ड पुराने restore_quote_ प्रीफ़िक्स को बनाए रखते हैं; वर्तमान पोर्टल भी विशिष्ट नंबरों की सुरक्षा जाँचों वाली खरीद के लिए इनका इस्तेमाल करता है।
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--data-urlencode "restore_quote_price_id=$PRICE_ID" \
--data-urlencode "restore_quote_setup=$SETUP_PRICE" \
--data-urlencode "restore_quote_monthly=$MONTHLY_PRICE" \
--data-urlencode "restore_quote_per_minute=$PER_MINUTE_PRICE" \
--data-urlencode "restore_quote_channels=$CHANNELS" \
"https://api.multitel.net/v3/rentnumber/$NUMBER_ID/$PRICE_ID"दिखाए गए तरीके से फ़ॉर्म POST का इस्तेमाल करें। हेल्पर में JSON/विकल्प-रैपर की पार्सिंग भी है, लेकिन इस समीक्षा से मूल्य-प्रस्ताव और प्रदाता के सभी प्रसंस्करण पथों के लिए पूरी समानता स्थापित नहीं हुई है। खरीद के लिए GET का इस्तेमाल न करें, भले ही इस पुराने कोऑर्डिनेटर में अनुरोध विधि की कोई स्पष्ट सुरक्षा जाँच नहीं है।
| फ़ील्ड | अर्थ |
|---|---|
| NUMBER_ID | खोज से चुने गए नंबर का UUID, या पूरा सहेजा हुआ नंबर। हर अनुरोध में एक नंबर। |
| PRICE_ID | उस चुने हुए नंबर और आपके खाते से जुड़ा मूल्य UUID। इसे हमेशा स्पष्ट रूप से दें। |
| restore_quote_price_id | यह प्रसंस्करण में निर्धारित मूल्य ID से मेल खाना चाहिए। यह फ़ील्ड देने से मूल्य-प्रस्ताव की जाँचें सक्षम होती हैं; यह इडेम्पोटेंसी कुंजी नहीं है। |
| restore_quote_setup | स्वीकार्य अधिकतम सेटअप मूल्य, एक परिमित गैर-ऋणात्मक संख्यात्मक मान के रूप में। |
| restore_quote_monthly | स्वीकार्य अधिकतम मासिक मूल्य, एक परिमित गैर-ऋणात्मक संख्यात्मक मान के रूप में। |
| restore_quote_per_minute | आने वाली कॉल की स्वीकार्य अधिकतम प्रति मिनट दर, एक परिमित गैर-ऋणात्मक संख्यात्मक मान के रूप में। |
| restore_quote_channels | चुने हुए मूल्य विकल्प के चैनलों की सटीक पूर्णांक संख्या; यह किसी अलग चैनल प्लान का अनुरोध नहीं है। |
जब भी मूल्य-प्रस्ताव की मूल्य ID दें, उसके सभी संख्यात्मक फ़ील्ड भी दें। ID बदलने, मूल्य के अधिकतम सीमा से ऊपर होने, सीमा के गायब या अमान्य होने, चैनलों की संख्या बदलने या मूल्य-प्रस्ताव का लॉक व्यस्त होने पर चुने हुए किराया प्रदाता को अनुरोध भेजने से पहले API कोड 409 लौटता है। तुलनाओं में फ़्लोटिंग-पॉइंट की थोड़ी सहनशीलता की अनुमति है; स्वयं गोल किया हुआ मूल्य देने के बजाय प्लान के वास्तव में दिखाए गए मान इस्तेमाल करें।
ये सुरक्षा जाँचें पूरे कार्यप्रवाह को बिना वास्तविक कार्रवाई वाला परीक्षण या एक ट्रांज़ैक्शन नहीं बनातीं। इन जाँचों से पहले पंजीकरण खोज, पहचान का प्रावधान या हेल्पर के अन्य काम हो सकते हैं। ये बाहरी नंबर भंडार की स्थिति को स्थिर भी नहीं करतीं और खाते के स्तर पर लागू खरीद प्रतिबंधों की जगह नहीं लेतीं।
पंजीकरण और सक्रियण
आवश्यक होने पर RegistrationID फ़ॉर्म फ़ील्ड जोड़ें, जिसमें ग्राहक के स्वामित्व वाली पंजीकरण प्रोफ़ाइल का UUID हो। यह अपलोड किए गए प्रमाण, आपूर्तिकर्ता के पते या किसी अलग पहचान इकाई की ID नहीं है। हेल्पर प्रमाणित खाते के संदर्भ में प्रोफ़ाइल खोजता है और गायब या अनुपलब्ध प्रोफ़ाइल अस्वीकार करता है।
समर्थित नंबर भंडार के कुछ नंबर पंजीकरण पूरा होने से पहले खरीदे जा सकते हैं; अन्य नंबरों के लिए खरीद से पहले प्रोफ़ाइल आवश्यक है। वाहक-विशिष्ट सत्यापन या प्रावधान की आवश्यकता फिर भी हो सकती है। सफल खरीद या शुरुआती जाँच न होने का अर्थ पंजीकरण से छूट या तुरंत सक्रियण न समझें।
जहाँ मौजूद हो, प्रतिक्रिया का registration_requirements देश और नंबर के प्रकार के साथ संरचित आवश्यकताओं की खोज की पहचान करता है। लागू आवश्यकताएँ पूरी करने के लिए पंजीकरण सूची और प्रमाण कार्यप्रवाह का इस्तेमाल करें। लौटाया गया पाठ और मेटाडेटा अपने आप किसी प्रोफ़ाइल को स्वीकृति नहीं देते।
बिना बताए प्लान बदलने से बचें
पुराना कोऑर्डिनेटर कैश किए गए नंबर डेटा से छूटे हुए मूल्य का अनुमान लगा सकता है। स्पष्ट रूप से दी गई मूल्य ID के अब मौजूद न होने पर वह कैश किए गए प्रीफ़िक्स के लिए खाते के नवीनतम मूल्य का इस्तेमाल भी कर सकता है और कैश में अनुमत मूल्य के चयन को अपडेट कर सकता है। ग्राहक द्वारा स्वीकृत प्लान चुनने के लिए इन वैकल्पिक व्यवस्थाओं पर निर्भर न रहें।
चुना हुआ मूल्य स्पष्ट रूप से दें और उससे मेल खाते मूल्य-प्रस्ताव सुरक्षा फ़ील्ड भी दें। मूल्य-प्रस्ताव ID की सुरक्षा जाँच किराये का अनुरोध भेजने से पहले दूसरी ID के वैकल्पिक इस्तेमाल को अस्वीकार करती है। पुराने मूल्य के कारण टकराव होने पर खरीद जबरन कराने के लिए सुरक्षा जाँचें हटाने के बजाय खोज को ताज़ा करें और नए चयन की स्वीकृति लें।
हर प्रसंस्करण पथ के लिए न तो कोई गारंटीकृत आरक्षण अवधि है और न ही हर जगह लागू कैश की वैधता अवधि। कार्यप्रवाह में नंबर की उपलब्धता, खाते की मूल्य सीमाओं और खरीद नीतियों की दोबारा जाँच होती है, लेकिन प्रदाता-विशिष्ट पूरे व्यवहार की समीक्षा अभी जारी है।
उन्नत: खाते की डिफ़ॉल्ट रूटिंग सेटिंग
खरीद में खाते के मौजूदा वॉइस गंतव्य, फ़ेलओवर गंतव्य, SMS गंतव्य और ओरिजिनेशन ट्रंक की प्राथमिकता विरासत में मिल सकती है। ऑर्डर देने से पहले इन डिफ़ॉल्ट सेटिंग की समीक्षा करें; रूटिंग विकल्प न देने से यह सुनिश्चित नहीं होता कि नंबर बिना कॉन्फ़िगरेशन के मिलेगा। समीक्षा किया गया हेल्पर डिफ़ॉल्ट रूप से स्वचालित नवीनीकरण सक्षम करता है।
| विकल्प | मान निर्धारित करने का व्यवहार |
|---|---|
| uri, uri2, uri3 | मान न देने पर खाते की संबंधित डिफ़ॉल्ट सेटिंग अपनाई जाती हैं। स्पष्ट रूप से खाली मान देने पर डिफ़ॉल्ट अपनाने के बजाय हेल्पर का मान साफ़ हो जाता है। चुने हुए रूटिंग मोड के अनुकूल वैध गंतव्य इस्तेमाल करें। |
| smsuri | मान न देने पर खाते का SMS गंतव्य अपनाया जाता है; स्पष्ट रूप से खाली मान देने पर हेल्पर में यह साफ़ हो जाता है। |
| origintrunk | पहचानी गई स्पष्ट ट्रंक ID को प्राथमिकता मिलती है। ऐसा मान जिसका निर्धारण न हो सके, त्रुटि देने के बजाय खाते की प्राथमिकता या पुराने डिफ़ॉल्ट का इस्तेमाल कर सकता है। |
| forward_destination, forwarding_destination, type | गैर-खाली रूटिंग-मोड उपनाम, प्राथमिकता के इसी क्रम में। अनुमानित संख्यात्मक मोड के बजाय खाते के रूटिंग कॉन्फ़िगरेशन से समर्थित मान इस्तेमाल करें। |
| RegistrationID | ग्राहक के दायरे तक सीमित पंजीकरण प्रोफ़ाइल की खोज; यह रूटिंग गंतव्यों से अलग है। |
| autorenew | डिफ़ॉल्ट मान 1 है। हेल्पर गैर-खाली मान की जाँच करता है, इसलिए इस खरीद फ़ील्ड के माध्यम से 0 देने पर नवीनीकरण भरोसेमंद ढंग से बंद नहीं होता। खाते के समर्थित नवीनीकरण प्रबंधन का इस्तेमाल करें और सहेजी गई सेटिंग सत्यापित करें। |
ये साझा हेल्पर के व्यवहार के नियम हैं, इस बात की गारंटी नहीं कि हर आपूर्तिकर्ता हर वैकल्पिक सेटिंग को एक ही तरह सहेजता है। वॉइस, वॉइसमेल, फ़ैक्स और SMS के अन्य पुराने फ़ील्ड मौजूद हैं, लेकिन उनकी पूरी प्रदाता-विशिष्ट समीक्षा अभी भी आवश्यक है। कॉल या संदेशों पर निर्भर होने से पहले खाते के कार्यप्रवाह के माध्यम से खरीदे गए नंबर का सहेजा हुआ कॉन्फ़िगरेशन सत्यापित करें।
प्रतिक्रिया
बिना जटिलता वाली खरीद का काल्पनिक उदाहरण; मान और सुविधाएँ चुने हुए प्लान के अनुसार बदलते हैं।
{
"status": {
"code": 200,
"msg": ""
},
"response": {
"number": "12025550123",
"price": {
"per_minute": "0.0100",
"free_minutes": "100",
"setup_price": "2.00",
"monthly_price": "4.00",
"channels": "2",
"overflow": "0"
},
"features": [
"voice"
],
"needs_registration": 0,
"registration_requirements": null
}
}कोऑर्डिनेटर अपने स्वयं के status.code/status.msg और response आवरण का इस्तेमाल करता है; इसमें status.results फ़ील्ड होने की गारंटी नहीं है। त्रुटि होने पर आम तौर पर प्रतिक्रिया सूची खाली होती है। सफलता मिलने पर लौटाए गए नंबर और मूल्य की जाँच करें, फिर खाते के नंबर भंडार और पंजीकरण स्थिति का मिलान करें। प्रदाता की स्वीकृति वास्तविक वॉइस, SMS या फ़ैक्स का परीक्षण नहीं है।
त्रुटियाँ और अनिश्चित परिणाम
| API कोड | अर्थ |
|---|---|
| 403 | खाते के मूल्य/खरीद प्रतिबंध, अनुपलब्ध मूल्य चयन या ऐसी पंजीकरण प्रोफ़ाइल जिस तक पहुँच न हो, प्रसंस्करण रोक सकते हैं। |
| 404 | नंबर, मूल्य या प्रीफ़िक्स का चयन गायब या अनुपलब्ध है। |
| 409 | नंबर पहले से सक्रिय है, मूल्य-प्रस्ताव की सुरक्षा जाँच अब मेल नहीं खाती या सुरक्षा जाँचों वाली किसी अन्य कार्रवाई ने लॉक ले रखा है। |
| 422 | समीक्षा किए गए पंजीकरण पथों में पंजीकरण जानकारी आवश्यक है, अधूरी है या उसका प्रावधान नहीं किया जा सकता। |
| 500 और प्रदाता/खाते के अन्य कोड | प्रदाता, स्थानीय प्रसंस्करण या नीति संबंधी विफलता। ये हर स्थिति में इस बात का प्रमाण नहीं हैं कि कोई खरीद नहीं हुई या कोई शुल्क नहीं लगा। |
HTTP स्थिति के साथ-साथ वास्तविक API बॉडी भी पढ़ें। स्थानीय सूचना, पंजीकरण या अन्य प्रसंस्करण के विफल होने से पहले बाहरी प्रदाता किराये का अनुरोध स्वीकार कर सकता है। स्थानीय नंबर भंडार के कुछ आवंटन डेटाबेस ट्रांज़ैक्शन इस्तेमाल करते हैं, लेकिन बाहरी प्रदाता के ऑर्डर को हर स्थिति में पूर्ववत करने की व्यवस्था नहीं है। इस कोऑर्डिनेटर में क्लाइंट इडेम्पोटेंसी कुंजी नहीं है।
दोबारा प्रयास करने से पहले मिलान करें
- एक बार अनुरोध भेजने से पहले स्वीकृत नंबर, मूल्य और मूल्य-प्रस्ताव की अधिकतम सीमाएँ अपने एप्लिकेशन के ऑर्डर रिकॉर्ड में रखें।
- अनुरोध के बाद उसी खाते के खरीदे गए नंबरों का भंडार और नंबर का विवरण पढ़ें, टाइमआउट या त्रुटि होने के बाद भी।
- अगर नंबर मौजूद है, तो एक और खरीद अनुरोध भेजने के बजाय उसके मूल्य, नवीनीकरण, रूटिंग और पंजीकरण स्थिति को सत्यापित करें।
- अगर परिणाम अब भी अनिश्चित है, तो दोबारा प्रयास करने से पहले सहायता टीम से प्रदाता के ऑर्डर और खाते की बिलिंग का मिलान कराएँ। केवल त्रुटि संदेश या पुराने लॉग का सफलता फ़्लैग पर्याप्त प्रमाण नहीं है।
- स्वामित्व और सक्रियण की पुष्टि होने के बाद खाते की सामान्य रूटिंग जाँचें और सेवा परीक्षण पूरे करें।