Accesul la cont și la proiect
Utilizați un cont API activat, prin HTTPS, de la o adresă IP permisă. Proiectul trebuie să aparțină acelui cont și să nu fie șters. Utilizați identificatorul unic al proiectului din fluxul de lucru al comenzii de portare, nu identificatorul numeric din baza de date sau un număr de telefon. Aplicați codificarea URL identificatorului proiectului atunci când construiți o cerere.
Pregătiți adăugarea
Această operațiune modifică un proiect de portare existent. Confirmați mai întâi numerele și autorizarea clientului prin fluxul de lucru al comenzii de portare. Scrieți fiecare număr folosind toate cifrele formatului internațional, eliminați personal duplicatele și verificați lista de numere existentă a proiectului. Nu utilizați acest punct de acces pentru a testa numere arbitrare.
Portalul actual validează și normalizează numerele înainte de a apela această rută. Punctul de acces vechi, apelat direct, nu oferă aceleași măsuri de protecție: elimină spațiile de la începutul și sfârșitul datelor de intrare, dar nu validează formatul numerelor de telefon, codul de țară, duplicatele sau starea proiectului în fluxul de lucru.
Cerere POST
Creați un fișier local numbers.json cu următoarea structură. Numerele sunt fictive; înlocuiți-le cu numere autorizate pentru proiectul selectat.
{
"numbers": [
"12025550123",
"12025550124"
],
"isocode": "US"
}curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--header "Content-Type: application/json" \
--data-binary @numbers.json \
"https://api.multitel.net/v3/lnp/project/$PROJECT_ID/addnumbers"| Câmp | Semnificație |
|---|---|
| numbers | Un tablou nevid obligatoriu de șiruri de caractere reprezentând numere sau un șir cu câte un număr pe fiecare linie. Intrările goale sunt eliminate, iar spațiile de la început și de la sfârșit sunt îndepărtate. Textul separat prin virgule nu este împărțit în numere distincte. |
| isocode | Cod de țară opțional pentru înregistrările adăugate. Dacă este omis sau gol, se utilizează locația proiectului. Rutina de procesare elimină spațiile de la început și de la sfârșit, dar nu transformă în majuscule și nu validează valoarea furnizată. Furnizați personal codul de țară corect, scris cu majuscule. |
Pentru acest exemplu, utilizați POST cu application/json. Sunt citite și datele de formular trimise prin POST. Metoda nu definește o cheie de idempotență sau o garanție privind dimensiunea sigură a loturilor specifică acestui punct de acces; verificați concordanța datelor pentru loturi ușor de gestionat în loc să vă bazați pe o limită presupusă.
Rezultatul raportat
Exemplu de răspuns fictiv.
{
"status": {
"code": 200,
"msg": "Success add numbers"
},
"response": {
"uniqueid": "PROJECT_EXAMPLE",
"count": 2,
"numbers": [
{
"id": 21,
"number": "12025550123",
"status": 0,
"status_str": "Pending",
"isocode": "US"
},
{
"id": 22,
"number": "12025550124",
"status": 0,
"status_str": "Pending",
"isocode": "US"
}
]
}
}Răspunsul etichetează încercările de adăugare cu Pending. Nu verifică rezultatul fiecărei inserări în baza de date înainte de a-l raporta. Prin urmare, un număr de înregistrări sau un identificator returnat nu dovedește, singur, că fiecare înregistrare a fost salvată persistent. O adăugare cu starea Pending nu reprezintă acceptarea de către operator, un transfer programat sau o activare finalizată.
Verificați concordanța datelor înainte de a reîncerca
- Citiți lista de numere a proiectului înainte de a adăuga numere și păstrați detaliile adăugării intenționate în evidențele proprii ale cererilor.
- Trimiteți cererea de adăugare o singură dată.
- Citiți din nou lista de numere a proiectului și comparați fiecare număr pe care intenționați să îl adăugați. Verificați duplicatele și starea fiecărui număr.
- Dacă cererea depășește timpul de așteptare, returnează o eroare sau raportează un rezultat ambiguu, recitiți datele înainte de a reîncerca. Unele dintre înregistrările de adăugat pot exista deja.
- Rezolvați înregistrările lipsă sau duplicate prin fluxul de lucru al comenzii de portare ori prin serviciul de asistență, în loc să repetați orbește întreaga cerere.
Rutina de procesare inserează înregistrările pe rând, fără tranzacție și fără protecție împotriva duplicatelor. O întrerupere poate lăsa intacte scrierile anterioare; o inserare eșuată care returnează false poate fi totuși inclusă în numărul raportat. Repetarea unei cereri poate adăuga înregistrări duplicate. Rutina de procesare nu înregistrează ea însăși un eveniment și nu finalizează un transfer la operator.
Erori ale implementării vechi
O altă metodă decât POST returnează codul API 403. Un proiect inexistent, șters sau care nu aparține contului returnează codul API 404. Datele de intrare goale pentru numere returnează, de asemenea, codul API 404. Se aplică autentificarea și restricțiile privind adresa IP sursă. Aceste coduri ale implementării vechi nu dovedesc că nu a avut loc nicio inserare anterioară după începerea procesării.
Domeniul de aplicare al facturării și transferului
Rutina de procesare examinată inserează înregistrări de numere asociate proiectului și nu conține nicio debitare directă a contului sau trimitere către operator. Acest lucru nu face ca serviciul de portare în ansamblu să fie gratuit și nu anulează tarifele de portare convenite. Îndepliniți cerințele proiectului privind autorizarea, documentele și examinarea înainte de a vă aștepta la un transfer.