Разработчици

POST/v3/rentnumber/{number_id}/{price_id}

Закупуване на избран телефонен номер

Подайте един одобрен номер и цена със защитни проверки на офертата, след което сверете собствеността и активирането, преди да опитате отново.

На тази страница
  1. Изберете номера и цената заедно
  2. Изпратете защитена заявка за покупка с POST
  3. Регистрация и активиране
  4. Избягвайте незабелязана подмяна на плана
  5. Разширени настройки: маршрутизиране по подразбиране за акаунта
  6. Отговор
  7. Грешки и неясни резултати
  8. Сверете състоянието, преди да опитате отново

Изберете номера и цената заедно

Закупете един конкретен номер, избран от ново търсене на налични номера. Използвайте полето на избрания запис info.uuid като идентификатор на номера и една от стойностите на същия запис в price[].uuid като идентификатор на цената. Маршрутът приема и пълния съхранен номер, но идентификатор на държава, област или префикс не замества избора на номер.

Търсенето или прочитането на запазени цени не резервира номер и не фиксира цената му. Потвърдете избраната цена за първоначално свързване, месечната цена, тарифата за входяща минута, включените минути и канали, както и разрешенията за покупки и изискванията за регистрация за акаунта. В прегледаната помощна функция първоначалната базова сума е сборът от цената за първоначално свързване и месечната цена; за избрания план трябва да бъдат потвърдени всички специфични за доставчика такси и условия.

Изпратете защитена заявка за покупка с POST

Използвайте активиран API акаунт през HTTPS от разрешен изходен IP адрес. Следващата команда извършва покупка, а не изготвя оферта или пробно изпълнение. Задайте всяка променлива от един и същ актуален избор на номер и цена. Полетата за горни граници запазват стария префикс 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_IDUUID на избрания номер от търсенето или пълният съхранен номер. Един номер на заявка.
PRICE_IDUUID на цената, свързана с избрания номер и вашия акаунт. Винаги го подавайте изрично.
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 и други кодове на доставчика или акаунтаНеуспех при доставчика, при локалната обработка или поради приложимите правила. Тези кодове не са универсално доказателство, че не е извършена покупка или начисляване на такса.

Прочетете действителното тяло на API отговора, както и HTTP статуса. Външен доставчик може да приеме наемането, преди локалното уведомяване, регистрацията или друга обработка да завърши с неуспех. Някои операции по разпределяне на номера от локалните наличности използват транзакции в базата данни, но няма универсален механизъм за отмяна на поръчките към външни доставчици. Този координатор няма клиентски ключ за идемпотентност.

Сверете състоянието, преди да опитате отново

  1. Запазете одобрените номер, цена и горни граници на офертата в записа за поръчката във вашето приложение, преди да подадете заявката еднократно.
  2. След заявката прочетете списъка със закупените номера и подробностите за номера за същия акаунт, включително след изтичане на времето за изчакване или грешка.
  3. Ако номерът съществува, проверете цената му, подновяването, маршрутизирането и състоянието на регистрацията, вместо да подавате нова заявка за покупка.
  4. Ако резултатът все още е неясен, поискайте от екипа по поддръжката да свери поръчката при доставчика и начисленията по акаунта, преди да опитате отново. Само съобщение за грешка или флаг за успех в стария журнал не е достатъчно доказателство.
  5. След като собствеността и активирането бъдат потвърдени, извършете обичайните проверки на маршрутизирането и тестове на услугите за акаунта.