Barındırma hizmetimizi yeniden satarsınız. Müşterileriniz sizindir: sizin fiyatlarınız, sizin faturalarınız, sizin ödeme sağlayıcınız. Zaten çalıştırdığınız sistem her neyse —bir faturalandırma paneli, kendi WordPress siteniz veya bir betik— platformumuzu onun üzerinden bu şekilde yönetirsiniz.
Müşterilerinizin gerçekte gördüğü şey
İşin teknik ayrıntılarına geçmeden önce: müşterileriniz bizi asla görmek zorunda değildir. Üç yüzey vardır ve hangisini kullanacağınızı siz seçersiniz.
| Yüzey | Kime ait olduğu |
|---|
| Kendi ana bilgisayar adınızdaki barındırma paneli | Bayilik → Markanız altından bir panel ana bilgisayar adı belirleyin; müşterileriniz logonuz ve renklerinizle panel.sirketiniz.com adresinden giriş yapsın. Aynı panel, sizin adresiniz. |
| Kendi web siteniz | WordPress eklentisi sitenize alan adı araması ile tek tıkla giriş bağlantısı ekler ve siparişi kendi WooCommerce ödeme adımınız üzerinden alır. |
| Faturalandırma paneliniz | WHMCS veya HostBill ön kapı olarak kalır; modül arka planda temel hazırlığı yapar ve müşteri paneli düğmesi onları doğrudan barındırma hizmetlerine giriş yaptırır. |
⛔ 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 toptan satış fiyatı üzerinden ayda bir kez size fatura keseriz.
Bir panel ana bilgisayar adı belirledikten sonra, bunu yalnızca WordPress eklentisindeki Panel adresi alanına girin ve başka hiçbir yere yazmayın; bu API'nin oluşturduğu oturum açma bağlantıları onu 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, şirket 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 tane oluşturun. Yalnızca ihtiyaç duyduğu izinleri verin:
| İzin | Nedeni |
|---|
org.read | Müşteri hesaplarınızı okuma |
sites.create | Bir site için temel hazırlığı yapma |
sites.view | Bir hizmeti okuma |
sites.delete | Sonlandırma |
reseller.view | Hizmetlerinizi listeleme ve kullanımı okuma |
reseller.provision | Askıya alma, serbest bırakma ve bir müşteriyi oturum açtırma |
⛔ Bir entegrasyona kesinlikle reseller.manage izni vermeyin. Bu izin, fiyat listenizi ve kendi ödeme ağ geçidi kimlik bilgilerinizi düzenler. reseller.provision, bir faturalandırma paneline veya web sitesine yapıştırdığınız bir anahtarın bu izne ihtiyaç duymaması için tam olarak bu amaçla vardır.
Anahtar yalnızca bir kez gösterilir. Onu diğer kimlik bilgilerinizi sakladığınız yerde saklayın; web sunucunuzun sunduğu bir dosyanın içinde asla bulundurmayın.
2. İlk çağrınızı yapın
curl https://api.zinndigital.com/v1/reseller/services \
-H "Authorization: Bearer zdk_live_…"
Bu, hazırlığını yaptığınız her hizmeti, site başına bir satır olacak şekilde, ait olduğu müşteri, durumu ve bunun için aldığınız ücretle birlikte döndürür. Yeni bir hesapta bu boş bir listedir; bu bir hata değil, doğru yanıttır.
3. Altı çağrıda tüm entegrasyon
ZAMAN ÇAĞRI
bir sipariş ödendi POST /v1/orgs MÜŞTERİ başına bir kez
POST /v1/sites HİZMET başına bir kez
ödemediler POST /v1/reseller/services/{siteId}/suspend
öderler POST /v1/reseller/services/{siteId}/unsuspend
iptal ederler DELETE /v1/sites/{siteId}
"barındırmaya gir" POST /v1/reseller/services/{siteId}/sso
Temel hazırlığı iki çağrıdır ve anahtarlar önem taşır:
# 1. müşterinin hesabı — SİZİN müşteri kimliğinizle anahtarlanmış
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. siteleri — SİZİN hizmet kimliğinizle anahtarlanmış
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ış uygulandığında maliyet yaratan iki kural
- Hesabı MÜŞTERİNİZE, siteyi ise HİZMETİNİZE göre anahtarlayın. Bir müşterinin ikinci siparişi, zaten sahip olduğu hesaba yönlendirilmelidir. Her ikisini de hizmete göre anahtarlarsanız, bir müşteri ilişkisiz üç hesap ve üç ayrı panelle kalır.
- Her
POST isteğinde, ilgili öge için kendi kimliğinizden oluşturulmuş bir Idempotency-Key gönderin. Her faturalandırma sistemi yeniden dener — bir ağ geçidi geri çağrısı iki kez gelebilir, bir yönetici başarısız bir hazırlığı yeniden çalıştırabilir, bir müşteri çift tıklayabilir. Anahtar olmadan ikinci deneme ikinci bir site oluşturur ve bunun için faturalandırılırsınız.
İkiye indirgememeniz gereken üç yanıt
unsuspend işlemi 409 yanıtı verebilir. Bu, sitenin siz değil, bizim kötüye kullanım ekibimiz tarafından tutulduğu anlamına gelir. Mesajı gösterin; yeniden denemeyin.
- **Sonlandırma işlemi bir silme işlemi planlar, anında silme gerçekleştirmez.** Tarih
pending_deletion_at olarak geri döner. Bir müşteriye verilerinin henüz silinmemişken 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 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 hiçbir ölçüm alamadığınız bir site için yeşil bir kullanım çubuğu gösterirsiniz.
4. Bir müşteriyi oturum açtırın
POST /v1/reseller/services/{siteId}/sso, müşterinizi doğrudan kendi hesabına oturum açmış olarak yönlendiren tek kullanımlık bir URL döndürür.
⛔ Bunu sayfayı oluştururken değil, her zaman müşteri tıkladığında üretin. Bağlantı tek kullanımlıktır ve dakikalar içinde geçerliliğini yitirir; bu nedenle bir sayfaya yazılan bağlantı ilk sayfa görüntülemesinde harcanır ve sizinle tarayıcı arasındaki her önbellekte 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 üzerinde ürün serisini belirleyin. Bağlantıyı Test Et düğmesine basın: gerçek bir çağrı yapar ve platformun ne söylediğini size bildirir.
- HostBill —
includes/modules/Hosting/zinn/ dizinine kopyalayın ve aynı şekilde bağlayın.
- WordPress — Zinn® Reseller Toolkit: alan adı araması, müşterilerinizin barındırmasına giriş bağlantısı ve bir sipariş ödendiğinde WooCommerce temel hazırlığı. <https://github.com/Zinn-Digital/zinn-reseller-toolkit> adresinde açık kaynaklıdır 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ı veya ilk
curl çağrınız bir liste döndürüyor.
- Fiyat listeniz belirlendi (Bayilik → Fiyatlarınız).
- Ödeme ağ geçidiniz bağlandı (Bayilik → Ödeme ağ geçitleri) — müşterileriniz kendi hesabınız aracılığıyla doğrudan size ödeme yapar.
- Şirket bilgileriniz girildi (Bayilik → Şirketiniz); böylece müşteri faturalarınız bizimkini değil, sizin tüzel kişiliğinizi ve KDV numaranızı taşır.
- Baştan sona bir adet gerçek sipariş verdiniz ve sitenin oluştuğunu gördünüz.
Diğer her şeyin bulunduğu yer
Spesifikasyonumuzdan oluşturulan ve her birinin ihtiyaç duyduğu izni içeren eksiksiz API referansı <https://zinndigital.com/developers/api> adresindedir.