نمبر اور قیمت ایک ساتھ منتخب کریں
دستیاب نمبروں کی تازہ تلاش سے منتخب کردہ ایک مخصوص نمبر خریدیں۔ منتخب اندراج کے info.uuid کو نمبر کی شناخت کے طور پر اور اسی اندراج کی price[].uuid قدروں میں سے ایک کو قیمت کی شناخت کے طور پر استعمال کریں۔ یہ روٹ مکمل محفوظ شدہ نمبر بھی قبول کرتا ہے، لیکن ملک، علاقے یا سابقے کی شناخت کسی نمبر کے انتخاب کا متبادل نہیں ہے۔
تلاش کرنے یا محفوظ شدہ قیمتیں پڑھنے سے کوئی نمبر مختص نہیں ہوتا اور نہ ہی اس کی قیمت مقرر رہنے کی ضمانت ملتی ہے۔ منتخب کردہ ابتدائی تنصیب کی قیمت، ماہانہ قیمت، آنے والی کال کے فی منٹ نرخ، شامل منٹوں اور چینلوں کے ساتھ اکاؤنٹ کی خریداری کی اجازتوں اور رجسٹریشن کی ضروریات کی تصدیق کریں۔ زیرِ جائزہ معاون میں ابتدائی بنیادی رقم، تنصیب اور ماہانہ قیمت کا مجموعہ ہے؛ منتخب پلان کے لیے فراہم کنندہ کے تمام مخصوص چارجز اور شرائط کی تصدیق ضروری ہے۔
حفاظتی جانچوں کے ساتھ خریداری کی درخواست 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 | اسے حل شدہ قیمت کی شناخت سے ملنا چاہیے۔ یہ فیلڈ فراہم کرنے سے قیمت کی پیشکش کی جانچیں فعال ہوتی ہیں؛ یہ بار بار درخواست بھیجنے پر عمل کے اعادے کو روکنے کی کلید نہیں ہے۔ |
| restore_quote_setup | ابتدائی تنصیب کی زیادہ سے زیادہ قابلِ قبول قیمت، ایک محدود اور غیر منفی عددی قدر کے طور پر۔ |
| restore_quote_monthly | زیادہ سے زیادہ قابلِ قبول ماہانہ قیمت، ایک محدود اور غیر منفی عددی قدر کے طور پر۔ |
| restore_quote_per_minute | آنے والی کال کا زیادہ سے زیادہ قابلِ قبول فی منٹ نرخ، ایک محدود اور غیر منفی عددی قدر کے طور پر۔ |
| restore_quote_channels | منتخب کردہ قیمت کے اختیار میں چینلوں کی عین صحیح عددی تعداد؛ یہ کسی مختلف چینل پلان کی درخواست نہیں ہے۔ |
جب بھی قیمت کی پیشکش کی شناخت فراہم کریں، اس کے تمام عددی فیلڈز بھی فراہم کریں۔ شناخت بدلنے، قیمت حد سے زیادہ ہونے، حد غائب یا غلط ہونے، چینلوں کی تعداد بدلنے یا قیمت کی پیشکش کا لاک مصروف ہونے پر، منتخب کرایہ فراہم کنندہ کو درخواست بھیجنے سے پہلے API کوڈ 409 واپس آتا ہے۔ موازنوں میں فلوٹنگ پوائنٹ کا معمولی فرق قابلِ قبول ہے؛ خود گول کی ہوئی قیمت کے بجائے پلان کی اصل دکھائی گئی قدریں استعمال کریں۔
یہ حفاظتی جانچیں پورے طریقۂ کار کو آزمائشی عمل یا ٹرانزیکشن نہیں بناتیں۔ ان جانچوں سے پہلے رجسٹریشن کی تلاش، شناخت کی فراہمی یا معاون کا دیگر کام ہو سکتا ہے۔ یہ بیرونی ذخیرے کو بھی منجمد نہیں کرتیں اور نہ ہی اکاؤنٹ کی سطح پر خریداری کی پابندیوں کی جگہ لیتی ہیں۔
رجسٹریشن اور فعالیت
ضرورت ہونے پر، RegistrationID فارم فیلڈ شامل کریں جس میں صارف کی ملکیت والے رجسٹریشن پروفائل کا UUID ہو۔ یہ اپ لوڈ کردہ ثبوت، سپلائر کے پتے یا علیحدہ شناختی اکائی کی شناخت نہیں ہے۔ معاون تصدیق شدہ اکاؤنٹ کے تحت پروفائل تلاش کرتا ہے اور غائب یا غیر دستیاب پروفائلز کو مسترد کرتا ہے۔
دستیاب نمبروں کے بعض معاونت یافتہ ذخیرے میں رجسٹریشن مکمل ہونے سے پہلے خریداری کی اجازت ہوتی ہے؛ دوسرے ذخیرے میں خریداری سے پہلے پروفائل ضروری ہوتا ہے۔ کیریئر کی مخصوص توثیق یا فراہمی پھر بھی درکار ہو سکتی ہے۔ کامیاب خریداری یا ابتدائی جانچ نہ ہونے کو رجسٹریشن سے استثنا یا فوری فعالیت نہ سمجھیں۔
جواب میں موجود ہونے کی صورت میں، registration_requirements ملک اور نمبر کی قسم کے مطابق منظم ضروریات کی تلاش کی نشاندہی کرتا ہے۔ قابلِ اطلاق ضروریات پوری کرنے کے لیے رجسٹریشن کی فہرست اور ثبوت جمع کرانے کا طریقۂ کار استعمال کریں۔ واپس آنے والا متن اور میٹاڈیٹا بذاتِ خود کسی پروفائل کی منظوری نہیں دیتے۔
پلان کی غیر اعلانیہ تبدیلی سے بچیں
پرانا کوآرڈینیٹر نمبر کے کیش شدہ ڈیٹا سے وہ قیمت اخذ کر سکتا ہے جو فراہم نہ کی گئی ہو۔ جب واضح طور پر فراہم کردہ قیمت کی شناخت اب موجود نہ ہو تو یہ کیش شدہ سابقے کے لیے اکاؤنٹ کی تازہ ترین قیمت بھی متبادل کے طور پر استعمال کر سکتا ہے، اور کیش میں موجود اجازت یافتہ قیمت کے انتخاب کو بدل سکتا ہے۔ صارف کے منظور کردہ پلان کے انتخاب کے لیے ان متبادل طریقوں پر انحصار نہ کریں۔
منتخب کردہ قیمت واضح طور پر فراہم کریں اور قیمت کی پیشکش کی حفاظتی جانچ کے مطابق فیلڈز بھی دیں۔ قیمت کی پیشکش کی شناخت کی حفاظتی جانچ، کرایے کی درخواست بھیجنے سے پہلے کسی دوسری شناخت کے متبادل استعمال کو مسترد کرتی ہے۔ پرانی قیمت کے تنازعے کے بعد تلاش تازہ کریں اور نئے انتخاب کی منظوری حاصل کریں؛ خریداری زبردستی مکمل کرنے کے لیے حفاظتی جانچیں نہ ہٹائیں۔
ہر طریقۂ کار کے لیے نمبر مختص رکھنے کی کوئی یقینی مدت یا ہر جگہ نافذ کیش کی مدت نہیں ہے۔ عمل کے دوران نمبر کی دستیابی، اکاؤنٹ کی قیمت کی حدوں اور خریداری کی پالیسیوں کو دوبارہ جانچا جاتا ہے، لیکن ہر فراہم کنندہ کا مکمل مخصوص رویہ ابھی زیرِ جائزہ ہے۔
اعلیٰ درجے کی ترتیبات: اکاؤنٹ کی طے شدہ روٹنگ
خریداری میں اکاؤنٹ کی موجودہ وائس منزلیں، خرابی کی صورت میں متبادل منزلیں، SMS کی منزل اور اوریجینیشن ٹرنک کی ترجیح وراثت میں آ سکتی ہیں۔ آرڈر دینے سے پہلے ان طے شدہ ترتیبات کا جائزہ لیں؛ روٹنگ کے اختیارات فراہم نہ کرنے سے یہ ضمانت نہیں ملتی کہ نمبر کی کوئی ترتیب مقرر نہیں ہو گی۔ زیرِ جائزہ معاون خودکار تجدید کو طے شدہ طور پر فعال کرتا ہے۔
| اختیار | قدر متعین کرنے کا طریقہ |
|---|---|
| uri, uri2, uri3 | فراہم نہ کی گئی قدریں اکاؤنٹ کی متعلقہ طے شدہ قدریں اختیار کرتی ہیں۔ واضح طور پر دی گئی خالی قدریں، طے شدہ قدر اختیار کرنے کے بجائے معاون کی قدر صاف کر دیتی ہیں۔ منتخب روٹنگ موڈ کے مطابق درست منزلیں استعمال کریں۔ |
| smsuri | قدر فراہم نہ کرنے پر اکاؤنٹ کی SMS منزل اختیار کی جاتی ہے؛ واضح طور پر دی گئی خالی قدر معاون میں اسے صاف کر دیتی ہے۔ |
| origintrunk | واضح طور پر فراہم کردہ، پہچانی گئی ٹرنک شناخت کو ترجیح ملتی ہے۔ ایسی قدر جس کا تعین نہ ہو سکے، خرابی پیدا کرنے کے بجائے اکاؤنٹ کی ترجیح یا پرانی طے شدہ قدر اختیار کر سکتی ہے۔ |
| 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 جواب کا اصل متن بھی پڑھیں۔ مقامی اطلاع، رجسٹریشن یا دوسری کارروائی ناکام ہونے سے پہلے بیرونی فراہم کنندہ کرایے کی درخواست قبول کر سکتا ہے۔ مقامی ذخیرے سے بعض تخصیصات میں ڈیٹابیس ٹرانزیکشنز استعمال ہوتی ہیں، لیکن بیرونی فراہم کنندہ کے آرڈرز کو ہر صورت میں واپس پلٹانے کا کوئی طریقہ نہیں ہے۔ اس کوآرڈینیٹر میں کلائنٹ کی ایسی کوئی کلید نہیں جو بار بار درخواست بھیجنے پر عمل کے اعادے کو روکے۔
دوبارہ کوشش کرنے سے پہلے ریکارڈ کی مطابقت کی تصدیق کریں
- درخواست ایک بار جمع کرانے سے پہلے منظور شدہ نمبر، قیمت اور قیمت کی پیشکش کی زیادہ سے زیادہ حدیں اپنی ایپلیکیشن کے آرڈر ریکارڈ میں محفوظ رکھیں۔
- درخواست کے بعد اسی اکاؤنٹ کے خریدے گئے نمبروں کا ذخیرہ اور نمبر کی تفصیلات پڑھیں، ٹائم آؤٹ یا خرابی کے بعد بھی۔
- اگر نمبر موجود ہو تو خریداری کی ایک اور درخواست دینے کے بجائے اس کی قیمت، تجدید، روٹنگ اور رجسٹریشن کی حالت کی تصدیق کریں۔
- اگر نتیجہ اب بھی غیر یقینی ہو تو دوبارہ کوشش کرنے سے پہلے معاونت کی ٹیم سے فراہم کنندہ کے آرڈر اور اکاؤنٹ کی بلنگ کی مطابقت کی تصدیق کرائیں۔ صرف خرابی کا پیغام یا پرانے لاگ میں کامیابی کا نشان کافی ثبوت نہیں ہے۔
- ملکیت اور فعالیت کی تصدیق ہونے کے بعد اکاؤنٹ کی معمول کی روٹنگ جانچیں اور سروس کی آزمائشیں مکمل کریں۔