CihazSorgula API
WordPress ve Joomla eklentilerimizin kullandığı API'nin aynısı. Kendi sitenize, mobil uygulamanıza veya ERP sisteminize servis kayıtlarınızı bağlayın.
Hazır eklentiler
Kod yazmanıza gerek yok: sitenize eklentiyi kurun, lisans bilgilerinizi yapıştırın, sorgu formu hazır.
WordPress kurulumu
- Eklentiler → Yeni Ekle → Eklenti Yükle → zip dosyasını seçin → Şimdi Kur → Etkinleştir.
- Ayarlar → CihazSorgula sayfasına lisans anahtarını ve API gizli anahtarını yapıştırın → Kaydet ve doğrula.
- Bir sayfaya Cihaz Sorgula bloğunu veya
[cihaz_sorgula]kısa kodunu ekleyin.
Joomla kurulumu
- Sistem → Uzantı Yükle → zip dosyasını sürükleyin.
- İçerik → Site Modülleri → CihazSorgula modülünü açın (yoksa Yeni → CihazSorgula).
- Lisans anahtarı ve API gizli anahtarını yapıştırıp Kaydet'e basın; “Bağlı” yazısını görün.
- Modül konumunu ve Menü Ataması'nı seçin, durumu Yayında yapıp Kaydet ve Kapat.
Eklentiyi kaldırdığınızda site lisansınızdan otomatik ayrılır ve site hakkınız boşa çıkar. Kullanılmayan siteleri servis panelinizden de kaldırabilirsiniz.
Erişim seviyeleri
| Uç nokta | Başlangıç | Pro | Kurumsal |
|---|---|---|---|
| Lisans doğrulama, site aktivasyonu, cihaz sorgulama | ✓ (eklenti) | ✓ | ✓ |
| Kayıt listeleme ve detay (okuma) | — | ✓ | ✓ |
| Kayıt oluşturma ve durum güncelleme (yazma) | — | — | ✓ |
Kimlik doğrulama
Servis panelinizde Servis Ayarları → Eklenti ve API bölümünden lisans anahtarınızı ve API gizli anahtarınızı alın. Gizli anahtar asla tarayıcıya veya mobil uygulamanın içine konmamalıdır; istekleri her zaman kendi sunucunuzdan gönderin.
Her istekte şu başlıklar gönderilir:
X-CS-License | Lisans anahtarı |
X-CS-Timestamp | Unix zamanı (saniye). Sunucu saatinden en fazla 5 dakika farklı olabilir. |
X-CS-Signature | İstek imzası (aşağıda) |
X-CS-Domain | Eklentiler için: isteği yapan sitenin alan adı. Başlangıç paketinde zorunlu. |
X-CS-End-User-IP | İsteğe bağlı: sorgu yapan ziyaretçinin IP'si (hız sınırı ziyaretçi bazında uygulanır). |
İmza nasıl hesaplanır?
imzalanacak_metin = METHOD + "\n" + YOL_VE_SORGU + "\n" + TIMESTAMP + "\n" + hex(sha256(GÖVDE))
X-CS-Signature = hex(hmac_sha256(gizli_anahtar, imzalanacak_metin))
Örnek imzalanacak metin (GET, gövde boş):
GET
/v1/track?code=CS-7K4M2P&phone4=1234
1760700000
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
PHP örneği
$key = 'XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX';
$secret = 'gizli-anahtariniz';
$uri = '/v1/track?code=CS-7K4M2P&phone4=1234';
$ts = (string) time();
$sig = hash_hmac('sha256', "GET\n$uri\n$ts\n" . hash('sha256', ''), $secret);
$ch = curl_init('https://api.cihazsorgula.com' . $uri);
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [
"X-CS-License: $key", "X-CS-Timestamp: $ts", "X-CS-Signature: $sig",
'X-CS-Domain: teknikservisim.com',
]]);
$sonuc = json_decode(curl_exec($ch), true);
Hazır PHP istemcisi (CihazSorgulaClient.php) için bizimle iletişime geçin; imzalama ve hata yönetimini sizin yerinize yapar.
Uç noktalar
Temel adres: https://api.cihazsorgula.com · Tüm yanıtlar JSON'dur ve "ok": true|false alanı içerir.
GET /v1/ping
Bağlantıyı ve lisansı test eder. Paket, bitiş tarihi, site limiti ve alan adının aktive olup olmadığını döner.
POST /v1/activate · POST /v1/deactivate
Siteyi lisansa bağlar / ayırır. Gövde: {"domain": "teknikservisim.com", "platform": "wordpress", "plugin_version": "1.0.0"}. Paketinizin site limiti aşılırsa site_limit hatası döner.
GET /v1/track?code=…&phone4=…
Müşteri cihaz sorgusu. Takip numarası ve kayıtlı telefonun son 4 hanesi eşleşirse durum, ilerleme, işlem geçmişi (yalnızca müşteriye açık notlar), ücret ve servis bilgilerini döner. Müşteri adı maskelenir.
GET /v1/statuses
Servisin kullandığı durumlar (received, inspecting, awaiting_approval, awaiting_parts, repairing, testing, ready, delivered, cancelled).
GET /v1/tickets (Pro, Kurumsal)
Kayıt listesi. Filtreler: status, updated_since (ISO 8601), phone, page, per_page (en fazla 100).
GET /v1/tickets/{takip_no} (Pro, Kurumsal)
Kaydın tüm detayı: müşteri, parça/işçilik kalemleri, iç notlar dahil tüm geçmiş.
POST /v1/tickets (Kurumsal)
{
"customer": {"name": "Ahmet Yılmaz", "phone": "05321234567", "email": "[email protected]"},
"device_type": "Akıllı Telefon", "brand": "Samsung", "model": "Galaxy S23",
"serial_imei": "35xxxxxxxxxxxxx", "complaint": "Ekran kırık",
"accessories": "Kılıf", "estimated_cost": 3450, "estimated_ready_at": "2026-10-25"
}
Başarılı olursa 201 ile takip numarası ve sorgu bağlantısı döner.
POST /v1/tickets/{takip_no}/status (Kurumsal)
Gövde: {"status": "ready", "note": "Cihaz hazır", "is_public": true, "final_cost": 3450}
Hata kodları
401 | auth_missing, auth_expired, license_invalid, signature_invalid |
402 | license_expired — lisans süresi dolmuş |
403 | plan_required, domain_required, domain_not_activated, site_limit, ticket_limit, service_suspended |
404 | not_found — kayıt bulunamadı veya bilgiler eşleşmedi |
422 | invalid_code, invalid_phone, validation_failed, status_invalid |
429 | rate_limited — lisans başına dakikada 300 istek; ziyaretçi başına 10 dakikada 20 sorgu |