Web & Yazılım Geliştirme

Ödeme Webhook’u İki Kez Geldiğinde Çift Sipariş Nasıl Önlenir?

Aynı ödeme webhook’u yeniden teslim edildiğinde sipariş oluşturma işlemi tekrar çalışmamalıdır. Sağlayıcı olay kimliği ve iş kuralına ait benzersiz anahtar birlikte kullanılmalı; işlem durumu…

Bu yazıda neler var?

Kısa yanıt

Aynı ödeme webhook’u yeniden teslim edildiğinde sipariş oluşturma işlemi tekrar çalışmamalıdır. Sağlayıcı olay kimliği ve iş kuralına ait benzersiz anahtar birlikte kullanılmalı; işlem durumu veritabanında atomik olarak tutulmalıdır. Webhook’a başarılı yanıt vermek ile siparişin gerçekten tamamlanması farklı aşamalardır.

Olay kimliği ve sipariş kimliği ayrı korumalardır

Sağlayıcı olay kimliği aynı bildirimin yeniden teslimini tanımaya yardımcı olur. Ancak aynı ödeme için farklı olay türleri de gelebilir. Bu yüzden yalnızca “bu event daha önce geldi mi?” kontrolü yeterli olmayabilir. Siparişin hangi ödeme ve iş anahtarına bağlı olduğu da benzersiz kural ile korunmalıdır. Tekrarlı teslim, meşru bir beklenen hata senaryosu olarak tasarlanmalıdır.

Veritabanına önce bakıp ardından kayıt eklemek eşzamanlı iki istekte yarışa açıktır. Benzersiz kısıt ve uygun transaction sınırıyla işlem korunmalıdır. Bir olayın alındı, işleniyor, tamamlandı ve hata durumları ayrılmalıdır. Tamamlanmamış bir kaydın varlığı, işin başarıyla bittiği anlamına gelmez.

İmza kontrolü ve güvenli kuyruk

İş kuralına geçmeden sağlayıcının imza doğrulama yöntemini uygulayın. Doğrulamanın hangi gövde biçimini gerektirdiği resmî dokümandan kontrol edilmelidir. Geçersiz bir isteği normal ödeme olayı gibi kuyruğa almayın. Geçerli olay kalıcı olarak kaydedildikten sonra, uzun işlemler kontrollü bir kuyrukta yürütülebilir. Günlüklerde hassas ödeme ayrıntıları tutulmamalıdır.

Stripe dokümanındaki teslim davranışı, Stripe kullanan entegrasyon için referanstır; başka sağlayıcıların tekrar deneme süresi veya imza biçimi aynı kabul edilmemelidir. Proje teklifinde seçilen sağlayıcı, olay türleri, yeniden deneme kuralları ve başarısız işlerin sorumlusu açıkça belirtilmelidir. İdempotent API isteği de webhook işleme korumasından ayrı bir katmandır.

Mutabakat çift sipariş kadar önemlidir

Testte aynı olayın iki kez, aynı anda ve işlem yarıda kaldıktan sonra yeniden gelmesini deneyin. Ödeme tamamlanıp sipariş oluşmadığında mutabakat görevi açılmalıdır. Operasyon ekranı ödeme ile siparişi ilişkilendirmeli, yeniden işlemenin neyi değiştireceğini göstermelidir. Testin hedefi yalnızca çift kayıt olmaması değil, kayıp siparişin de fark edilmesidir.

Uygulama kontrol listesi

  • Webhook imzası doğrulanıyor mu?
  • Olay kimliğinde benzersiz kısıt var mı?
  • Ödemeye bağlı sipariş anahtarı ayrı korunuyor mu?
  • Yarım kalan işlem tekrar işlenebilir mi?
  • Ödeme-sipariş mutabakatı görünür mü?

Sık sorulan sorular

Başarılı HTTP yanıtı siparişin bittiğini gösterir mi?

Hayır. Teslim kabulü ile iş akışı tamamlanması farklı kayıtlardır.

Her sağlayıcının retry kuralı aynı mı?

Hayır. Seçilen sağlayıcının resmî sözleşmesi ve dokümanı esas alınmalıdır.

Kapsam ve sınırlar

Bu yaklaşım sağlayıcıya özgü entegrasyon testinin yerine geçmez. Ödeme ve iade akışları canlıya alınmadan önce ilgili sağlayıcının test ortamında doğrulanmalıdır.

Kaynaklar ve güncellik

Kaynak kontrolü: 7 Ekim 2026. Bağlantılı dokümanların sürümü ve sağlayıcı koşulları değişebilir. Uygulamadan önce ilgili kaynağın güncel sürümünü kontrol edin.

İlgili hizmet

Özel yazılım ve mobil uygulama kapsamını inceleyin

B10 Digital Agency

Ödeme Webhook’u İki Kez Geldiğinde Çift Sipariş Nasıl Önlenir? | B10 Digital Agency