Bestil fra et præfiks
Brug denne operation, når præfikskataloget henviser dig til at bestille et antal numre fra et præfiks frem for at vælge enkelte ledige numre. Start med lande, områder eller delstater og præfikser. Gem præfiksidentifikatoren og prisplanen fra det samme opdaterede resultat. Hvis du har valgt et bestemt nummer fra en liste over ledige numre, skal du bruge Køb et valgt telefonnummer.
Denne anmodning kan købe numre og medføre omkostninger. Den er hverken et pristilbud, en reservation eller en prøvekørsel. Gennemgå oprettelsesgebyrer og månedlige gebyrer, minuttakster for indgående opkald, inkluderede minutter, kanaler, registreringskrav og kontoens købsgrænser, før du sender anmodningen. Et katalogresultat reserverer ikke numre og fastlåser ikke priser. Kontrol af kontoens finansiering kan ske før gennemførelsen; en fejl beviser ikke i sig selv, at der hverken er sket et køb eller en tilførsel af midler til kontoen.
Send købsanmodningen
Brug en aktiveret API-konto via HTTPS fra en tilladt kilde-IP-adresse. Angiv variablerne ud fra dit aktuelle valg i kataloget og din godkendte leveringskonfiguration. Følgende kommando køber ét nummer.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--data-urlencode 'quantity=1' \
--data-urlencode "price_id=$PRICE_ID" \
--data-urlencode "channels=$CHANNELS" \
--data-urlencode "reference=$ORDER_REFERENCE" \
--data-urlencode "uri=$VOICE_URI" \
"https://api.multitel.net/v3/order/$PREFIX_ID"Ovenfor vises POST med formulardata. Koordinatoren læser også et JSON-objekt, når Content-Type er application/json. JSON-felter tilsidesætter tilsvarende formular-/anmodningsfelter. Brug én kodning konsekvent; send ikke modstridende værdier i forespørgselsparametre og anmodningens indhold.
| Parameter | Betydning |
|---|---|
| præfiksidentifikator i stien | Det præfiks-UUID, som kataloget returnerer. En identifikator for et land, et område, en pris eller et enkelt nummer kan ikke bruges i stedet. |
| quantity | Send et heltal fra 1 til 100. Standardværdien er 1. Værdier under 1 ændres automatisk til 1; denne anmodning udfører ikke kun validering. Værdier over 100 udløser en undtagelse før denne koordinators normale svarhåndtering, så regn ikke med dens sædvanlige JSON-struktur ved dette ugyldige input. |
| price_id | Den valgte plans offentlige prisidentifikator. priceid er et ældre alias. En identifikator, der ikke matcher, kan medføre, at en anden plan vælges som reserve uden varsel; dette felt er ikke en streng prislås. Kontrollér kontoens prislofter før købet, og undersøg den returnerede pris bagefter. |
| channels | Antallet af kanaler i den valgte plan. Når der ikke bruges et nøjagtigt prismatch, kan et matchende kanalantal påvirke valget af en alternativ plan. Det garanterer ikke i sig selv, at en bestemt plan købes. |
| reference | Din betegnelse for købet eller gruppen af køb. Brug en kort ASCII-værdi på højst 255 bytes; længere værdier afkortes. Den gemmes ved vellykkede køb og medtages i callbacks, når den er angivet. Separate ordrer kan have samme reference. Den er ikke en idempotensnøgle: Hvis du sender denne operation igen, kan der købes og opkræves betaling for yderligere numre, selv med samme reference og identiske felter. |
| webhook_url | Valgfri callback-URL. Brug et HTTPS-endpoint, som du kontrollerer. Både HTTP- og HTTPS-URL'er godkendes af den nuværende grundlæggende validator; en ugyldig URL ignoreres i stedet for at få købet afvist. Et callback er en supplerende notifikation, ikke et bevis på, at en anmodning sikkert kan gentages. |
Indstillinger for levering og fornyelse
Vælg de samme leveringsindstillinger, som du ville bruge til nummeret i portalen. Dette er avancerede konfigurationsværdier, ikke anvisninger til at oprette en Hosted PBX eller en origination-trunk. Genbrug en kontokonfiguration, som du ved fungerer, og kontrollér det gemte nummer efter købet. Et accepteret køb bekræfter ikke i sig selv, at levering af tale eller SMS fungerer.
| Felt | Anvendelse og kompatibilitet |
|---|---|
| uri, uri2, uri3 | Primær og yderligere destinationer for taleopkald. Angiv destinationer, der passer til de valgte viderestillings- og ringetilstande. |
| forward_destination | Tilstand for viderestilling af taleopkald. forwarding_destination og type er ældre aliaser. Hvis feltet udelades, bruges standardværdien for det pågældende købsforløb; et tomt felt er ikke en pålidelig måde at fjerne en eksisterende præference på. |
| ring_type | Ringetilstand for taleopkald; ringtype er et alias. Brug en understøttet værdi fra kontoens nummerkonfiguration. |
| sms_forward_destination, sms_uri | Leveringstilstand og destination for SMS. Ældre aliaser er smsringtype og smsuri. Nogle købsforløb anvender kontoens standarddestination for SMS, når dette er tomt. Tilgængeligheden af SMS afhænger af det valgte nummer og dets aktivering/registrering. |
| overflow | Ønsket indstilling for overløb. Planens tilgængelighed og købsforløbet har betydning for, om den understøttes. |
| force_codec, force_dtmf | Ønskede codec- og DTMF-indstillinger. Ældre aliaser er forcecodec og forcedtmf. Kontrollér den gemte konfiguration for de valgte numre i beholdningen. |
| origination_trunk_id | En identifikator for en eksisterende trunkkonfiguration, hvor det er relevant. Dette opretter ikke en trunk. Hvis feltet udelades, bruges standardværdien for købsforløbet. |
| autorenew | Ønsket fornyelsesindstilling. Antag ikke, at 0 deaktiverer fornyelse: Nogle købsforløb behandler en værdi, der fortolkes som tom, herunder 0, som standardindstillingen med fornyelse aktiveret. Kontrollér og om nødvendigt ændr fornyelsen for det købte nummer i portalen. |
Disse felter normaliseres og sendes videre til købsprocessen, men måden, de gemmes på, varierer mellem forløbene for de forskellige nummerbeholdninger. Den nuværende ordrerute stiller ikke de strenge felter til begrænsning af tilbudsprisen fra vejledningen om køb af et valgt nummer til rådighed som tilsvarende sikkerhedsforanstaltninger. Brug kontoens købstilladelser og prisgrænser, og undersøg den resulterende nummerkonfiguration.
Læs hele resultatet
Fortolk JSON-indholdet, og undersøg status.code og status.msg, også når HTTP-anmodningen lykkes. Denne rute skriver sit eget JSON-svar, og den fælles hjælpefunktion til svar omsætter heller ikke nødvendigvis applikationskoden til HTTP-statussen. Applikationskoder kan være JSON-tal eller numeriske strenge. Kræv ikke status.results; feltet findes ikke i det normale ordreresultat.
{
"status": {"code": "200", "msg": ""},
"response": {
"id": "o_fictional_example",
"numbers": ["12025550123"],
"price": {
"per_minute": "0.01",
"free_minutes": 0,
"setup_price": "1.25",
"monthly_price": "2.50",
"channels": 2
},
"features": ["voice"],
"needs_registration": 0,
"restrictions": "",
"registration_requirements": null
}
}Identifikatoren, nummeret og priserne ovenfor er fiktive. Behandl ordre-id'et som en uigennemsigtig værdi uden at fortolke dets indhold. numbers angiver de numre, som dette svar rapporterer som købt; sammenlign listens længde med det antal, du anmodede om. Prisbeløb er strenge, og dette svar afrunder pengesatser til to decimaler, herunder per_minute; brug det opdaterede katalog for at få takstens oprindelige præcision. Inkluderede minutter og kanaler kan modtages som numeriske værdier eller numeriske strenge.
Prisblokken beskriver den valgte plan, der blev brugt til at opbygge svaret, og er ikke en detaljeret faktura for hvert nummer eller ordrens samlede beløb. Forskellige mulige numre i beholdningen kan have forskellige planer. Afstem de enkelte købte numre og kontotransaktioner frem for at gange beløbene i denne blok op og antage, at det dokumenterer det endelige samlede beløb.
Delvise køb og usikre udfald
En applikationskode på 200 kan forekomme sammen med en advarsel og færre numre end ønsket. En senere fejl annullerer ikke køb af numre, der allerede er gennemført. Gem det returnerede ordre-id, numrene og meddelelsen. Afstem disse numre med din nummerbeholdning og dine kontotransaktioner, før du beslutter, om du vil bestille det resterende antal.
En timeout, en afbrudt anmodning, et forkert formateret svar eller en fejl efter afsendelsen er ikke bevis på, at der ikke skete noget. Send ikke automatisk en ny købsanmodning, heller ikke med samme reference. Gem den oprindelige anmodning, referencen og et eventuelt returneret ordre-id, kontrollér nummerbeholdningen og kontotransaktionerne, og kontakt support, hvis udfaldet fortsat er usikkert.
En ubekræftet ordre kan returnere applikationskode 400 med en meddelelse om, at bekræftelsen stadig er i gang. Gem det returnerede ordre-id, og afstem dette køb; meddelelsen er ikke en anvisning om at sende det igen. Gendannelsen af registrerede ordrer sporer den oprindelige ordre internt. En ny anmodning til denne operation opretter et separat købsforsøg frem for at genoptage en ordre ud fra din reference, så den kan købe og opkræve betaling for flere numre. Brug ikke gentagne købsanmodninger til at kontrollere status eller søge i nummerbeholdningen.
Registrering og aktivering
Et købt eller tildelt nummer kan stadig kræve registrering eller aktivering. Hvis needs_registration er 1, skal du undersøge restrictions og registration_requirements. Sidstnævnte kan henvise til v3/get_requirements med værdier for country og number_type. Gennemfør det relevante forløb for identitets-/adressekontrol, og bekræft nummerets status, før du baserer dig på indgående opkald eller beskeder.
features beskriver de oplyste funktioner; feltet bekræfter ikke routing i drift, kampagnegodkendelse, SMS-levering eller faxmodtagelse. Kontrollér de gemte leveringsindstillinger, og udfør den relevante tjenestetest, når nummeret er aktivt.
Callbacks for ordrer
Callbacks sender JSON via POST med ordrens status og svar samt din reference, hvis den er angivet. De sendes for rapporterede køb, herunder delvise resultater. Et mislykket callback ruller ikke købet tilbage. Leveringen kan blive forsøgt igen, så håndtér dubletter ud fra ordre-id'et, og afstem numrene frem for at sende en ny købsanmodning.
Denne rute tilføjer ikke en kryptografisk signatur til callbacks. Betragt et callback som en notifikation, der skal afstemmes med den nummerbeholdning, du tilgår med autentificering, ikke som en selvstændig tilladelse til at opkræve betaling, klargøre tjenester eller give adgang. Anbring ikke API-legitimationsoplysninger i callback-URL'en. Hvis du sender en ny købsanmodning med en anden callback-URL, opdaterer det ikke den oprindelige ordre; det opretter et separat købsforsøg. Gem det oprindelige ordre-id, når du beder support om at undersøge ordrens callback.
Fejl, der skal håndteres
| Udfald | Hvad du skal gøre |
|---|---|
| 400 og en meddelelse om ugyldigt præfiks | Læs præfikskataloget igen, og brug den aktuelle identifikator derfra. Skeln mellem dette og en meddelelse om, at bekræftelsen af en oprindelig ordre stadig er i gang. |
| 403 eller en fejl vedrørende kontopolitik eller saldo | Gennemgå købstilladelse, kontoens prislofter, antalsgrænser og finansiering. Andre applikationskoder kan blive videresendt fra disse kontroller; gem den faktiske meddelelse. |
| 404 eller ingen ledige numre i beholdningen | Hent opdaterede oplysninger om tilgængelighed. Foretag ikke gentagne købsforsøg for et præfiks uden flere ledige numre. |
| 409 og en meddelelse om købsbekræftelse, afvisning fra udbyderen eller annulleret ordre | Gem det returnerede ordre-id og den faktiske meddelelse. Afstem anmodningen med nummerbeholdningen, kontotransaktionerne og support, før du sender en ny købsanmodning. Genbrug af samme reference gør ikke en ny anmodning sikker. |
| 200 med advarsler eller færre numre | Nogle numre blev købt. Afstem den returnerede tildeling og transaktionerne, før du bestiller flere. |
| Server-/transportfejl eller ulæseligt svar | Betragt resultatet som potentielt usikkert, indtil nummerbeholdningen og transaktionerne fastslår, hvad der skete. |