İçeriğe atla

Kartlı Ödeme ve 3D Secure Süreci Nasıl Yönetilir?

Ders 3 / 10 · 30 dakika okuma · İleri

Kartlı ödeme akışında ödeme oluşturma, müşteri doğrulaması, 3D Secure, işlem sonucu ve sipariş güncelleme adımlarını güvenilir bir durum modeliyle yönetmeyi öğrenin.

Bu Derste Öğrenecekleriniz

  • Kartlı ödeme akışının temel adımlarını sıralamak
  • 3D Secure doğrulaması ile ödeme sonucunu birbirinden ayırmak
  • Müşteri yönlendirmesi ve sunucu tarafı işlem bildirimlerinin rollerini açıklamak
  • Ödeme tutarı, sipariş ve işlem kimliği bütünlüğünü kontrol etmek
  • Doğrulama sırasında terk edilen ve sonucu belirsiz işlemleri yönetmek
  • Tekrarlanan callback ve kullanıcı retry senaryolarında mükerrer işleme karşı kontrol kurmak
  • Ödeme deneyimi ile güvenlik kontrollerini birlikte değerlendirmek

Kartlı ödeme akışı yalnız kart numarasının girilip bankadan onay alınmasından ibaret değildir. Sipariş tutarının hazırlanması, ödeme oturumunun oluşturulması, gerekiyorsa müşteri doğrulaması, işlem sonucunun alınması ve bu sonucun siparişe güvenli biçimde yansıtılması ayrı kontrol noktalarıdır.

1. Kartlı ödeme yaşam döngüsünü adımlara ayırın

  1. Sepet ve sipariş toplamını sunucu tarafında doğrulayın.
  2. Siparişe bağlı benzersiz ödeme kaydı oluşturun.
  3. Ödeme sağlayıcısına tutar, para birimi ve gerekli işlem bilgilerini gönderin.
  4. Gerekliyse müşteriyi 3D Secure/doğrulama adımına yönlendirin.
  5. Doğrulama ve ödeme işlem sonucunu sağlayıcı akışına göre alın.
  6. Sunucu tarafı bildirimi veya API sorgusuyla sonucu doğrulayın.
  7. Ödeme durumunu güncelleyin.
  8. İş kuralı uygunsa siparişi ödenmiş duruma taşıyın.

Not — İki ayrı soru

3D Secure akışında 'müşteri doğrulandı mı?' ve 'ödeme başarıyla sonuçlandı mı?' aynı soru değildir. Entegrasyon, sağlayıcının işlem modeline göre her iki sonucu doğru yorumlamalıdır.

2. 3D Secure'ün rolünü doğru konumlandırın

3D Secure, kartlı e-ticaret işlemlerinde kart sahibinin doğrulanmasına yönelik bir güvenlik katmanıdır. Doğrulama deneyimi ve teknik akış kart, banka, sağlayıcı ve kullanılan protokol/entegrasyon modeline göre farklılaşabilir.

Uyarı — Doğrulama başarısı = tahsilat başarısı değildir

Müşteri doğrulama adımını tamamlamış olsa bile ödeme işleminin nihai sonucu ayrıca kontrol edilmelidir. Siparişi yalnız doğrulama ekranının başarılı dönmesine bakarak 'ödendi' yapmak hatalıdır.

3. Ödeme durumlarını doğrulama durumlarından ayırın

KatmanÖrnek durumNe anlatır?
DoğrulamaBaşladıMüşteri doğrulama akışına girdi
DoğrulamaTamamlandıGerekli doğrulama adımı tamamlandı
DoğrulamaBaşarısız/terkDoğrulama tamamlanamadı
ÖdemeBekliyor/işleniyorNihai ödeme sonucu henüz kesin değil
ÖdemeBaşarılıİşlem sağlayıcı tarafından başarılı sonuçlandı
ÖdemeBaşarısızİşlem onaylanmadı
Ödemeİade edildiÖnceki başarılı işlemin tamamı/kısmı geri döndü

4. Sipariş, ödeme ve doğrulama kayıtlarını ilişkilendirin

Bir sipariş için birden fazla ödeme denemesi olabilir. Her deneme kendi işlem referansına sahip olmalı; hangi denemenin 3D Secure'e girdiği, hangisinin başarılı olduğu ve hangisinin başarısız kaldığı izlenebilmelidir.

Örnek — Bir sipariş, üç ödeme denemesi

Müşteri ilk denemede doğrulamayı terk ediyor, ikinci denemede kart işlemi reddediliyor, üçüncü denemede ödeme başarılı oluyor. Sipariş tek olabilir; fakat üç ödeme denemesi ayrı kayıtlar olarak tutulmalı ve yalnız başarılı işlem siparişi ödeme açısından tamamlamalıdır.

5. Return URL ile callback/webhook'u aynı amaçla kullanmayın

Return URL müşterinin tarayıcı deneyimini sürdürür. Callback/webhook veya sağlayıcı API doğrulaması ise sistemler arasında işlem sonucunu güvenilir biçimde aktarmaya hizmet eder. Kullanıcının tarayıcısı kapansa bile sunucu tarafı ödeme sonucu işlenebilmelidir.

KanalTemel amaçTek başına ödeme kanıtı mı?
Return/redirect URLMüşteriyi siteye geri getirmekHayır
Callback/webhookSunucuya işlem olayı/sonucu bildirmekDoğrulama sonrası kullanılmalı
Sağlayıcı işlem sorgusuİşlemin güncel durumunu kontrol etmekSağlayıcı cevabı doğrulanarak kullanılabilir

6. Callback bütünlüğünü kontrol edin

Ödeme sağlayıcısından geldiği iddia edilen bir isteğin içeriğine doğrudan güvenilmemelidir. Sağlayıcının dokümantasyonunda belirtilen imza/hash, secret veya diğer doğrulama mekanizması uygulanmalı; işlem ID, tutar, para birimi ve sipariş referansı beklenen kayıtla karşılaştırılmalıdır.

Uyarı — Tutar kontrolünü atlamayın

İşlem 'başarılı' görünse bile callback'teki veya sağlayıcı sorgusundaki tutar ile işletmenin tahsil etmesi gereken sipariş tutarı eşleşmiyorsa sipariş otomatik olarak ödenmiş kabul edilmemelidir.

7. Doğrulama sırasında terk edilen işlemi tanımlayın

Müşteri doğrulama ekranına geçip işlemi tamamlamadan ayrılabilir. Bu durum gerçek bir banka reddiyle aynı olmayabilir. Analitik ve yeniden deneme deneyimi için terk, teknik hata ve finansal ret mümkün olduğunca ayrı sınıflandırılmalıdır.

SonuçMüşteriye yaklaşımOperasyonel kayıt
Kullanıcı terk ettiGüvenli biçimde yeniden ödeme seçeneği sunulabilirAbandoned/cancelled nedeni
Doğrulama başarısızUygun açıklama ve yeni denemeAuthentication failure
Kart/banka reddiAlternatif kart/yöntem önerilebilirDecline kodu
Teknik hataDurum doğrulanmadan çift ödeme tetiklenmemeliTechnical/unknown
BaşarılıSipariş doğrulanmış sonuçla ilerletilirProvider transaction ID

8. Retry politikasını hata türüne göre tasarlayın

Her başarısız ödemede aynı isteği otomatik tekrar göndermek doğru değildir. Kesin ret, doğrulama başarısızlığı, geçici servis hatası ve sonucu belirsiz timeout farklı aksiyonlar gerektirir.

Örnek — Timeout sonrası riskli retry

Sağlayıcıya ödeme isteği gönderildi ancak cevap gelmeden bağlantı koptu. Sistem işlemi doğrudan başarısız sayıp aynı karttan ikinci ödeme başlatırsa ilk işlem aslında başarılı olmuşsa çift tahsilat oluşabilir. Önce ilk işlem referansı sorgulanmalıdır.

9. İdempotent sonuç işleme kurun

Aynı başarılı callback birden fazla kez gelebilir. Sipariş hazırlama, stok düşme, e-posta gönderme veya fatura oluşturma gibi downstream işlemler aynı ödeme olayı için tekrar tekrar çalışmamalıdır.

İpucu — Olay kimliği kullanın

Sağlayıcı işlem ID'si veya olay ID'si ile daha önce işlenen bildirimi tanımak; aynı olayın tekrarında mevcut sonucu güvenli biçimde döndürmek mükerrer işleme karşı temel kontroldür.

10. Müşteri deneyimini hata mesajlarıyla iyileştirin

Kullanıcıya teknik banka veya gateway hata kodlarını aynen göstermek yerine güvenli ve anlaşılır mesajlar kullanılmalıdır. Bununla birlikte destek ve analiz ekipleri gerçek sağlayıcı hata kodunu arka planda görebilmelidir.

Teknik sınıfMüşteri mesajı yaklaşımıİç kayıt
Kart/banka reddiÖdeme tamamlanamadı; kart bilgilerinizi kontrol edin veya başka yöntem deneyinGerçek decline kodu
Doğrulama başarısızDoğrulama tamamlanamadı; tekrar deneyebilirsinizAuthentication sonucu
Geçici teknik hataİşlem sonucunu kontrol ediyoruz / kısa süre sonra tekrar deneyinGateway/timeout detayı
Bilinmeyen sonuçYeni ödeme başlatmadan önce sonuç doğrulanırReconciliation required

11. Funnel'ı ödeme adımlarına göre ölçün

Checkout dönüşümünü yalnız 'sipariş tamamlandı' metriğiyle izlemek sorunun nerede olduğunu göstermez. Ödeme başlatma, doğrulamaya geçiş, doğrulama tamamlama, yetkilendirme/ödeme başarısı ve sipariş tamamlanma oranları ayrı ölçülebilir.

AşamaÖrnek KPI
Ödeme başlatıldıCheckout → payment start oranı
Doğrulama başladı3DS giriş oranı
Doğrulama tamamlandıAuthentication completion
Ödeme başarılıPayment success rate
Sipariş tamamlandıPaid order conversion

İlgili çözüm: Ödeme Entegrasyonları

Şimdi Uygulayın

Uygulama Görevi — 3D Secure Ödeme Durum Matrisi

Ödeme entegrasyonunuz veya örnek bir akış için doğrulama başladı, doğrulama başarısız, müşteri terk etti, ödeme reddedildi, timeout oluştu ve ödeme başarılı senaryolarını yazın. Her senaryoda ödeme durumu, sipariş durumu, müşteriye gösterilecek aksiyon ve arka planda yapılacak doğrulamayı tanımlayın.

SenaryoÖdeme durumuSipariş durumuMüşteri aksiyonuSistem kontrolü
Doğrulama terk…………
Doğrulama başarısız…………
Banka reddi…………
Timeout…………
Başarılı…………

İpucu — Kabul testi

Tarayıcı kapansa, callback iki kez gelse veya ödeme isteği timeout olsa bile sistem aynı işlemin gerçek sonucunu bulabiliyor, mükerrer tahsilat/işleme üretmiyor ve sipariş durumunu güvenilir biçimde açıklayabiliyorsa kartlı ödeme akışınız kontrollüdür.

Bu Derste Ne Öğrendik?

  • 3D Secure, kartlı ödeme sürecindeki müşteri doğrulama katmanlarından biridir; tek başına tahsilatın başarılı olduğunu göstermez.
  • E-ticaret sistemi doğrulama, ödeme yetkilendirme/sonuç, callback ve sipariş durumunu ayrı ama ilişkili kayıtlarla yönetmelidir.
  • Başarı URL'si yerine doğrulanmış sunucu tarafı sonuç esas alınmalı; tekrar bildirim, timeout ve terk edilen doğrulama gibi durumlar açık iş kurallarıyla ele alınmalıdır.

Öğrendiklerinizi Projenize Dönüştürün

Pazaryeri, online mağaza veya kurumsal dijital ticaret projeniz için KMK'nın deneyimli ekibiyle ihtiyaçlarınızı değerlendirin.