- Katılım
- 21 May 2023
- Mesajlar
- 468
- Tepki
- 17
- Puan
- 18
Ödeme Akışını Hızlandırma Kontrol Listesi
Ödeme performansı tek bir sayfa hız skoruna indirgenemez. Kullanıcının butona bastıktan sonra gördüğü geri bildirim, tarayıcıdaki ana iş parçacığı, mağaza sunucusunun sepet/tutar hesabı, ödeme sağlayıcısının API süresi, 3D Secure adımı ve webhook ile siparişin kesinleşmesi farklı gecikme kaynaklarıdır. Yanlış optimizasyon, ekranı hızlı gösterirken çift tahsilat veya hatalı sipariş durumu üretebilir.
Başlıktaki 2025 ifadesi arşiv niteliğindedir; kontrol listesi Temmuz 2026'da güncellenmiştir. Hedef, güvenlik kontrolünü kaldırmak değil; uçtan uca ödeme süresini parçalara ayırmak, beklemeyi görünür kılmak ve yalnız kanıtlanan darboğazı düzeltmektir.
Ödeme hızı; tarayıcı etkileşimi, sunucu hesabı, sağlayıcı isteği, doğrulama ve asenkron sonuç olarak ayrı ölçülmelidir.
Önce Uçtan Uca Zaman Çizgisini Ölçün
Tek bir “checkout 2 saniye” ölçümü hangi parçanın yavaş olduğunu göstermez. Her ödeme denemesine kişisel veri içermeyen bir korelasyon kimliği verin ve şu zamanları ayrı kaydedin:
- Ödeme sayfasının kullanılabilir hâle gelmesi
- Kullanıcı etkileşimi ile görünür geri bildirim arasındaki süre
- Mağaza sunucusunda sepet/tutar doğrulaması
- Ödeme oluşturma isteğinin sağlayıcıya gidiş-dönüşü
- 3DS veya başka müşteri aksiyonunun başlangıç/bitişi
- Sağlayıcı sonucu ile doğrulanmış webhook'un işlenmesi
- Sipariş durumunun müşteriye ve operasyona yansıması
Ortalama tek başına yavaş kalan kullanıcıları gizler. Medyanın yanında p75/p95 gibi dağılımları; cihaz, tarayıcı, ülke, ödeme yöntemi, sağlayıcı ve uygulama sürümü boyutunda izleyin. Eşik, kendi normal tabanınız ve müşteri etkisi üzerinden belirlenmelidir.
Tarayıcıdaki Etkileşim Gecikmesini Azaltın
INP, kullanıcının etkileşimine sayfanın ne kadar hızlı görsel yanıt verdiğini ölçer; ödeme API'sinin ağ süresiyle aynı metrik değildir. web.dev, iyi INP için saha verisinin 75. yüzdelik diliminde 200 ms veya altını referans verir. Bu değeri laboratuvar skoruyla değil gerçek kullanıcı verisiyle de izleyin.
- Checkout'ta gerekli olmayan sohbet, reklam, kişiselleştirme ve ağır analiz betiklerini kaldırın veya güvenli biçimde erteleyin.
- Uzun JavaScript görevlerini bölün; alan doğrulamasını bütün formu tekrar hesaplayan senkron işleme dönüştürmeyin.
- Ödeme butonuna basıldığında anında erişilebilir durum göstergesi verin ve yinelenen tıklamayı engelleyin.
- Butonu yalnız görsel olarak kilitlemekle yetinmeyin; sunucuda idempotency olmadan çift işlem riski devam eder.
- Alan hata mesajını ilgili alanla ilişkilendirin ve odağı ilk geçersiz alana taşıyın.
- Sağlayıcı bileşenini resmî yükleme yöntemiyle kullanın; dosyayı izinsiz kopyalayıp eski sürüme sabitlemeyin.
Ödeme Sayfasındaki Betikleri Azaltırken Güvenliği Koruyun
Performans için betik temizliği doğrudur; fakat ödeme bileşeninin güvenlik davranışını bozacak bir bundling, proxy veya gecikmeli yükleme yapmayın. PCI SSC, ödeme sayfası betiklerinin yetkilendirilmesi, bütünlüğünün güvence altına alınması ve değişikliklere karşı izlenmesi konusunda güncel rehberlik sağlar.
Her betik için sahibi, iş gerekçesi, yüklenme zamanı, veri erişimi ve kaldırma etkisini kaydedin. Değişiklikleri içerik güvenlik politikası, bütünlük ve izleme tasarımıyla birlikte güvenlik ekibiyle değerlendirin. “Üçüncü taraf betiği kaldırdık” sonucu kadar “hangi ödeme durumunda işlev kaybı oldu?” sorusunu da test edin.
Sunucu Tarafındaki Kritik Yolu Kısaltın
Ödeme isteğinden önce aynı sepeti defalarca hesaplamak, yavaş stok/kupon servislerini zincirlemek veya e-posta/CRM çağrısını senkron beklemek kritik yolu uzatır. Önce profilleme ve dağıtılmış iz sürmeyle gerçek zamanı görün.
- Sepet, indirim, vergi ve kargo hesabının tek kanonik sonucunu sunucuda üretin.
- Aynı ödeme denemesi içinde değişmeyen ürün/ayar verisini güvenli ve kısa ömürlü biçimde yeniden kullanın.
- Stok ayırma ve fiyat doğrulama gibi iş doğruluğunu etkileyen adımları körlemesine cache'lemeyin.
- E-posta, analitik, sadakat puanı ve benzeri yan etkileri başarılı sonuçtan sonra kuyruğa taşıyın.
- Bağımlılıklara bağlantı/okuma timeout'u koyun; sınırsız beklemeyi önleyin.
- Veritabanı sorgularını sipariş/ödeme kimliği ve gerçek erişim deseniyle profilleyin.
Ödeme kararını veya başarısızlık sonucunu genel sayfa cache'inde tutmayın. Cache anahtarında kullanıcı/sepet ayrımı hatası, başka müşterinin tutar veya durum bilgisini gösterebilir.
Idempotency ile Güvenli Retry'ı Birlikte Tasarlayın
Geçici bağlantı hatasında retry faydalıdır; ancak aynı tahsilatı yeniden üretmeyecek bir idempotency tasarımı yoksa hız için yapılan tekrar deneme para kaybına dönüşebilir.
- Bir iş ödeme denemesine tek idempotency anahtarı atayın.
- Timeout sonrası aynı iş ve aynı parametre için sağlayıcının kuralına göre aynı anahtarı kullanın.
- Farklı sepet, tutar veya para birimi için yeni işlem/anahtar oluşturun.
- Reddedilen kart gibi iş sonucunu ağ hatası sanıp otomatik tekrar etmeyin.
- Üstel geri çekilme ve jitter kullanırken toplam deneme süresini müşteri deneyimiyle sınırlayın.
- Durumu belirsiz işlemi doğrulama/inceleme kuyruğuna alın; müşteriyi ikinci ödemeye yönlendirmeyin.
Stripe'ın resmî API belgesi, idempotency anahtarının aynı isteği bağlantı hatasında güvenle tekrar etmek için kullanıldığını açıklar. Başka sağlayıcılarda saklama süresi, kapsam ve hata davranışı farklı olabilir; resmî belgeyi esas alın.
Webhook'u Hızlı Yanıtlayan, Ağır İşi Kuyruklayan Bir Giriş Yapın
Webhook isteğinde imza doğrulamasından sonra muhasebe, e-posta, stok, CRM ve raporlama işlerini bitirmeyi beklerseniz sağlayıcı timeout görüp olayı yeniden gönderebilir. Endpoint, doğrulanmış olayı dayanıklı biçimde kaydedip hızlı başarı yanıtı vermeli; ağır işi arka planda yürütmelidir.
- İmzayı ham istek gövdesiyle doğrulayın.
- Olay kimliğiyle tekrar teslimi zararsız hâle getirin.
- Olayların sırasız gelebileceğini varsayın; durum geçişini kontrol edin.
- Kuyruk gecikmesi, başarısız tüketici ve dead-letter sayısını izleyin.
- İşleme sonucu kesinleşmeden siparişi yanlış aşamaya taşımayın.
- Webhook gelmediğinde sağlayıcı durumu ile güvenli uzlaştırma işi çalıştırın.
3D Secure Beklemesini Doğru Yönetin
EMV 3-D Secure; ilave kullanıcı etkileşimi gerektirmeyen frictionless akış ile challenge akışını ayırır. Challenge'ı “performans sorunu” kabul edip atlamaya çalışmak güvenlik ve uygulanabilir kurallarla çelişebilir.
Kullanıcıya banka doğrulamasının başladığını, ekranı kapatmaması gerekip gerekmediğini ve dönüşte sonucun kontrol edileceğini açıkça anlatın. Challenge sonrası dönüş sayfasını hızlandırın; ancak URL parametresine bakarak siparişi başarılı yapmayın. Sunucu tarafındaki doğrulanmış durum kesin kaynak olmalıdır.
Yük ve Arıza Testini Gerçekçi Yapın
Canlı kart verisi veya gerçek tahsilatla yük testi yapmayın. Sağlayıcının test ortamı, sözleşmesi ve hız sınırları içinde aşağıdaki senaryoları deneyin:
- Normal, yoğun ve ani trafik artışı
- Yavaş sağlayıcı yanıtı ve bağlantı timeout'u
- Aynı işlemin eşzamanlı yinelenmesi
- Geciken, yinelenen ve sırası değişmiş webhook
- Kuyruk tüketicisinin durması ve yeniden başlaması
- Veritabanı/önbellek bağımlılığında kısmi arıza
- 3DS dönüşünde kullanıcı sekmesinin kapanması
Testte yalnız ortalama süreye değil; yanlış sipariş durumu, çift yan etki, kaybolan olay ve mutabakat farkına da bakın. Daha hızlı ama doğruluğu bozulmuş akış kabul edilmemelidir.
Hızlandırma Sonrası Kabul Kontrolü
- Uçtan uca süre tarayıcı, sunucu, sağlayıcı, 3DS ve webhook olarak ayrıldı mı?
- INP gerçek kullanıcı verisinde cihaz bazında izleniyor mu?
- Checkout betikleri iş gerekçesi ve güvenlik kontrolüyle envanterde mi?
- Sunucudaki yavaş sorgu/bağımlılık ölçümle bulundu mu?
- Retry yalnız idempotent ve geçici hatalarda mı çalışıyor?
- Webhook hızlı yanıtlayıp işi dayanıklı kuyrukta mı yürütüyor?
- Belirsiz ödeme için doğrulama ve manuel inceleme yolu var mı?
- Yük testinde çift tahsilat/çift sipariş gibi doğruluk sonuçları denetlendi mi?
- Dağıtım sonrası p75/p95, hata ve mutabakat alarmı izleniyor mu?
İç Bağlantılar
- Yedi adımda güvenli ödeme entegrasyonu
- Ödeme dayanıklılığı ve operasyon rehberi
- Sanal POS hata çözüm kılavuzu
- Ödeme sistemleri bakım rutini
Dış Kaynaklar
- web.dev: Interaction to Next Paint (INP)
- Stripe: idempotent istekler
- Stripe: webhook işleme önerileri
- EMVCo: 3-D Secure akışları
- PCI SSC: ödeme sayfası güvenliği ve e-skimming
Özetle
Zaman çizgisini parçalayın → tarayıcı etkileşimini hafifletin → sunucunun kritik yolunu kısaltın → retry'ı idempotency ile güvenli kılın → webhook işini kuyruklayın → 3DS ve arıza senaryolarını test edin → dağıtım sonrası kuyruk ve mutabakatı izleyin. En hızlı ödeme akışı, sonucu belirsiz bırakan değil; kullanıcıya hemen geri bildirim verirken finansal doğruluğu koruyandır.
Güncelleme: 15 Temmuz 2026
Dijital Dünyanıza Yön Veren Pusula
Ekli dosyalar
Son düzenleme: