|
1 | 1 | # OpenAPI Library |
2 | 2 |
|
3 | | -## Installation |
| 3 | +<!-- vscode-markdown-toc --> |
| 4 | +* 1. [Installation](#Installation) |
| 5 | +* 2. [Usage](#Usage) |
| 6 | + * 2.1. [Instanza della classe](#Instanzadellaclasse) |
| 7 | + * 2.2. [Esempi](#Esempi) |
| 8 | +* 3. [Modulo comuni](#Modulocomuni) |
| 9 | + * 3.1. [Esempi](#Esempi-1) |
| 10 | +* 4. [Modulo imprese](#Moduloimprese) |
| 11 | + * 4.1. [Utilizzo](#Utilizzo) |
| 12 | + * 4.2. [Esempi](#Esempi-1) |
| 13 | +* 5. [Modulo Marche Temporali](#ModuloMarcheTemporali) |
| 14 | + * 5.1. [Esempi](#Esempi-1) |
| 15 | +* 6. [Modulo SMS](#ModuloSMS) |
| 16 | + * 6.1. [Inviare un SMS](#InviareunSMS) |
| 17 | +* 7. [Modulo Visengine](#ModuloVisengine) |
| 18 | + |
| 19 | +<!-- vscode-markdown-toc-config |
| 20 | + numbering=true |
| 21 | + autoSave=true |
| 22 | + /vscode-markdown-toc-config --> |
| 23 | +<!-- /vscode-markdown-toc --> |
| 24 | + |
| 25 | + |
| 26 | +## 1. <a name='Installation'></a>Installation |
4 | 27 |
|
5 | 28 | ```sh |
6 | 29 | composer require altravia/openapi |
7 | 30 | ``` |
8 | 31 |
|
9 | | -## Usage |
| 32 | +## 2. <a name='Usage'></a>Usage |
10 | 33 |
|
11 | | -### Instanza della classe |
| 34 | +### 2.1. <a name='Instanzadellaclasse'></a>Instanza della classe |
12 | 35 |
|
13 | 36 | ```php |
14 | | - $this->openapi = new \OpenApi\OpenApi($scopes,$user,$apikey,"test"); |
| 37 | +require_once 'vendor/autoload.php'; |
| 38 | + |
| 39 | +$openapi = new \OpenApi\OpenApi($scopes, $user, $apikey, $environment); |
15 | 40 | ``` |
16 | 41 |
|
17 | 42 | Dove `$scopes` è un array di stringhe o di oggetti in uno dei seguenti formati: |
18 | 43 |
|
19 | 44 | ```php |
20 | | -$scopes=[ |
| 45 | +$scopes = [ |
21 | 46 | "GET:ws.ufficiopostale.com/comuni", |
22 | | - ["domain"=>"ws.ufficiopostale.com", "method"=>"comuni","mode"=>"GET"] |
| 47 | + [ |
| 48 | + "domain"=>"ws.ufficiopostale.com", |
| 49 | + "method"=>"comuni", |
| 50 | + "mode" =>"GET" |
| 51 | + ] |
23 | 52 | ]; |
24 | 53 | ``` |
25 | 54 |
|
26 | 55 | ...e `$environment` è l'ambiente sceltro tra `'test'` (default) e `'production'` |
27 | 56 |
|
| 57 | +OpenApi si occuperá di reperire automaticamente, o generare, un nuovo token quando necessario. |
| 58 | + |
| 59 | +A questo punto, in base agli scopes indicati vengono creati i seguenti oggetti: |
28 | 60 |
|
29 | | -A questo punto, in base agli scopes indicati vengono creati i seguenti oggetto: |
30 | 61 |
|
31 | 62 | ```php |
32 | | -$this->openapi->ufficiopostale |
33 | | -$this->openapi->imprese |
34 | | -... |
| 63 | +// Ogni oggetto verrá creato solo se disponibile nello scope. |
| 64 | +$openapi->ufficiopostale; |
| 65 | +$openapi->comuni; |
| 66 | +$openapi->imprese; |
| 67 | +$openapi->visengine; |
| 68 | +$openapi->marcheTemporali; |
| 69 | +$openapi->geocoding; |
| 70 | +$openapi->SMS; |
| 71 | +$openapi->firmaDigitale; |
| 72 | +$openapi->pecMassiva; |
35 | 73 | ``` |
36 | | - |
37 | 74 | che possono essere usati al seguente modo: |
38 | 75 |
|
39 | 76 | ```php |
40 | 77 | $this->openapi->ufficioposale->getCitiesByCap('00132'); |
41 | 78 | ``` |
| 79 | +### 2.2. <a name='Esempi'></a>Esempi |
| 80 | + |
| 81 | +```php |
| 82 | +require_once 'vendor/autoload.php'; |
| 83 | + |
| 84 | +// Dichiaro gli scopes necessari |
| 85 | +$scopes = [ |
| 86 | + 'GET:comuni.openapi.it/cap', |
| 87 | + 'GET:imprese.altravia.com/advance', |
| 88 | +]; |
| 89 | + |
| 90 | +$openapi = new OpenApi\OpenApi($scopes, 'my_username','my_api_key', 'test'); |
| 91 | + |
| 92 | +// Comuni: prendi informazioni sul cap 00132 |
| 93 | +$cap = $openapi->comuni->getCitiesByCap('00132'); |
| 94 | + |
| 95 | +// Imprese: prendi informazioni su una specifica impresa |
| 96 | +$impresa = $openapi->imprese->getByPartitaIva('12485671007'); |
| 97 | + |
| 98 | +// Ufficio Postale: ottieni informaizoni sul tracking |
| 99 | +$track = $this->openapi->ufficiopostale->track('123456789'); |
| 100 | +``` |
| 101 | + |
| 102 | + |
| 103 | +## 3. <a name='Modulocomuni'></a>Modulo comuni |
| 104 | +Consente di prendere informazioni su comuni e provincie. |
| 105 | + |
| 106 | +* `getCitiesByCap` |
| 107 | +* `getComuneByCatasto` |
| 108 | +* `getRegioni` |
| 109 | +* `getProvince` |
| 110 | +* `getComuni` |
| 111 | + |
| 112 | +### 3.1. <a name='Esempi-1'></a>Esempi |
| 113 | + |
| 114 | +```php |
| 115 | +$provincia = 'RM'; |
| 116 | +$comuni = $this->openapi->comuni->getComuni($provincia); |
| 117 | + |
| 118 | +var_dump($comuni['comuni']); |
| 119 | +/* |
| 120 | + |
| 121 | +["nome_provincia"]=> |
| 122 | + string(4) "Roma" |
| 123 | + ["sigla_provincia"]=> |
| 124 | + string(2) "RM" |
| 125 | + ["regione"]=> |
| 126 | + string(5) "Lazio" |
| 127 | + ["comuni"]=> |
| 128 | + array(121) { |
| 129 | + [0]=> |
| 130 | + string(6) "Affile" |
| 131 | + ... |
| 132 | +*/ |
| 133 | + |
| 134 | + |
| 135 | +``` |
| 136 | + |
| 137 | +## 4. <a name='Moduloimprese'></a>Modulo imprese |
| 138 | +### 4.1. <a name='Utilizzo'></a>Utilizzo |
| 139 | +Il modulo imprese espone i seguenti metodi: |
| 140 | +* `getByPartitaIva` |
| 141 | +* `getClosed` |
| 142 | +* `getVatGroup` |
| 143 | +* `getPec` |
| 144 | +* `getBySearch` |
| 145 | + |
| 146 | +Per `getBySearch` e `getByPartitaIva` è richiesto accesso allo scope `/advance` |
| 147 | + |
| 148 | +### 4.2. <a name='Esempi-1'></a>Esempi |
| 149 | +Utilizziamo `getBySearch` per cercare un'azienda il cui nome inizia con `Altrav` a Roma |
| 150 | + |
| 151 | +```php |
| 152 | +$autocomplete = $this->openapi->imprese->getBySearch('Altrav*', 'RM'); |
| 153 | + |
| 154 | +/* |
| 155 | + [0]=> |
| 156 | + object(stdClass)#41 (10) { |
| 157 | + ["piva"]=> |
| 158 | + string(11) "12485671007" |
| 159 | + ["cf"]=> |
| 160 | + string(11) "12485671007" |
| 161 | + ["denominazione"]=> |
| 162 | + string(20) "ALTRAVIA SERVIZI SRL" |
| 163 | + [1]=> |
| 164 | + object(stdClass)#42 (10) { |
| 165 | + ["id"]=> |
| 166 | + string(24) "4242424242" |
| 167 | + ["denominazione"]=> |
| 168 | + string(18) "xxx Altravia Esempio 2" |
| 169 | + ... |
| 170 | + */ |
| 171 | +``` |
| 172 | + |
| 173 | +## 5. <a name='ModuloMarcheTemporali'></a>Modulo Marche Temporali |
| 174 | +* `availability` |
| 175 | +* `checkLotto` |
| 176 | +* `purcahse` |
| 177 | + |
| 178 | +### 5.1. <a name='Esempi-1'></a>Esempi |
| 179 | + |
| 180 | +```php |
| 181 | +// Controlliamo la disponibilitá di una marca di inforcert o aruba |
| 182 | +$disponibilita = $this->openapi->marcheTemporali->availability('infocert', 1); |
| 183 | + |
| 184 | +// Se le marche sono disponibili, acquistiamone una |
| 185 | +if ($disponibilita->availability > 0) { |
| 186 | + try { |
| 187 | + $marca = $this->openapi->marcheTemporali->purcahse('infocert', 1); |
| 188 | + } catch (\OpenApi\classes\exception\OpenApiMarcheTemporaliException $e) { |
| 189 | + error_log(var_dump($e)); |
| 190 | + } |
| 191 | +} |
| 192 | +``` |
| 193 | + |
| 194 | +## 6. <a name='ModuloSMS'></a>Modulo SMS |
| 195 | +* `getRecipients` |
| 196 | +* `getMessage` |
| 197 | +* `sendMore` |
| 198 | +* `sendOne` |
| 199 | + |
| 200 | +### 6.1. <a name='InviareunSMS'></a>Inviare un SMS |
| 201 | +Per inviare un SMS, per prima cosa definiamo i destinatari: |
| 202 | + |
| 203 | +```php |
| 204 | +$recipient = '+39-3939989741'; |
| 205 | +// OR |
| 206 | +$recipients = [ |
| 207 | + [ |
| 208 | + 'number' => '+39-3939989741', |
| 209 | + 'fields' => ['nome' => 'NomeDestinatario'] |
| 210 | + ] |
| 211 | +]; |
| 212 | +``` |
42 | 213 |
|
43 | | -# Modulo ufficio postale |
| 214 | +Possiamo ora procedere ad inviare un SMS: |
| 215 | +```php |
44 | 216 |
|
45 | | -# Modulo visure |
| 217 | +try { |
| 218 | + $priority = 1; |
| 219 | + $options = null; |
| 220 | + $singleSms = $this->openapi->SMS->sendOne('Nome del mittente', $recipient, 'lorem ipsum', null, $priority, $options); |
| 221 | +} catch (\OpenApi\classes\exception\OpenApiConnectionsException $e) { |
| 222 | + throw 'Non è stato possibile recapitare il messaggio'; |
| 223 | +} |
| 224 | +``` |
46 | 225 |
|
47 | | -# Modulo imprese |
| 226 | +Possiamo anche speficiare i prefissi in modo indipendente: |
| 227 | +```php |
| 228 | +$this->openapi->SMS->sendOne('Nome del mittente', '3939989741', 'lorem ipsum', '+42', 1, null); |
| 229 | +``` |
48 | 230 |
|
49 | | -## `getByPartitaIva` |
| 231 | +O passare delle opzioni |
| 232 | +```php |
| 233 | +$options = ['timestamp_send' => '2021-04-20'] |
| 234 | +$this->openapi->SMS->sendOne('Nome del mittente', '3939989741', 'lorem ipsum', '+42', 1, $options); |
| 235 | +``` |
50 | 236 |
|
51 | | -### Introduction |
| 237 | +## 7. <a name='ModuloVisengine'></a>Modulo Visengine |
| 238 | +Come prima cosa, settiamo l'hash della visura che vogliamo richiedere |
52 | 239 |
|
53 | | -La funzione consente di recuperare i dati aziendali a partire dalla partita IVA |
| 240 | +```php |
| 241 | +// https://developers.openapi.it/services/visengine |
| 242 | +$this->openapi->visengine->setHash($visura->hash); |
| 243 | +``` |
54 | 244 |
|
55 | | -### Description |
| 245 | +A questo punto, possiamo lanciare `createRequest`, che ritornerà una istanza vuota della visura che andremo a creare della struttura richiesta |
56 | 246 |
|
57 | | -`function getByPartitaIva(string $partitaIva, $ttl = 86400):object` |
| 247 | +```php |
| 248 | +$request = $this->openapi->visengine->createRequest(); |
| 249 | +``` |
58 | 250 |
|
59 | | -* $partitaIva: La partita IVA da cercare |
60 | | -* $ttl: Time To Release, per quanti secondi la chiamata resta in cache prima di essere effettuata una seconda volta |
| 251 | +Prodediamo a completare l'oggetto, che potremmo passare a sendRequest quando pronto |
61 | 252 |
|
| 253 | +```php |
| 254 | +$request->setJson(['$0' => 'abcd', '$1' => '12485671007']); |
| 255 | + // url di callback, oggetto con dati aggiuntivi, metodo |
| 256 | +$request->setCallbackData('https://example.com', new stdClass(), 'POST'); |
| 257 | +$visura = $this->openapi->visengine->sendRequest($request); |
| 258 | +``` |
0 commit comments