Alan Adı Edinme Kancaları

1.6k görüntülenme Markdown

Alan adı sağlayıcısına giden yolun on kancası: kayıt, transfer ve yenileme çağrılarının önündeki kapılar ile ardındaki olaylar.

Genel Bakış

Alan adı edinmek ücretli ve geri alınamaz bir çağrıdır. Sağlayıcı kaydı açtıktan sonra "vazgeçtim" diye bir dönüş yoktur, o yüzden bu yolun her adımında önce bir kapı, sonra bir olay durur.

Kapılar çağrıdan önce çalışır ve durdurabilir. Olaylar çağrıdan sonra çalışır, başarı ve başarısızlık için ayrı ayrı. Aşağıda onunun da tam sözleşmesi var: hangi değerler gelir, hangi sırayla, ne döndürmeniz gerekir.

Referans

Kayıt ya da transfer isteğini durdurma

gatedomain.create
RegistrarModule::create() ücretli çağrı öncesi

Sağlayıcıya kayıt ya da transfer isteği gitmeden hemen önce çalışır; yöntemin var olduğu doğrulanmış, argümanlar henüz kurulmamıştır.

Parametreler 3
$servicearrayProvizyon edilen hizmet kaydı. Sahip, ürün ve dönem bilgisi buradadır.
$optionsarraySağlayıcıya gidecek parametreler: sld, tld, year, dns, whois, tcode.
$methodstringÇalışacak yöntem: register ya da transfer. Transfer kodu varsa transferdir.
Dönüş 1
stringBoş olmayan bir string işlemi durdurur; metin hata olarak fırlatılır ve sağlayıcı hiç çağrılmaz. null ya da boş string akışı sürdürür.
Dinleyici
Hook::add('gate:domain.create', 10, function ($service, $options, $method) {
    if ($method === 'transfer') return null;              // transferi serbest birak

    $years = (int) ($options['year'] ?? 1);
    if ($years > 5) return 'Bir seferde en fazla 5 yil kayit yapilir.';

    return null;
});

Kayıt ya da transfer sonucunu alma

actiondomain.created
RegistrarModule::create():184 her çağrıda bir kez

Sağlayıcı çağrısı döndükten hemen sonra çalışır. Başarı garantisi değildir: sonuç değeri başarısızlığı da taşıyabilir. Kayıt kuruluşu siparişi kuyruğa alıyorsa kabulde çalışır; ad kaydı sonra gelir.

Parametreler 3
$servicearrayProvizyon edilen hizmet kaydı.
$resultarray|boolSağlayıcının dönüşü: yapılandırma ve durum dizisi, ya da başarısızlıkta false. İlk bakacağınız değer budur.
$methodstringÇalıştırılan yöntem: register ya da transfer.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.created', 10, function ($service, $result, $method) {
    if ($result === false) return;                        // basarisizlik ayri kancada

    if ($method === 'register') Dns::applyTemplate($service['name'] ?? '');
});

Kayıt başarısızlığını yakalama

actiondomain.register_failed
RegistrarModule::create() Services::check_registration_status():1618 yalnız başarısızlıkta

Sağlayıcı çağrısı başarısız döndüğünde çalışır; bir önceki kancadan hemen sonradır. Kayıt kuruluşu kuyruğa alınan bir kaydı reddettiğinde de çalışır; o zaman $method register, $error ret sebebini taşır.

Parametreler 4
$servicearrayProvizyon edilmeye çalışılan hizmet kaydı.
$optionsarraySağlayıcıya gönderilen parametreler.
$methodstringÇalıştırılan yöntem.
$errorstringModülün bildirdiği hata mesajı. Boş olabilir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.register_failed', 10,
    function ($service, $options, $method, $error) {
        Ops::alert('domain-provision', [
            'name'   => $service['name'] ?? '',
            'method' => $method,
            'error'  => $error ?: 'saglayici gerekce bildirmedi',
        ]);
    });

Kuyruğa alınan kaydı izleme

actiondomain.registration.completed
Services::check_registration_status():1656 hizmet artık yayında

Kayıt kuruluşunun kuyruğa aldığı bir kaydı sağlayıcı onayladıktan, hizmet etkinleştikten ve müşteriye bildirim gittikten sonra çalışır. Aynı çağrıda tamamlanan kayıt onu hiç çalıştırmaz.

Parametreler 1
$servicearrayHizmetin taze kaydı; vade tarihi kayıt kuruluşunun bitiş tarihinden gelir. Beklerken iptal ettiğiniz ya da askıya aldığınız hizmet etkinleşmez; durumunu okuyun.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.registration.completed', 10, function ($service) {
    if (($service['status'] ?? '') === 'active')
        ExternalDns::provision($service['name'] ?? '');
});

Yenileme isteğini durdurma

gatedomain.renew
RegistrarModule::renew():144 ücretli çağrı öncesi

Yenileme isteği sağlayıcıya gitmeden önce çalışır.

Parametreler 2
$servicearrayYenilenen hizmet kaydı. Bitiş tarihi ve dönem bilgisi içindedir.
$optionsarrayYenileme parametreleri: sld, tld, year.
Dönüş 1
stringBoş olmayan string yenilemeyi durdurur. Bu kanca gece çalışan görevlerden de geçer — durdurduğunuzda alan adı yenilenmemiş kalır.
Dinleyici
Hook::add('gate:domain.renew', 10, function ($service, $options) {
    // Musteri iptal istemisse yenileme parayi bosa harcar.
    if (Acme::cancelRequested((int) ($service['id'] ?? 0)))
        return 'Iptal talebi acik oldugu icin yenileme durduruldu.';

    return null;
});

Yenilemenin tamamlandığını öğrenme

actiondomain.renewed
Invoices::handle_renewal_domain_paid():1040 ödeme yolundan

Ödenmiş yenileme kalemi işlenip bitiş tarihi uzatıldıktan ve sağlayıcı güncellendikten sonra çalışır.

Parametreler 1
$servicearrayYenilenmiş hizmet kaydı. Bitiş tarihi güncel değerdir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.renewed', 10, function ($service) {
    ExternalDns::syncExpiry($service['name'] ?? '', $service['duedate'] ?? '');
});

Yenileme başarısızlığını yakalama

actiondomain.renew_failed
RegistrarModule::renew() süre dolma riski

Sağlayıcının yenileme çağrısı başarısız döndüğünde çalışır.

Parametreler 3
$servicearrayYenilenmeye çalışılan hizmet kaydı.
$optionsarrayYenileme parametreleri.
$errorstringModülün bildirdiği hata mesajı; boş olabilir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.renew_failed', 10, function ($service, $options, $error) {
    // Musteri odedi ama alan adi yenilenmedi: bu bir insan isi.
    Ops::page('domain-renew-failed', $service['name'] ?? '', $error);
});

Transferin tamamlanmasını izleme

actiondomain.transfer.completed
Services::check_transfer_status():1537 hizmet artık etkin

Sağlayıcı transferi tamamlanmış bildirdikten, hizmet etkinleştirildikten ve bildirim gönderildikten sonra çalışır.

Parametreler 1
$servicearrayEtkinleştirme sonrası taze okunmuş hizmet kaydı; bitiş ve başlangıç tarihleri günceldir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.transfer.completed', 10, function ($service) {
    ExternalDns::provision($service['name'] ?? '');
});

Transfer kontrolünün düşmesini yakalama

actiondomain.transfer.failed
Services::check_transfer_status():1510 kontrol tekrarlanır

Sağlayıcının transfer durumu sorgusu başarısız döndüğünde, hata fırlatılmadan hemen önce çalışır.

Parametreler 1
$servicearrayTransfer kontrolü düşen alan adı hizmeti.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.transfer.failed', 10, function ($service) {
    // Kontrol duzenli tekrarlanir: her dususte degil, ustuste dususte uyarin.
    if (Acme::failStreak((int) ($service['id'] ?? 0)) >= 3)
        Ops::alert('domain-transfer-stuck', $service['name'] ?? '');
});

Transfer kodunun kaydını izleme

actiondomain.transfer_authcode_saved
ClientDomains gizli değer

Müşteri gelen transfer için yetki kodunu kaydettikten sonra çalışır. Transfer sürecini yürüten dış sisteme haber vermenin yeri burasıdır.

Parametreler 2
$servicearrayAlan adı kaydı.
$codestringKaydedilen yetki kodu, açık metin. Bu kodu ele geçiren alan adını başka yere taşıyabilir: kendi kaydınıza yazmayın, günlüğe düşürmeyin.
Dönüş 1
voidDönüş yoksayılır. Kod çoktan kaydedilmiştir.
Dinleyici
Hook::add('action:domain.transfer_authcode_saved', 10, function ($service, $code) {
    // Kodun kendisini DEGIL, yalnizca girildigi bilgisini tasiyin.
    Acme::transferReady((int) ($service['id'] ?? 0), $service['name'] ?? '');
});

Tuzaklar

Sonuç kancası başarıyı garanti etmez

Kayıt kancası sağlayıcı çağrısı döndüğünde çalışır, başarılı olduğunda değil. İkinci parametre false ise iş tutmamıştır. Kontrol etmeden DNS kurmak ya da müşteriye "alan adınız hazır" demek, var olmayan bir kaydı gerçek saymak demektir.

Yenileme kapısı gece çalışan görevden de geçer

Yenileme yalnız operatörün elinden çalışmaz: ödeme sonrası akış ve zamanlanmış görevler aynı kapıdan geçer. Orada koyduğunuz bir koşul, kimse farkında olmadan alan adının yenilenmemesine yol açabilir. Kapıyı durdurduğunuzda bunu bir yere yazın; sessiz veto en pahalı olanıdır.

Transfer kontrolü tekrarlanır

Transfer durumu düzenli aralıklarla sorulur ve her düşen sorgu başarısızlık kancasını yeniden çalıştırır. Her çağrıda uyarı gönderen bir dinleyici, bekleyen tek bir transfer için onlarca bildirim üretir. Üst üste düşmeyi sayın, tek düşüşe tepki vermeyin.

Kapı ücretli çağrının önündeki son duraktır

Kayıt ve yenileme kapıları, para harcanmadan önceki son noktadır. Fraud kontrolü, kota denetimi, premium onayı gibi işler buraya konur. Çağrıdan sonra yapılan aynı kontrol, parayı geri getirmez.

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.