Skip to content

Semplice Libreria PHP Client per invio singoli SMS tramite API di TIM SmsProfessional

License

Notifications You must be signed in to change notification settings

iw5edv/TimSmsProfessionalClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TimSmsProfessionalClient

Semplice Libreria PHP Unofficial Client per invio singoli SMS tramite API del servizio timsmsprofessional.it

Libreria NON ufficiale liberamente creata, non sussite nessun collegamento con la compagnia TIM

https://timsmsprofessional.it è un servizio a pagamento della compagnia telefonica italiana TIM

Caratteristiche

  • Invio di singoli SMS utilizzando le API di timsmsprofessional.it
  • Ricerca del messaggio inviato per recuperare lo stato di effettiva consegna
  • Inserita una funzione per il controllo e la formattazione del numero telefonico prima dell'invio con controllo che rientri nei di prefissi telefonici attribuiti al servizio mobile italiano alla data del 01/12/2021

Requisiti

  • PHP 5.6+
  • PHP Curl extension
  • apimatic/unirest-php: 2.0+

Installazione

Per installare con Composer aggiungere iw5edv/tim-sms-professional-client al tuo composer.json file:

{
    "require": {
        "iw5edv/tim-sms-professional-client"
    }
}

oppure eseguendo il seguente comando:

composer require iw5edv/tim-sms-professional-client

Configurazione

Configurare i dati personali username, password, token e alias modificando il file /src/TimSmsProfessionalClient.php

.....
  private $username  = ' ';
  private $password  = ' ';
  private $token     = ' ';
  private $alias     = ' ';  //numero completo da dove inviare i messaggi o Alias Certificato caricato sul proprio profilo
.....

Oppure instanzia l'oggetto con il costruct passando i dati

$client = new iw5edv\TimSmsProfessionalClient([
    'username'	=> ' ',
    'password'	=> ' ',
    'token'	=> ' ',
    'alias'	=> ' '
]);

Utilizzo

Inviare un singolo SMS

$client = new iw5edv\TimSmsProfessionalClient;
$to = '+391234567890';
$text = 'Prova';
$result = $client->InvioSms($to, $text);

echo '<pre>'; print_r($result); echo '</pre>';

oppure utilizzando la sola funzione senza instanziare l'oggetto

$to = '+391234567890';
$text = 'Prova';
$result = \iw5edv\TimSmsProfessionalClient::InvioSms($to, $text)

echo '<pre>'; print_r($result); echo '</pre>';

oppure passando anche i parametri di connessione

$client = new iw5edv\TimSmsProfessionalClient([
    'username'	=> ' ',
    'password'	=> ' ',
    'token'	=> ' ',
    'alias'	=> ' '
]);
$to = '+391234567890';
$text = 'Prova';
$result = $client->InvioSms($to, $text);

echo '<pre>'; print_r($result); echo '</pre>';

Risposta

Per le caratteristiche della risposta vedere la libreria https://github.com/apimatic/unirest-php

Alla ricezione di una risposta Unirest restituisce il risultato sotto forma di Object

  • code - HTTP Response Status Code (Example 200)
  • raw_body - Un-parsed response body
  • body - Parsed response body where applicable, for example JSON responses are parsed to Objects / Associative Arrays.
  • headers - HTTP Response Headers
$result->code;        // HTTP Status code
$result->raw_body;    // Unparsed body
$result->body;        // Parsed body
$result->headers;     // Headers

un esempio di Object di risposta ad un corretto invio di messaggio

Unirest\Response Object
(
    [code] => 200
    [raw_body] => {"name":"INVIOMESSAGGI","status":"OK","message":"Presa in carico della campagna andata a buon fine CODE:########"}
    [body] => stdClass Object
        (
            [name] => INVIOMESSAGGI
            [status] => OK
            [message] => Presa in carico della campagna andata a buon fine CODE:########
        )

    [headers] => Array
        (
            [0] => HTTP/1.1 200
            [Date] => Thu, 23 Dec 2021 22:10:22 GMT
            [Server] => nginx/1.14.1
            [Content-Type] => application/json
            [X-ORACLE-DMS-RID] => 0
            [X-ORACLE-DMS-ECID] => 
            [X-SMB-ID] => 
            [Cache-Control] => max-age=1
            [Expires] => Thu, 23 Dec 2021 22:10:22 GMT
            [Vary] => User-Agent
            [Transfer-Encoding] => chunked
        )
)

Per controllare la risposta e quindi se l'operazione è andata a bun fine possiamo usare la funzione getStatus() che restituisce un valore boleano true o false

Esempio

if ($client->getStatus()) {
	// OK
} else {
	// ERRORE
}

Ricerca SMS

Per la ricerca dell'SMS è necessario recuperare ID della campagna al momento dell'invio.

Per questo è stata inserita la funzione getCode()

Un esempio di codice per recuperare ID dalla risposta dell'invio

// dopo aver inviato il messaggio
$code = $client->getCode();
echo $code;

Ricerca SMS inviato utilizzando ID precedentemente recuperato

$code = '00000000';  //id campagna precedentemente recuperato
$result = \iw5edv\TimSmsProfessionalClient::cercaSms($code);

echo '<pre>'; print_r($result); echo '</pre>';

Esito di ricezione SMS

Dopo aver effettuato la ricerca possiamo avvalerci delle funzioni getEsitoBol() o getEsitoStr() per verificare se l'SMS è stato ricevuto dal terminale

  • La funzione getEsitoBol() restituisce un valore Boleano true o false
  • La funzione getEsitoStr() restituisce un valore Stringa Ricevuto Non Ricevuto ERRORE

Controllo e Formattazione numero telefonico

  • Controllo del numero telefonico secondo gli standar ITALIANI

  • Formattazione nella forma giusta per invio sms +39 3 123456789

    • inizio numero con prefisso internazionale +39
    • controllo che rientri in un dei prefissi assegnati in Italia al 01/12/2021
    • controlla la formalità del numero 10 cifre
    • ammette i numeri a 9 cifre controllando che faccia parte dei prefissi assegnati

Esempio di utilizzo per il solo controllo

$to = '+391234567890';  //numero da testare
if($to_format = \iw5edv\TimSmsProfessionalClient::formatNumeroIta($to)){
    echo 'Numero Corretto ';
    echo $to_format;
} else {
	echo 'Numero Errato';
}

About

Semplice Libreria PHP Client per invio singoli SMS tramite API di TIM SmsProfessional

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages