Alan Adı Edinme Kancaları
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
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.
sld, tld, year, dns, whois, tcode.register ya da transfer. Transfer kodu varsa transferdir.null ya da boş string akışı sürdürür.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
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.
false. İlk bakacağınız değer budur.register ya da transfer.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
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.
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
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.
Hook::add('action:domain.registration.completed', 10, function ($service) {
if (($service['status'] ?? '') === 'active')
ExternalDns::provision($service['name'] ?? '');
});Yenileme isteğini durdurma
Yenileme isteği sağlayıcıya gitmeden önce çalışır.
sld, tld, year.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
Ödenmiş yenileme kalemi işlenip bitiş tarihi uzatıldıktan ve sağlayıcı güncellendikten sonra çalışır.
Hook::add('action:domain.renewed', 10, function ($service) {
ExternalDns::syncExpiry($service['name'] ?? '', $service['duedate'] ?? '');
});Yenileme başarısızlığını yakalama
Sağlayıcının yenileme çağrısı başarısız döndüğünde çalışır.
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
Sağlayıcı transferi tamamlanmış bildirdikten, hizmet etkinleştirildikten ve bildirim gönderildikten sonra çalışır.
Hook::add('action:domain.transfer.completed', 10, function ($service) {
ExternalDns::provision($service['name'] ?? '');
});Transfer kontrolünün düşmesini yakalama
Sağlayıcının transfer durumu sorgusu başarısız döndüğünde, hata fırlatılmadan hemen önce çalışır.
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
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.
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
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 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 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.
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.
İlgili Makaleler
- Hizmet Yaşam Döngüsü Kancaları
- Fatura ve Ödeme Kancaları
- Kanca Dinleyicisi Yazma
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.