Alan Adı Yaşam Sonu Kancaları

1.5k görüntülenme Markdown

Ödenmemiş bir alan adının sonuna kadar giden sekiz kanca: ödemesiz dönem, kurtarma dönemi, düşme ve içe aktarma.

Genel Bakış

Süresi dolan bir alan adı tek adımda kaybolmaz. Önce ödemesiz dönem gelir ve ad hâlâ normal ücretle yenilenebilir. Sonra kurtarma dönemi gelir: ad kullanımdan kalkar ve geri almak çok daha pahalıdır. En sonunda düşme gelir ve ad herkese açılır.

Bu üç aşamanın ayrı kancaları vardır ve hepsi zamanlanmış görevden çalışır. Kimse bir butona tıklamaz; ekranda kimse yoktur.

Referans

Ödemesiz döneme girişi yakalama

actiondomain.grace_started
cronjobs/DomainLifecycle zamanlanmış görev

Alan adı ödemesiz döneme geçtiği anda çalışır; ad hâlâ çalışır ve normal ücretle yenilenebilir.

Parametreler 2
$service_idintAlan adı hizmetinin kimliği.
$statearrayYaşam döngüsü durumu: stage, days_past_due, days_in_stage. Bu aşamada ayrıca grace_days, grace_fee ve grace_fee_active gelir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.grace_started', 10, function ($service_id, $state) {
    // Musteriye bu asamada ulasmak en ucuz kurtarma yoludur.
    Crm::nudge($service_id, 'domain-grace', (int) ($state['grace_days'] ?? 0));
});

Kurtarma dönemine girişi yakalama

actiondomain.redemption_started
cronjobs/DomainLifecycle ad artık çalışmıyor

Ödemesiz dönem bittiğinde çalışır. Bu noktada ad kullanımdan kalkmıştır ve geri alma ücreti devreye girer.

Parametreler 2
$service_idintAlan adı hizmetinin kimliği.
$statearrayYaşam döngüsü durumu: stage, days_past_due, days_in_stage. Bu aşamada redemption_days, redemption_fee, amount_cid ve can_restore gelir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.redemption_started', 10, function ($service_id, $state) {
    // Ucret ve para birimi state icinde gelir; kendiniz hesaplamayin.
    if (!empty($state['can_restore']))
        Crm::urgent($service_id, (float) ($state['redemption_fee'] ?? 0),
            (int) ($state['amount_cid'] ?? 0));
});

Düşme isteğini durdurma

gatedomain.delete_request
cronjobs/DomainPurge cron bağlamı

Sağlayıcıya iptal isteği gitmeden önce çalışır. Zamanlanmış görev içindedir; durdurduğunuzda kimse bir hata görmez.

Parametreler 3
$servicearrayDüşürülecek alan adı hizmeti.
$statearrayYaşam döngüsü durumu: stage, days_past_due, days_in_stage.
$modulestringSağlayıcı modülünün adı. Modül atanmamışsa boş gelir.
Dönüş 1
stringBoş olmayan bir string düşmeyi durdurur. Görev bir sonraki turda yeniden dener; kalıcı durdurma için kendi işaretinizi kendiniz tutun.
Dinleyici
Hook::add('gate:domain.delete_request', 10, function ($service, $state, $module) {
    // Musteri odeme sozu verdiyse dusmeyi bir tur ertele.
    if (Acme::promiseToPay((int) ($service['id'] ?? 0)))
        return 'Odeme sozu var; dusme ertelendi.';

    return null;
});

Düşme isteğini izleme

actiondomain.delete_requested
cronjobs/DomainPurge sağlayıcıya gitti

İptal isteği sağlayıcıya gönderildikten sonra çalışır.

Parametreler 3
$servicearrayDüşürülen alan adı hizmeti.
$statearrayYaşam döngüsü durumu: stage, days_past_due, days_in_stage.
$modulestringSağlayıcı modülünün adı; boş olabilir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.delete_requested', 10,
    function ($service, $state, $module) {
        Audit::note('domain-drop', $service['name'] ?? '', $module ?: 'modulsuz');
    });

Düşmenin tamamlandığını yakalama

actiondomain.purged
cronjobs/DomainPurge geri dönüşü yok

Hizmet iptal edilip alan adı düşürüldükten sonra çalışır. Bu son adımdır.

Parametreler 3
$service_idintAlan adı hizmetinin kimliği.
$statearrayYaşam döngüsü durumu: stage, days_past_due, days_in_stage. Bu noktada stage değeri düşme aşamasıdır.
$modulestringSağlayıcı modülünün adı; boş olabilir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.purged', 10, function ($service_id, $state, $module) {
    // Ad artik bizim degil: bagli kayitlari temizleyin.
    DnsMonitor::forget($service_id);
});

Süre dolum bildirimini izleme

actiondomain.expired_notice_sent
cronjobs/DomainExpired her eşikte bir kez

Süresi geçmiş bir alan adı için bildirim gönderildikten sonra çalışır.

Parametreler 2
$service_idintAlan adı hizmetinin kimliği.
$delayed_dayintVadenin üzerinden geçen gün. Bildirim eşiğidir: aynı ad için birden çok kez, farklı gün değerleriyle çalışır.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.expired_notice_sent', 10,
    function ($service_id, $delayed_day) {
        // Her esikte calisir: 1., 7., 15. gun ayri ayri gelir.
        if ($delayed_day >= 15) Ops::escalate('domain-expiry', $service_id);
    });

İçe aktarmayı izleme

actiondomain.imported
Imports toplu iş

Sağlayıcıdan alan adları içe aktarıldıktan sonra çalışır. Kanca tüm küme için bir kez çalışır, ad başına değil.

Parametreler 2
$importedarrayİçe aktarılan hizmet etiketleri: "example.com (#123)" biçiminde metinler. Hizmet kaydı değil etiket gelir; kimliği metinden ayıklamanız gerekir.
$module_namestringİçe aktarmanın yapıldığı sağlayıcı modülü.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:domain.imported', 10, function ($imported, $module_name) {
    // Tum kume icin BIR kez calisir; ad basina degil.
    Ops::note('domain-import', $module_name . ': ' . count($imported));
});

Bekleme ve kurtarma ücretini değiştirme

filterdomain.grace_redemption_save
AdminProductsDomain bağla geçer

Bekleme ya da kurtarma ücreti kaydedilmeden önce çalışır. Ücret politikasını tek yerden dayatmanın yolu budur: uzantı uzantı elle girmek yerine kuralı buraya yazarsınız.

Parametreler 3
$set_dataarraybağlaYazılacak fiyat kaydı: amount, cid (para birimi), owner_id, status ve diğerleri.
$typestringgrace ya da redemption.
$idintUzantı kimliği. Sıfır gelirse kayıt tek bir uzantıya değil, varsayılan olarak hepsine yazılıyordur.
Dönüş 1
voidDönüş yoksayılır; kaydın üzerine yazarsınız. Kanca her para birimi ve her tip için ayrı ayrı çalışır: tek kayıtta birden çok kez çağrıldığınızı hesaba katın.
Dinleyici
Hook::add('filter:domain.grace_redemption_save', 10, function (&$set_data, $type, $id) {
    // Bekleme suresi her uzantida ucretsiz olsun.
    if ($type === 'grace') $set_data['amount'] = 0;
});

Tuzaklar

Bu kancalarda ekran yoktur

Yaşam sonu kancalarının hepsi zamanlanmış görevden çalışır. Bir kapıyı durdurduğunuzda kimse hata mesajı görmez: ne müşteri ne operatör. Durdurma kararınızı kendi tarafınızda kaydedin, yoksa alan adının neden düşmediğini kimse anlayamaz.

Durdurmak kalıcı değildir

Görev bir sonraki turda yeniden dener. Kapıda "bir kez engelledim" diye düşünmek yanlıştır; koşulunuz her turda yeniden sorulur. Kalıcı bir bekletme istiyorsanız kendi işaretinizi tutun ve onu kapıda okuyun.

Bildirim kancası aynı ad için tekrarlanır

Süre dolum bildirimi eşik eşik gönderilir ve kanca her eşikte yeniden çalışır. Gün değerini okumadan tepki veren bir dinleyici, tek bir alan adı için art arda uyarılar üretir.

İçe aktarma etiket verir, kayıt değil

İçe aktarma kancası size "example.com (#123)" biçiminde metinler verir. Hizmet kaydı beklemek yanlıştır; kimliğe ihtiyacınız varsa metinden ayıklayın ve kaydı kendiniz okuyun.

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.