Webhooks
Olay tabanlı ödeme doğrulama, imza kontrolü ve idempotent event işleme.
Webhook, ödeme sonucunu kendi backend’inize taşımanın güvenilir yoludur. Kullanıcının gördüğü ekran veya redirect tek başına yeterli değildir.
Ayrıntı: Webhook Delivery ve Güvenlik.
Prensip
- Redirect / success sayfası: bilgilendirme
- Webhook + gerekirse
payments.get: nihai state
Handler iskeleti
export async function handleWebhook(rawBody: string, signature: string) {
// 1) İmza doğrula
// 2) Event parse
// 3) event.id ile daha önce işlendi mi?
// 4) Sipariş / abonelik state güncelle
// 5) 2xx
}Sık event tipleri
payment.succeededpayment.authorizedpayment.requires_actionpayment.requires_payment_methodpayment.canceled/payment.refundedcharge.declined(operasyonel detay)checkout_session.completed(hosted checkout)
payment.updated gibi genel isimlere güvenmeyin; abonelik ettiğiniz event listesini dashboard’da netleştirin.
Dayanıklılık
- İmza hatalıysa 401/403
- Aynı event ikinci kez gelirse no-op (idempotent)
- Handler’ı kuyruğa almak pik trafikte faydalıdır; iş mantığı yine idempotent kalmalı