Usa Watch-IP con PHP
digitload/watch-ip-sdk (Packagist, v0.1.1) incapsula GET /v1/geo in un pacchetto Composer costruito su cURL — senza dipendenze da Guzzle o altri client HTTP.
Installazione
Richiede PHP 8.1+ con le estensioni curl e json, entrambe incluse praticamente in ogni installazione di PHP.
Composer
composer require digitload/watch-ip-sdkAvvio rapido
Come per gli altri SDK lato server, chiamare GET /v1/geo da PHP significa chiamarlo dal tuo server anziché dal browser di un visitatore, quindi passa un'origin esplicita per soddisfare il controllo delle origini consentite della chiave.
PHP
use Digitload\WatchIP\WatchIP;
$client = new WatchIP('wip_pub_xxxxxxxx', origin: 'https://example.com');
$geo = $client->getGeo();
echo $geo['country'], ' ', $geo['city'], ' ', $geo['timezone'];Gestione degli errori e timeout
Ogni fallimento genera un WatchIPError che estende \RuntimeException. Exception::getCode() di PHP è tipizzato come int, ma i codici di errore dell'API sono stringhe, quindi leggili con getErrorCode() anziché con getCode(). Passa timeout (in secondi) insieme a include nell'array delle opzioni.
PHP
use Digitload\WatchIP\WatchIP;
use Digitload\WatchIP\WatchIPError;
$client = new WatchIP('wip_pub_xxxxxxxx', origin: 'https://example.com');
try {
$geo = $client->getGeo(['timeout' => 5.0]);
} catch (WatchIPError $err) {
echo $err->getErrorCode(), ' ', $err->getStatus(), ' ', $err->getMessage();
}Cosa non copre questo SDK
Questo pacchetto chiama solo GET /v1/geo. La ricerca IP, la validazione email e i controlli di rischio sono endpoint separati da server a server, per cui non esiste ancora un client PHP — chiamali direttamente con cURL, autenticandoti nello stesso modo descritto nella guida all'autenticazione.