iw5edv/tim-sms-professional-client

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

dev-main 2022-02-28 10:30 UTC

This package is auto-updated.

Last update: 2024-04-28 15:31:48 UTC


README

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';
}