Alan Adı Temelleri

1.7k görüntülenme Markdown

Bir alan adının ad sunucularını, transfer kilidini, sahiplik bilgilerini ve geri alınmasını yöneten on uç.

Genel Bakış

Bu on uç bir alan adının temel işlerini yürütür: nereye baktığı, taşınıp taşınamayacağı, kime ait göründüğü ve süresi dolduğunda geri alınıp alınamayacağı.

Hepsi tescil kuruluşuna gerçek çağrı yapar. Bu yüzden yavaş olabilirler, kuruluşun kendi kurallarına takılabilirler ve bir modül bir işlemi hiç desteklemeyebilir. Her uç aynı dört ön koşulu paylaşır: hizmet var olmalı, alan adı olmalı, bir tescil modülü bağlı olmalı ve o modül işlemi desteklemeli.

Referans

Ad Sunucularını Ayarlama

put/api/v1/admin/services/{id}/domain/nameservers
Services/SetDomainNameservers admin tescile gider

Alan adının hangi ad sunucularına bakacağını yazar.

Gövde 4
ns1stringzorunluBirincil ad sunucusu. Geçerli bir sunucu adı olmalı.
ns2stringzorunluİkincil ad sunucusu.
ns3stringÜçüncü ad sunucusu.
ns4stringDördüncü ad sunucusu.
Dönen alanlar data — 2
nameserversstring[]Yazılan ad sunucuları. Boş bırakılanlar listede olmaz.
idintHizmet kimliği.
Hatalar 7
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
ns_required422İlk iki ad sunucusundan biri boş.
ns_invalid422Ad sunucusu geçerli bir sunucu adı değil.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/520/domain/nameservers' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"ns1":"ns1.example.com","ns2":"ns2.example.com"}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/nameservers', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    ns1: 'ns1.example.com',
    ns2: 'ns2.example.com',
  }),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/nameservers');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'ns1' => 'ns1.example.com',
        'ns2' => 'ns2.example.com',
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Liste BUTUN yazilir: ns3 ve ns4 gondermezseniz varsa temizlenir.
$response = Api::Services()->SetDomainNameservers([
    'id'  => 520,
    'ns1' => 'ns1.example.com',
    'ns2' => 'ns2.example.com',
]);

Transfer Kilidini Okuma

get/api/v1/admin/services/{id}/domain/transfer-lock
Services/GetDomainTransferLock admin

Alan adının başka bir tescil kuruluşuna taşınmaya karşı kilitli olup olmadığını döndürür.

Dönen alanlar data — 1
transfer_lockstringKilidin durumu. Değer tescil kuruluşundan ham gelir; kuruluştan kuruluşa değişebilir.
Hatalar 6
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Okuma HAM deger dondurur, yazma 'enabled'/'disabled' dondurur: ikisi ayni sozlukten degil.
$response = Api::Services()->GetDomainTransferLock(['id' => 520]);

Transfer Kilidini Değiştirme

put/api/v1/admin/services/{id}/domain/transfer-lock
Services/SetDomainTransferLock admin

Alan adının taşınmaya karşı kilidini açar ya da kapatır.

Gövde 1
statusstringzorunluenable kilitler, disable kilidi açar.
Dönen alanlar data — 2
transfer_lockstringİşlem sonrası kilit durumu.
idintHizmet kimliği.
Hatalar 7
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
invalid_status422Durum enable ya da disable değil.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"status":"enable"}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ status: 'enable' }),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['status' => 'enable']),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Kilit ACIKKEN alan adi tasinamaz: musteri baska kurulusa gececekse once kapatin.
Api::Services()->SetDomainTransferLock(['id' => 520, 'status' => 'disable']);
$code = Api::Services()->GetDomainAuthCode(['id' => 520]);

Yetkilendirme Kodunu Alma

get/api/v1/admin/services/{id}/domain/auth-code
Services/GetDomainAuthCode admin e-postayla gidebilir

Alan adını başka bir tescil kuruluşuna taşımak için gereken kodu ister.

Dönen alanlar data — 2
auth_codestringYetkilendirme kodu. Yalnız modül kodu doğrudan veriyorsa döner.
sentboolKod tescil sahibinin adresine gönderildi. Bu durumda kodun kendisi yanıtta yer almaz.
Hatalar 6
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/services/520/domain/auth-code' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/auth-code', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();

if (body.data.sent) {
  // kod e-postayla gitti, yanitta yok
}
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/auth-code');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Iki farkli yanit sekli vardir; kodun geldigini VARSAYMAYIN.
$response = Api::Services()->GetDomainAuthCode(['id' => 520])['data'];

$code = $response['auth_code'] ?? null;
$mailed = $response['sent'] ?? false;
Yanıt
{
  "data": {
    "auth_code": "EXAMPLE-AUTH-CODE"
  }
}
{
  "data": {
    "sent": true
  }
}

Alan Adını Geri Alma

post/api/v1/admin/services/{id}/domain/restore
Services/RestoreDomain admin süreye bağlı

Süresi dolmuş bir alan adını geri alır. Yalnız kurtarma penceresi açıkken çalışır.

Gövde —
——Gövde gerekmez, boş gönderin. Alan adı, adresteki hizmet kimliğinden belirlenir.
Dönen alanlar data — 2
restoredboolGeri alma başarılı mı.
idintHizmet kimliği.
Hatalar 7
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
not_in_window422Alan adı kurtarma penceresinde değil. Pencere kapandıysa alan adı serbest bırakılmış olabilir.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/admin/services/520/domain/restore' \
  -H "Authorization: Bearer $API_KEY"
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/restore', {
  method: 'POST',
  headers: { Authorization: `Bearer ${apiKey}` },
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/restore');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Geri alma tescil kurulusuna UCRET oder; penceresi kapanmadan once cagirilir.
$response = Api::Services()->RestoreDomain(['id' => 520]);

Transfer Durumunu Sorma

post/api/v1/admin/services/{id}/domain/check-transfer
Services/CheckDomainTransfer admin

Süren bir alan adı transferinin nerede olduğunu tescil kuruluşuna sorar.

Gövde —
——Gövde gerekmez, boş gönderin. Transfer, adresteki hizmet kimliğinden belirlenir.
Dönen alanlar data — 2
transfer_statusstringTransferin durumu. Hizmet bir transfer değilse hata değeri döner.
messagestring | nullTescil kuruluşundan gelen açıklama.
Hatalar 6
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/admin/services/520/domain/check-transfer' \
  -H "Authorization: Bearer $API_KEY"
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/check-transfer', {
  method: 'POST',
  headers: { Authorization: `Bearer ${apiKey}` },
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/check-transfer');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Hata durumu 200 icinde doner, HTTP hatasi olarak degil: durumu okumadan basarili saymayin.
$check = Api::Services()->CheckDomainTransfer(['id' => 520])['data'];

$stuck = $check['transfer_status'] === 'error';

Tescil Durumunu Sorma

post/api/v1/admin/services/{id}/domain/check-registration
Services/CheckDomainRegistration admin

Tescil kuruluşunun kuyruğa aldığı bir tescilin tamamlanıp tamamlanmadığını sorar.

Bazı tescil kuruluşları yeni bir tescili kabul eder ve sonucu sonra bildirir. O zamana kadar hizmet inprocess kalır ve sayfasında "tescil devam ediyor" bandı görünür. domain.registration otomasyon görevi aynı kontrolü 15 dakikada bir, üç günden sonra günde bir yapar.

Gövde —
——Gövde gerekmez, boş gönderin. Tescil, adresteki hizmet kimliğinden belirlenir.
Dönen alanlar data — 3
registration_statusstringactive, pending ya da failed. active olduğunda hizmet ve eklentileri etkinleşir, vade tarihi tescil kuruluşunun bitiş tarihinden alınır ve müşteriye bildirim gider. failed olduğunda bekleyen talep kapanır ve personele bildirim gider.
messagestring | nullBeklerken tescil kuruluşunun durum metni, reddedildiğinde ret sebebi.
service_statusstringKontrolden sonraki hizmet durumu. Etkinleşince active, beklerken inprocess.
Hatalar 7
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
is_transfer422Alan adı transfer olarak sipariş edilmiş. Yukarıdaki transfer sorgusunu kullanın.
not_supported422Tescil modülü tescil sonucunu bildiremiyor.
not_pending422Bu alan adı için bekleyen tescil yok.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/admin/services/520/domain/check-registration' \
  -H "Authorization: Bearer $API_KEY"
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/check-registration', {
  method: 'POST',
  headers: { Authorization: `Bearer ${apiKey}` },
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/check-registration');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Reddedilen tescil 200 icinde doner: yalnizca HTTP koduna degil registration_status alanina bakin.
$check = Api::Services()->CheckDomainRegistration(['id' => 520])['data'];

$refused = $check['registration_status'] === 'failed';

WHOIS İletişimlerini Okuma

get/api/v1/admin/services/{id}/domain/whois
Services/GetDomainWhois admin dört iletişim

Alan adının tescil kuruluşundaki iletişim bilgilerini çeker.

Dönen alanlar data — 4
registrantobjectTescil sahibinin iletişimi. Alan adının hukuken kime ait olduğunu bu belirler.
first_namestringAd.
last_namestringSoyad.
companystringFirma adı.
emailstringE-posta adresi.
phonestringTelefon numarası.
phone_ccstringTelefonun ülke kodu.
faxstringFaks numarası.
fax_ccstringFaksın ülke kodu.
address_line1stringAdresin ilk satırı.
address_line2stringAdresin ikinci satırı.
citystringŞehir.
statestringEyalet ya da bölge.
zipcodestringPosta kodu.
countrystringÜlke. İki harfli ISO kodu.
administrativeobjectİdari iletişim.
first_namestringAd.
last_namestringSoyad.
companystringFirma adı.
emailstringE-posta adresi.
phonestringTelefon numarası.
phone_ccstringTelefonun ülke kodu.
faxstringFaks numarası.
fax_ccstringFaksın ülke kodu.
address_line1stringAdresin ilk satırı.
address_line2stringAdresin ikinci satırı.
citystringŞehir.
statestringEyalet ya da bölge.
zipcodestringPosta kodu.
countrystringÜlke. İki harfli ISO kodu.
technicalobjectTeknik iletişim.
first_namestringAd.
last_namestringSoyad.
companystringFirma adı.
emailstringE-posta adresi.
phonestringTelefon numarası.
phone_ccstringTelefonun ülke kodu.
faxstringFaks numarası.
fax_ccstringFaksın ülke kodu.
address_line1stringAdresin ilk satırı.
address_line2stringAdresin ikinci satırı.
citystringŞehir.
statestringEyalet ya da bölge.
zipcodestringPosta kodu.
countrystringÜlke. İki harfli ISO kodu.
billingobjectFaturalama iletişimi.
first_namestringAd.
last_namestringSoyad.
companystringFirma adı.
emailstringE-posta adresi.
phonestringTelefon numarası.
phone_ccstringTelefonun ülke kodu.
faxstringFaks numarası.
fax_ccstringFaksın ülke kodu.
address_line1stringAdresin ilk satırı.
address_line2stringAdresin ikinci satırı.
citystringŞehir.
statestringEyalet ya da bölge.
zipcodestringPosta kodu.
countrystringÜlke. İki harfli ISO kodu.
Hatalar 6
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/services/520/domain/whois' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/whois', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/whois');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Okuma tescil kurulusuna gider ve yerel kopyayi da tazeler: yavas olabilir.
$whois = Api::Services()->GetDomainWhois(['id' => 520])['data'];
$owner = $whois['registrant'];
Yanıt
{
  "data": {
    "registrant": {
      "first_name": "John",
      "last_name": "Doe",
      "company": "",
      "email": "[email protected]",
      "phone": "5550100",
      "phone_cc": "+1",
      "fax": "",
      "fax_cc": "",
      "address_line1": "123 Market Street",
      "address_line2": "",
      "city": "San Francisco",
      "state": "California",
      "zipcode": "94105",
      "country": "US"
    },
    "administrative": { "first_name": "John", "last_name": "Doe", "email": "[email protected]" },
    "technical": { "first_name": "John", "last_name": "Doe", "email": "[email protected]" },
    "billing": { "first_name": "John", "last_name": "Doe", "email": "[email protected]" }
  }
}

WHOIS İletişimlerini Yazma

put/api/v1/admin/services/{id}/domain/whois
Services/SetDomainWhois admin sahiplik etkilenir

İletişim bilgilerini tescil kuruluşuna yazar.

Gövde 4
registrantobjectTescil sahibinin iletişimi. Alan adının hukuken kime ait olduğunu bu belirler.
first_namestringAd.
last_namestringSoyad.
companystringFirma adı.
emailstringE-posta adresi.
phonestringTelefon numarası.
phone_ccstringTelefonun ülke kodu.
faxstringFaks numarası.
fax_ccstringFaksın ülke kodu.
address_line1stringAdresin ilk satırı.
address_line2stringAdresin ikinci satırı.
citystringŞehir.
statestringEyalet ya da bölge.
zipcodestringPosta kodu.
countrystringÜlke. İki harfli ISO kodu.
administrativeobjectİdari iletişim.
first_namestringAd.
last_namestringSoyad.
companystringFirma adı.
emailstringE-posta adresi.
phonestringTelefon numarası.
phone_ccstringTelefonun ülke kodu.
faxstringFaks numarası.
fax_ccstringFaksın ülke kodu.
address_line1stringAdresin ilk satırı.
address_line2stringAdresin ikinci satırı.
citystringŞehir.
statestringEyalet ya da bölge.
zipcodestringPosta kodu.
countrystringÜlke. İki harfli ISO kodu.
technicalobjectTeknik iletişim.
first_namestringAd.
last_namestringSoyad.
companystringFirma adı.
emailstringE-posta adresi.
phonestringTelefon numarası.
phone_ccstringTelefonun ülke kodu.
faxstringFaks numarası.
fax_ccstringFaksın ülke kodu.
address_line1stringAdresin ilk satırı.
address_line2stringAdresin ikinci satırı.
citystringŞehir.
statestringEyalet ya da bölge.
zipcodestringPosta kodu.
countrystringÜlke. İki harfli ISO kodu.
billingobjectFaturalama iletişimi.
first_namestringAd.
last_namestringSoyad.
companystringFirma adı.
emailstringE-posta adresi.
phonestringTelefon numarası.
phone_ccstringTelefonun ülke kodu.
faxstringFaks numarası.
fax_ccstringFaksın ülke kodu.
address_line1stringAdresin ilk satırı.
address_line2stringAdresin ikinci satırı.
citystringŞehir.
statestringEyalet ya da bölge.
zipcodestringPosta kodu.
countrystringÜlke. İki harfli ISO kodu.
Dönen alanlar data — 1
savedboolKaydetme başarılı mı.
Hatalar 6
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/520/domain/whois' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"registrant":{"first_name":"John","last_name":"Doe","email":"[email protected]","phone":"5550100","phone_cc":"+1","address_line1":"123 Market Street","city":"San Francisco","state":"California","zipcode":"94105","country":"US"}}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/whois', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    registrant: {
      first_name: 'John',
      last_name: 'Doe',
      email: '[email protected]',
      phone: '5550100',
      phone_cc: '+1',
      address_line1: '123 Market Street',
      city: 'San Francisco',
      state: 'California',
      zipcode: '94105',
      country: 'US',
    },
  }),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/whois');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'registrant' => [
            'first_name'    => 'John',
            'last_name'     => 'Doe',
            'email'         => '[email protected]',
            'address_line1' => '123 Market Street',
            'city'          => 'San Francisco',
            'country'       => 'US',
        ],
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Once okuyup uzerine yazin: eksik gonderilen alanlar tescilde bosalabilir.
$whois = Api::Services()->GetDomainWhois(['id' => 520])['data'];

$whois['registrant']['email'] = '[email protected]';

Api::Services()->SetDomainWhois(['id' => 520] + $whois);

Kayıt Gizliliğini Değiştirme

put/api/v1/admin/services/{id}/domain/whois-privacy
Services/SetDomainWhoisPrivacy admin

İletişim bilgilerinin genel sorgularda gizlenmesini açar ya da kapatır.

Gövde 1
statusstringzorunluenable gizler, disable gizlemeyi kaldırır.
Dönen alanlar data — 1
whois_privacystringİşlem sonrası gizlilik durumu. Ya enabled ya da disabled.
Hatalar 7
not_found404Hizmet bulunamadı.
not_domain422Hizmet bir alan adı değil.
no_module422Tescil modülü bağlı değil.
not_supported422Modül bu işlemi desteklemiyor.
invalid_status422Durum enable ya da disable değil.
module_error422Tescil kuruluşu isteği reddetti; mesaj gerekçesini taşır.
module_failed500Tescil kuruluşuna ulaşılamadı ya da işlem gerekçesiz başarısız oldu.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/520/domain/whois-privacy' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"status":"enable"}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/whois-privacy', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ status: 'enable' }),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/whois-privacy');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['status' => 'enable']),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Gizlilik cogu uzantida UCRETLI bir eklentidir: acmak fatura dogurabilir.
$response = Api::Services()->SetDomainWhoisPrivacy([
    'id'     => 520,
    'status' => 'enable',
]);

Tuzaklar

Yetkilendirme kodunun iki yanıt şekli var

Bazı tescil kuruluşları kodu doğrudan verir, bazıları tescil sahibinin adresine e-postayla gönderir. İkinci durumda yanıtta yalnız gönderildiği bilgisi bulunur, kodun kendisi yoktur. Kodun geldiğini varsayan bir istemci burada boş değer okur.

Ad sunucusu listesi bütün yazılır

Gönderdiğiniz set yeni gerçektir: üçüncü ve dördüncü sunucuyu göndermezseniz varsa temizlenirler. Yalnız birincil sunucuyu değiştirmek istiyorsanız bile diğerlerini birlikte göndermeniz gerekir.

Tescil sahibini değiştirmek sahipliği değiştirir

WHOIS yazma ucu iletişim bilgisi güncellemekten fazlasıdır: tescil sahibi alanı alan adının hukuken kime ait olduğunu belirler. Çoğu uzantıda bu değişiklik bir onay süreci başlatır ve alan adını bir süre transfere kapatır. Ayrıca eksik gönderilen alanlar tescilde boşalabilir; önce okuyup üzerine yazın.

Geri alma penceresi kapanır

Süresi dolan bir alan adı önce geri alınabilir bir dönemden geçer, sonra serbest bırakılır. Pencere kapandıktan sonra bu uç not_in_window döndürür ve yapılacak bir şey kalmaz. Geri alma ayrıca tescil kuruluşuna genelde yüksek bir ücret ödetir.

Transfer kontrolü hatayı 200 içinde döndürür

Hizmet bir transfer değilse ya da transfer takılmışsa bunu HTTP hatası olarak değil, yanıttaki durum alanında öğrenirsiniz. Yalnız durum koduna bakan bir istemci başarısız transferi başarılı sayar.

Her modül kuyruğa alınan tescili bildirmez

Tescil sorgusu registration_sync() sunan bir modül ister; diğerleri not_supported döner. Bu modüllerde ad tescil kuruluşunda kayıtlı olunca hizmeti kendiniz etkinleştirin. Ret sonrasında hizmeti etkinleştirmek yeni bir tescil gönderir.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.