PHPackages                             iw5edv/tim-sms-professional-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. iw5edv/tim-sms-professional-client

ActiveLibrary[HTTP &amp; Networking](/categories/http)

iw5edv/tim-sms-professional-client
==================================

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

08PHP

Since Feb 28Pushed 4y ago1 watchersCompare

[ Source](https://github.com/iw5edv/TimSmsProfessionalClient)[ Packagist](https://packagist.org/packages/iw5edv/tim-sms-professional-client)[ RSS](/packages/iw5edv-tim-sms-professional-client/feed)WikiDiscussions main Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

TimSmsProfessionalClient
========================

[](#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

 è un servizio a pagamento della compagnia telefonica italiana TIM

Caratteristiche
---------------

[](#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
---------

[](#requisiti)

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

Installazione
-------------

[](#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
--------------

[](#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
========

[](#utilizzo)

Inviare un singolo SMS
----------------------

[](#inviare-un-singolo-sms)

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

echo ''; print_r($result); echo '';
```

*oppure utilizzando la sola funzione senza instanziare l'oggetto*

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

echo ''; print_r($result); echo '';
```

*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 ''; print_r($result); echo '';
```

Risposta
--------

[](#risposta)

Per le caratteristiche della risposta vedere la libreria

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
-----------

[](#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

[](#ricerca-sms-inviato-utilizzando-id-precedentemente-recuperato)

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

echo ''; print_r($result); echo '';
```

### Esito di ricezione SMS

[](#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-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';
}
```

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity26

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/82d829ddb184842c658e9b8ca7eba62bce09d32491335e363ff540396f8c8ceb?d=identicon)[iw5edv](/maintainers/iw5edv)

---

Top Contributors

[![iw5edv](https://avatars.githubusercontent.com/u/56475221?v=4)](https://github.com/iw5edv "iw5edv (49 commits)")

### Embed Badge

![Health badge](/badges/iw5edv-tim-sms-professional-client/health.svg)

```
[![Health](https://phpackages.com/badges/iw5edv-tim-sms-professional-client/health.svg)](https://phpackages.com/packages/iw5edv-tim-sms-professional-client)
```

###  Alternatives

[friendsofsymfony/rest-bundle

This Bundle provides various tools to rapidly develop RESTful API's with Symfony

2.8k73.3M319](/packages/friendsofsymfony-rest-bundle)[php-http/discovery

Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations

1.3k309.5M1.2k](/packages/php-http-discovery)[nyholm/psr7

A fast PHP7 implementation of PSR-7

1.3k235.4M2.4k](/packages/nyholm-psr7)[pusher/pusher-php-server

Library for interacting with the Pusher REST API

1.5k94.8M293](/packages/pusher-pusher-php-server)[spatie/crawler

Crawl all internal links found on a website

2.8k16.3M52](/packages/spatie-crawler)[react/http

Event-driven, streaming HTTP client and server implementation for ReactPHP

78126.4M414](/packages/react-http)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
