Bilgi Bankası

Kendi sistemlerinizden Zinn® hosting satma

Kendi faturalandırma panelinizden, WordPress sitenizden veya betiklerinizden Zinn barındırma hizmetini yönetin: bir API anahtarı alın, ilk çağrınızı yapın ve tüm entegrasyonun oluştuğu altı çağrıyı gerçekleştirin.

Hosting hizmetimizi yeniden satarsınız. Müşterileriniz sizindir: sizin fiyatlarınız, sizin faturalarınız, sizin ödeme sağlayıcınız. Mevcut sisteminizden — bir faturalandırma paneli, kendi WordPress siteniz veya bir betik — platformumuzu bu şekilde yönetirsiniz.

Müşterileriniz gerçekte ne görür?

Teknik detaylara girmeden önce: müşterileriniz bizi asla görmek zorunda kalmaz. Üç farklı alan vardır ve hangisini kullanacağınızı siz seçersiniz.

| Alan | kime aittir | |---|---| | Kendi alan adınız üzerindeki hosting paneli | Yeniden Satış → Markanız altından bir panel alan adı belirleyin; müşterileriniz panel.sirketiniz.com adresinden logonuz ve renklerinizle giriş yapsın. Aynı panel, sizin adresiniz. | | Kendi web siteniz | WordPress eklentisi, sitenize alan adı arama ve tek tıkla giriş bağlantısı yerleştirir ve siparişi kendi WooCommerce ödeme sayfanız üzerinden alır. | | Faturalandırma paneliniz | Giriş kapısı olarak WHMCS veya HostBill kullanılır; modül arka planda kurulum yapar ve müşteri alanı butonu müşterileri doğrudan hosting hesaplarına yönlendirir. |

⛔ Hangisini seçerseniz seçin, müşterileriniz için resmi satıcı sizsiniz: sizin fiyatlarınız, sizin faturalarınız, sizin KDV numaranız, sizin ödeme sağlayıcınız. Biz size, ayda bir kez toptan fiyat üzerinden fatura keseriz.

Bir panel alan adı belirledikten sonra, bunu yalnızca WordPress eklentisinin Panel adresi alanına girin ve başka hiçbir yere yazmayın — bu API'nin ürettiği giriş bağlantıları bu adresi otomatik olarak takip eder.

Dört giriş yolu

Dört giriş yolu vardır ve hepsi arka planda aynı işlemi gerçekleştirir:

| | Şunun için | |---|---| | WHMCS modülü | Bir WHMCS mağazası | | HostBill modülü | Bir HostBill mağazası | | WordPress eklentisi | Kendi WordPress veya WooCommerce sitenizden satış yapmak | | API | Diğer her şey — Blesta, kurum içi bir sistem, bir cron betiği |

1. Bir API anahtarı alın

Kontrol panelinizde API anahtarları bölümüne gidin ve bir anahtar oluşturun. Anahtara yalnızca ihtiyacı olan yetkileri verin:

| Yetki | Neden | |---|---| | org.read | Müşteri hesaplarınızı okuma | | sites.create | Bir site kurma | | sites.view | Bir hizmeti okuma | | sites.delete | Hizmeti sonlandırma | | reseller.view | Hizmetlerinizi listeleme ve kullanımı okuma | | reseller.provision | Müşteriyi askıya alma, yayına alma ve oturum açtırma |

Bir entegrasyona reseller.manage yetkisi vermeyin. Bu yetki, fiyat listenizi ve kendi ödeme ağ geçidi kimlik bilgilerinizi düzenler. reseller.provision yetkisi, tam olarak bir faturalandırma paneline veya web sitesine yapıştırdığınız bir anahtarın buna ihtiyaç duymaması için vardır.

Anahtar yalnızca bir kez gösterilir. Onu diğer kimlik bilgilerinizi sakladığınız yerde saklayın — asla web sunucunuzun sunduğu bir dosyanın içinde saklamayın.

2. İlk çağrınızı yapın

curl https://api.zinndigital.com/v1/reseller/services \
  -H "Authorization: Bearer zdk_live_…"

Bu çağrı, kurduğunuz her hizmeti (her site için bir satır olacak şekilde) ait olduğu müşteri, durumu ve ücretiyle birlikte döndürür. Yeni bir hesapta bu boş bir listedir — ki bu bir hata değil, doğru cevaptır.

3. Tüm entegrasyon, altı çağrıda

AMACINIZ             ÇAĞRI
sipariş öneğinde     POST   /v1/orgs                                   MÜŞTERİ başına bir kez
                     POST   /v1/sites                                  HİZMET başına bir kez
ödemedilerse         POST   /v1/reseller/services/{siteId}/suspend
ödediklerinde        POST   /v1/reseller/services/{siteId}/unsuspend
iptal ettiklerinde   DELETE /v1/sites/{siteId}
"hosting'e giriş"    POST   /v1/reseller/services/{siteId}/sso

Kurulum iki çağrıdan oluşur ve anahtarlar önemlidir:

# 1. müşterinin hesabı — SİZİN müşteri kimliğinizle eşleştirilmiş
curl -X POST https://api.zinndigital.com/v1/orgs \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: account-4211" \
  -d '{"type":"customer","name":"Acme Ltd"}'

# 2. müşterinin sitesi — SİZİN hizmet kimliğinizle eşleştirilmiş
curl -X POST https://api.zinndigital.com/v1/sites \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: service-9915" \
  -d '{"org_id":"<from step 1>","product_line":"mainstream","primary_domain":"acme.com"}'

Yanlış yaptığınızda maliyet çıkaracak iki kural

  1. Hesabı MÜŞTERİ koda, siteyi ise HİZMET koda eşleyin. Bir müşterinin ikinci siparişi, hali hazırda sahip olduğu hesaba tanımlanmalıdır. İkisini de hizmet koduna eşlerseniz, tek bir müşteri ilişkisiz üç ayrı hesaba ve üç farklı panele sahip olur.
  2. Öğe için kendi kimliğinizden oluşturulmuş bir Idempotency-Key değerini her POST çağrısında gönderin. Her faturalandırma sistemi yeniden dener — bir ödeme ağ geçidi bildirimi iki kez gelebilir, bir yönetici başarısız olan bir kurulumu tekrar çalıştırabilir, bir müşteri çift tıklayabilir. Anahtar olmadığında ikinci deneme yeni bir site oluşturur ve bunun için faturalandırılırsınız.

İki cevaba indirgememeniz gereken üç yanıt

  • unsuspend çağrısı 409 yanıtı dönebilir. Bu, sitenin siz değil, bizim kötüye kullanım (abuse) ekibimiz tarafından tutulduğu anlamına gelir. Mesajı gösterin; çağrıyı yeniden denemeyin.
  • **Sonlandırma işlemi silmeyi planlar, hemen gerçekleştirmez.** Tarih pending_deletion_at olarak geri döner. Bir müşteriye verilerinin henüz silinmediği halde silindiğini söylemek, hiçbir şey söylememekten daha kötüdür.
  • disk_used_bytes değeri null olabilir ve null sıfır demek değildir. Bu, hiçbir şeyin kullanılmadığı anlamına değil, ölçüm yapamadığımız anlamına gelir. Bunu atlayın — kendi kayıtlarınıza 0 yazmayın, aksi takdirde müşteriye veri alamadığınız bir site için yeşil bir kullanım çubuğu gösterirsiniz.

4. Müşteriye oturum açtırın

POST /v1/reseller/services/{siteId}/sso çağrısı, müşterinizi doğrudan kendi hesabına, oturum açmış olarak yönlendiren tek kullanımlık bir URL döndürür.

Bunu müşteri tıkladığında üretin, asla sayfayı derlerken üretmeyin. Bağlantı tek kullanımlıktır ve birkaç dakika içinde süresi dolar; bu nedenle bir sayfaya yazılan bağlantı ilk sayfa görüntülemesinde tüketilir ve siz ile tarayıcı arasındaki tüm önbelleklerde kalır.

5. Bunun yerine bir modül kurun

  • WHMCS — modülü modules/servers/zinn/ dizinine kopyalayın, Parolası API anahtarınız olan bir sunucu ekleyin ve ürün üzerindeki ürün serisini ayarlayın. Test Connection butonuna basın: gerçek bir çağrı yapar ve platformun ne yanıt verdiğini söyler.
  • HostBillincludes/modules/Hosting/zinn/ dizinine kopyalayın ve aynı şekilde bağlayın.
  • WordPressZinn® Reseller Toolkit: alan adı arama, müşterilerinizin hostingine giriş bağlantısı ve bir sipariş öneğinde WooCommerce üzerinden otomatik kurulum. <https://github.com/Zinn-Digital/zinn-reseller-toolkit> adresinden açık kaynak olarak erişebilir veya kontrol panelinizdeki Eklentiler bölümünden indirebilirsiniz.

6. Canlıya geçin

Gerçek bir sipariş almadan önce şunları kontrol edin:

  • Modüldeki bağlantı testi başarılı oluyor mu veya ilk curl çağrınız bir liste döndürüyor mu?
  • Fiyat listeniz ayarlandı mı (Yeniden Satış → Fiyatlarınız)?
  • Ödeme ağ geçidiniz bağlandı mı (Yeniden Satış → Ödeme ağ geçitleri) — müşterileriniz ödemeyi kendi hesabınız üzerinden size yapar.
  • Müşteri faturalarınızda bizim değil, sizin tüzel kişiliğinizin ve KDV numaranızın yer alması için şirket bilgileriniz girildi mi (Yeniden Satış → Şirketiniz)?
  • Baştan sona gerçek bir sipariş verip sitenin oluşmasını izlediniz mi?

Diğer her şey nerede?

Her bir endpoint'i içeren, spesifikasyonumuzdan üretilmiş ve her birinin ihtiyaç duyduğu yetkileri belirten eksiksiz API dokümantasyonuna <https://zinndigital.com/developers/api> adresinden ulaşabilirsiniz.

Hâlâ çözemediniz mi?

Her plana destek dahildir ve yanıtlar kendi dilinizdedir.

Destek ile iletişime geçin Tüm makaleler
Kendi sistemlerinizden Zinn® hosting satma