Gerçek zamanlı olay bildirimleri
Webhook sistemi ile dış servislerden anlık bildirim alabiliyoruz. Ödeme yapıldığında, abonelik değiştiğinde otomatik haberdar oluyoruz.
PayTR/Iyzico ödeme bildirimleri
Başlama, bitme, iptal
Bounce, spam bildirimleri
İletim/hata bildirimleri
Bir webhook callback geldiğinde şu teknik süreç işler:
Dış servis (PayTR/Iyzico) POST /webhooks/payment endpoint'ine istek gönderir. Laravel VerifyCsrfToken middleware'inden muaf tutar.
hash_hmac('sha256', $payload, $secret) ile gelen X-Signature header'ı doğrulanır. Eşleşmezse 401 döner - sahte webhook engellenir.
json_decode($request->getContent()) ile payload parse edilir. Event tipi (payment.success, subscription.cancelled) belirlenir.
webhook_id daha önce işlendi mi kontrol edilir. webhook_logs tablosunda varsa işlem atlanır - aynı webhook'un tekrar işlenmesi engellenir.
Event tipine göre ilgili Laravel event tetiklenir: PaymentReceived::dispatch($payment). Listener'lar veritabanını günceller, abonelik aktivasyonu yapar.
Dış servise 200 OK döner (5 saniye içinde dönmezse tekrar gönderir). Webhook webhook_logs tablosuna payload, status ve timestamp ile kaydedilir.
Olay gerçekleştiğinde otomatik gönderilen HTTP isteği.
Kapı zili gibi, misafir gelince çalar
Dış sistemin işlem sonucunu bildirdiği endpoint.
Geri arama gibi, sonucu bildirmek için arar