iw5edv / tim-sms-professional-client
Semplice Libreria PHP Unofficial Client per invio singoli SMS tramite API di timsmsprofessional.it
Requires
- php: >=5.6.0
- ext-curl: *
- apimatic/unirest-php: ^2.0
This package is auto-updated.
Last update: 2025-03-28 17:28:51 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 (Example200
)raw_body
- Un-parsed response bodybody
- 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 Boleanotrue
ofalse
- La funzione
getEsitoStr()
restituisce un valore StringaRicevuto
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'; }