Documentatia Tehnica API web2sms® - SOAP / REST (postpaid)

Detalii:

Versiune: 2.0.3 (recomandata)

Autor: NETOPIA

WSDL 

https://www.web2sms.ro/api?wsdl 

Serviciul de automatizare trimitere mesaje scurte dezvoltat de NETOPIA permite trimiterea de SMS-uri si urmarirea stadiului de livrare a acestora. Prin intermediul acestui serviciu pot fi trimise SMS-uri catre orice numar de telefon mobil din retelele GSM cu ai caror operatori NETOPIA are contracte de colaborare (Orange, Vodafone, Telekom Mobile, RCS&RDS Digi Mobil) si catre nr. de telefon apartinand operatorilor mobili internationali.

Procedura de trimitere este foarte simpla si se poate realiza numai pe baza unui client SOAP, dezvoltat prin resurse proprii de catre beneficiar, indiferent de mediul de dezvoltare sau sistemul de operare ales.

Pentru a putea folosi acest serviciu sunt necesari urmatorii pasi:

1. Trebuie sa fi inregistrat pe site-ul web2sms.ro

2. Contacteaza un reprezentant NETOPIA pentru a iti activa si configura contul

3. Dezvoltarea clientului SOAP bazat pe detaliile oferite de WSDL

4. Testarea de trimitere a mesajelor prin intermediul clientului SOAP.

5. Dezvoltarea clientului SOAP API - sendSmsAuthKey & callbackURL

PHP composer - https://github.com/web2sms/composer


Metoda sendSmsAuthKey ($username, $authKey, $sender, $recipient, $message, $scheduleDate, $validity, $callbackUrl, $userData)


- username - Acest parametru este obligatoriu. Numele de utilizator folosit pentru autentificarea in web2sms®

- authKey - Acest parametru este obligatoriu. Se va folosi cheia oferita de catre serviciul operational web2sms® 

- sender - Expeditorul mesajului. Acest parametru este optional. Lungimea expeditorului nu poate depasi 11 caractere. Setarea unui expeditor nu garanteaza folosirea lui la trasmiterea unui mesaj. Expeditorul trebuie sa fie in lista accepata si configurata de catre un reprezentant WEB2SMS. De asemenea nu se pot folosi expeditori alfanumerici pentru toti operatorii. In cazul in care acest parametru nu este transmis sau este transmis gresit se va folosi expeditorul implicit. Expeditoul implicit este numarul scurt al conexiunii folosite pentru trimiterea SMS-ului

- recipient - Numarul de telefon mobil catre care se doreste trimiterea SMS-ului. Acest parametru este obligatoriu. Formatul corect al numarului de telefon este 07PPXXXXXX, 407PPXXXXXX sau 7PPXXXXXX pentru numerele nationale. Pentru cele internationale trebuie trimis numarul in format international fara sa fie prefixat cu + sau 00.

- message - Mesajul ce se doreste a fi trimis prin SMS. Acest parametru este obligatoriu

- scheduleDate - Data si ora la care doresti sa fie trimis mesajul. Acest parametru este optional. Formatul corect este formatul XML pentru campuri de tip data si ora YYYY-MM-DDTHH:MM:SS.mmmZ. Este acceptat si formatul YYYY-MM-DD HH:MM:SS. In cazul in care acest parametru nu este transmis sau este transmis intr-un format gresit, este folosita data si ora curenta de pe server-ul web2sms ®

- validity - Valabilitatea mesajului exprimata in minute. Acest parametru este optional. In cazul in care acest parametru este transmis si diferit de zero reprezinta cate minute de la data si ora pentru care a fost programat mesajul acesta este valabil. Daca mesajul nu poate fi transmis in intervalul de valabilitate specificat acesta nu va mai fi transmis si nu va mai fi contorizat in contul tau.

- callbackUrlAcest parametru este optional. Reprezinta URL-ul la care se doreste transmiterea rapoartelor de livrare a SMS-ului in cazul in care acesta este programat cu success.

- userData - Acest parametru este optional. Reprezinta o informatie (sub forma unui camp suplimentar) care va fi vizibila doar in sectiunea de raportare sau arhiva SMS. Spre exemplu: un identificator unic intern prin intermediul caruia poti urmari transmiterile SMS catre baza ta de date.

Rezultat:

• Daca metoda reuseste programarea unui mesaj cu succes va intoarce un string de minimum 32 si maximum 60 de caractere ce reprezinta identificatorul unic al mesajului in platforma web2sms®.

• Daca metoda esueaza serviciul web va intoarce un SOAP Fault. Codurile de eroare si mesajele aferente sunt prezentate in tabelul de mai jos:

Cod (zecimal)           Cod (hexa)               Mesaj

536870913                0x20000001                Internal web2SMS error

268435457                0x10000001                No available account for the calling IP

268435463                0x10000007                Associated account is disabled

268435462                0x10000006                Associated account is missconfigured

268435464                0x10000008                Internal web2SMS error while creating SMS Sender                  

268435458                0x10000002                Parameter `phone` has a wrong format or it belongs to a GSM.Network that is not configured

268435466                0x1000000a                Phone number is black listed

268435520                0x10000040                Phone number belongs to a GSN Network that is not configured for the associated account

268435460                0x10000004                You’ve exceeded your monthly limit for SMS sendings

268435488                0x10000020                You are trying to schedule a SMS message outside the configured time interval restrictions

268435459                0x10000003                Parameter `message` is empty! Empty message are not allowed

268435465                0x10000009                Internal web2sms error while scheduling a SMS

ex:

 $soapClient = new SoapClient("https://www.web2sms.ro/api?wsdl");

    try {

        $resp = $soapClient->sendSmsAuthKey($username, $authKey, $sender, $recipient, $message, $scheduleDate, $validity , $callbackUrl, $userData);

        echo "Sending message succeded. MessageID is " . $resp;  

    }  catch (Exception $e)

    {

        echo "There was an error while trying to schedule an SMS!\n";

        echo "Code: " . $e->getMessage() . "\n";

        echo "Message: " . $e->getMessage() . "\n";

    }


Iar in cazul utilizarii $callbackURL-ului:

* URL-ul definit de catre tine trebuie sa fie public si vizibil din exterior

* pentru fiecare linie din URL (SMS request) trebuie asociat intern, de catre tine, un identificator unic (ex: messageID-ul returnat de catre noi) pentru diferentierea SMS-urilor

* setul de parametri ce pot fi apelabili prin $callbackURL:

 'id'                    => HASH ID,

 'status'            => STATUS, 

 'userData'      => USERDATA,

 'timestamp'   => DATA RAPORT LIVRARE SMSC

 'network'        => GSM NETWORK of the MSISDN (ex: 22601 = Vodafone, 22610 = Orange, 22603 / 22604 / 22606 = Telekom, 22605 = Digi Mobil) - lista completa


unde:


Caracterele permise pentru a respecta lungimea maxima a unui mesaj de 160 de caractere (sau 153 caractere per part in cazul SMS-urilor concatenate).


ASCII printable characters (character code 32-127)

Codes 32-127 are common for all the different variations of the ASCII table, they are called printable characters, represent letters, digits, punctuation marks, and a few miscellaneous symbols. You will find almost every character on your keyboard. Character 127 represents the command DEL.

https://www.ascii-code.com/

Toate aceste caractere se vor contoriza cu 1 octet / caracter.

- exceptie facand caracterele: 

form feed, ^ Caret / Circumflex, { Left curly bracket, } Right curly bracket, \ Backslash, [ Left square bracket, ` Tilde, ] Right square bracket, | Vertical Bar, € Euro sign (acestea se contorizeaza cu 2 octeti, desi fac parte din alfabetul GSM7bit)

*Atentie! Daca mesajul contine caractere speciale, acestea pot fi afisate incorect.

Mentionam ca in cazul in care se transmit caractere speciale in corpul mesajului (unde fiecare caracter este reprezentat pe 2 octeti), atunci, implicit lungimea mesajelor SMS se va reduce la 70 (63 de caractere pentru mesajele concatenate).

Caracterele speciale sunt cele prezente in alfabetul 

The extended ASCII codes (character code 128-255)

There are several different variations of the 8-bit ASCII table. The table below is according to Windows-1252 (CP-1252) which is a superset of ISO 8859-1, also called ISO Latin-1, in terms of printable characters, but differs from the IANA's ISO-8859-1 by using displayable characters rather than control characters in the 128 to 159 range. Characters that differ from ISO-8859-1 is marked by light blue color. 

https://www.ascii-code.com/