استخدام Watch-IP مع PHP
تُغلِّف digitload/watch-ip-sdk (على Packagist، الإصدار v0.1.1) استدعاء GET /v1/geo ضمن حزمة Composer مبنية على cURL — دون أي تبعية لـ Guzzle أو أي عميل HTTP آخر.
التثبيت
يتطلب PHP 8.1 أو أحدث مع امتدادي curl وjson، وكلاهما مُضمَّن عمليًا مع كل تثبيت لـ PHP تقريبًا.
Composer
composer require digitload/watch-ip-sdkالبدء السريع
كما هو الحال مع حزم SDK الأخرى الخاصة بجانب الخادم، فإن استدعاء GET /v1/geo من PHP يعني استدعاءها من خادمك الخاص بدلًا من متصفح الزائر، لذا مرِّر origin صراحةً لتلبية فحص النطاقات المسموح بها للمفتاح.
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'];معالجة الأخطاء والمُهل الزمنية
كل فشل يُطلِق WatchIPError يرث من \RuntimeException. الدالة Exception::getCode() في PHP من نوع int، لكن رموز أخطاء الواجهة البرمجية هي سلاسل نصية، لذا اقرأها باستخدام getErrorCode() لا getCode(). مرِّر timeout (بالثواني) إلى جانب include ضمن مصفوفة الخيارات (options).
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();
}ما لا تُغطيه هذه الحزمة (SDK)
لا تستدعي هذه الحزمة سوى GET /v1/geo. أما البحث عن عنوان IP، والتحقق من البريد الإلكتروني، وفحوصات المخاطر فهي نقاط نهاية منفصلة من خادم إلى خادم لا يوجد لها عميل PHP بعد — استدعِها مباشرة باستخدام cURL، مع التوثيق بالطريقة نفسها الموضَّحة في دليل المصادقة.