İçeriğe atla

E-Ticarette Ödeme Altyapısı Nasıl Çalışır?

Ders 1 / 10 · 30 dakika okuma · İleri

Müşterinin ödeme butonuna basmasından işlem sonucunun siparişe yansımasına kadar ödeme akışını; müşteri, işyeri, ödeme hizmeti ve banka rollerini birlikte ele alarak öğrenin.

Bu Derste Öğrenecekleriniz

  • E-ticaret ödeme ekosistemindeki temel tarafları tanımak
  • Ödeme başlatma ile gerçek tahsilatın aynı kavram olmadığını açıklamak
  • Yetkilendirme ve işlem sonucu akışını adım adım takip etmek
  • Sipariş durumu ile ödeme durumunu birbirinden ayırmak
  • Başarılı, başarısız, bekleyen, iptal ve iade durumlarını modellemek
  • Ödeme callback/webhook bildirimlerinin neden gerekli olduğunu anlamak
  • Tekrarlanan ödeme ve belirsiz işlem sonucu risklerini tanımak

Bir müşteri e-ticaret sitesinde 'Öde' butonuna bastığında yalnızca para transferi gerçekleşmez. Siparişin hangi tutar için ödeme beklediği, hangi ödeme yönteminin kullanıldığı, işlemin banka veya ödeme altyapısı tarafından kabul edilip edilmediği ve sonucun siparişe nasıl yansıtılacağı birlikte yönetilir.

Not — Temel ayrım

Sipariş ve ödeme aynı kayıt değildir. Bir siparişin hiç ödeme denemesi olmayabilir, birden fazla başarısız ödeme denemesi olabilir veya başarılı ödeme sonradan iade edilebilir. Bu nedenle sipariş durumu ile ödeme durumu ayrı tutulmalıdır.

1. Ödeme ekosistemindeki temel tarafları tanıyın

Kartlı e-ticaret ödemesinde müşteri, e-ticaret işletmesi, ödeme hizmetini sağlayan yapı ve bankacılık/kart altyapısı birlikte çalışır. Teknik mimari kullanılan modele göre değişse de işletme açısından temel ihtiyaç; ödeme isteğini güvenli biçimde başlatmak ve güvenilir işlem sonucunu sipariş sistemiyle ilişkilendirmektir.

TarafTemel rolİşletmenin gördüğü sonuç
MüşteriÖdeme yöntemini seçer ve gerekli doğrulamayı tamamlarÖdeme denemesi
E-ticaret işletmesiSipariş ve tahsil edilmesi gereken tutarı oluştururSipariş/ödeme kaydı
Ödeme altyapısı / sanal POSÖdeme isteğini işler ve sonucu iletirİşlem kimliği ve durum
Banka/kart altyapısıİşlemin yetkilendirme ve finansal akışında rol alırOnay veya ret sonucu

2. Ödeme isteğini sipariş tutarından üretin

Ödeme tutarı müşterinin tarayıcısından gelen serbest bir değere güvenilerek belirlenmemelidir. Sepet, kampanya, vergi, kargo ve indirim hesapları sunucu tarafında doğrulandıktan sonra ödenecek nihai tutar sipariş veya ödeme oturumu ile ilişkilendirilmelidir.

Örnek — Tutar bütünlüğü örneği

Sepetin ürün toplamı 2.000 TL, indirim 200 TL ve kargo 80 TL ise tahsil edilecek tutar 1.880 TL'dir. Ödeme isteği bu doğrulanmış sipariş toplamından üretilmeli; istemciden '1.500 TL öde' şeklinde değiştirilmiş bir değer kabul edilmemelidir.

3. Ödeme başlatma ile başarılı tahsilatı ayırın

Kullanıcının ödeme sayfasına ulaşması veya ödeme formunu göndermesi işlemin başarılı olduğu anlamına gelmez. Ödeme sağlayıcısı/banka tarafından işlem sonucu üretilmeli ve işletme bu sonucu kendi ödeme kaydına işlemelidir.

AşamaÖrnek durumSipariş açısından anlam
Ödeme oluşturuldupending/createdHenüz tahsilat sonucu yok
İşlem işleniyorprocessingSonuç kesinleşmemiş olabilir
Başarılıpaid/successÖdeme doğrulandıktan sonra sipariş ilerleyebilir
Başarısızfailed/declinedYeni ödeme denemesi gerekebilir
İptalcancelledİşlem tamamlanmadı
İaderefunded/partially_refundedBaşarılı tahsilatın tamamı veya bir kısmı geri döndü

Uyarı — Durum adları sağlayıcıya göre değişebilir

Her ödeme kuruluşu aynı status isimlerini kullanmayabilir. Entegrasyonda sağlayıcının teknik dokümantasyonundaki durumlar işletmenin kendi standart ödeme durumlarına eşlenmelidir.

4. Başarı sayfasını ödeme kanıtı olarak kullanmayın

Müşterinin tarayıcısı ödeme sonrası başarı URL'sine yönlendirilebilir. Ancak tarayıcı yönlendirmesi kesilebilir, kullanıcı sekmeyi kapatabilir veya istemci tarafındaki akış manipüle edilebilir. Siparişin ödenmiş sayılması doğrulanmış sunucu tarafı işlem sonucuna dayanmalıdır.

İpucu — İki farklı kanal düşünün

Müşteri yönlendirmesi kullanıcı deneyimi içindir; sunucu tarafı callback/webhook veya sağlayıcı API doğrulaması ise işlem gerçeğini sistemler arasında taşımak içindir.

5. Callback veya webhook sonucunu doğrulayın

Ödeme sağlayıcısının gönderdiği bildirim, ilgili işlem kimliği ve siparişle eşleştirilmeli; sağlayıcının sunduğu imza, anahtar veya doğrulama mekanizması kullanılmalıdır. Gelen her HTTP isteğini güvenilir ödeme sonucu kabul etmek ciddi bir güvenlik hatasıdır.

  1. Sipariş için benzersiz ödeme kaydı/işlem referansı oluşturun.
  2. Ödeme isteğini doğrulanmış tutarla sağlayıcıya gönderin.
  3. Müşteri gerekli ödeme/doğrulama adımlarını tamamlasın.
  4. Sağlayıcının işlem sonucunu sunucu tarafında alın.
  5. Bildirim bütünlüğünü sağlayıcının yöntemine göre doğrulayın.
  6. İşlem kimliği, tutar, para birimi ve sipariş ilişkisini kontrol edin.
  7. Ödeme durumunu güncelleyin.
  8. Sipariş durumunu yalnız iş kuralı uygunsa ilerletin.

6. Aynı ödemenin iki kez işlenmesini önleyin

Müşteri ödeme butonuna iki kez basabilir, ağ bağlantısı kesilebilir veya callback aynı olay için tekrar gönderilebilir. Sistem aynı ödeme olayını ikinci bir tahsilat ya da ikinci sipariş sonucu gibi işlememelidir.

Örnek — Tekrarlanan callback

Ödeme sağlayıcısı başarılı işlem bildirimini ağ zaman aşımı nedeniyle iki kez gönderirse sistem ikinci bildirimi yeni bir ödeme gibi kaydetmemeli; aynı sağlayıcı işlem kimliğini tanıyıp mevcut kaydı güvenli biçimde korumalıdır.

7. Belirsiz sonucu 'başarısız' varsaymayın

Ödeme isteği gönderildikten sonra bağlantı koparsa işletme işlemin gerçekten başarısız olduğunu bilmiyor olabilir. Müşteriden hemen yeniden ödeme istemek çift tahsilat riski yaratabilir. Belirsiz işlem sağlayıcı sorgusu veya sonradan gelen doğrulanmış bildirimle uzlaştırılmalıdır.

Uyarı — Timeout ≠ ret

Teknik zaman aşımı, bankanın işlemi reddettiği anlamına gelmez. Sonuç bilinmiyorsa ödeme 'belirsiz/bekleyen' durumda tutulup gerçek işlem sonucu doğrulanmalıdır.

8. Ödeme ve sipariş durumlarını ayrı durum makineleri olarak düşünün

Ödeme durumuOlası sipariş davranışı
BekliyorSipariş ödeme bekliyor
BaşarılıSipariş hazırlık/işleme alınabilir
BaşarısızSipariş ödeme beklemeye devam edebilir
Kısmi iadeSipariş geçmişi korunur; finansal durum güncellenir
Tam iadeSipariş iade/iptal iş akışına göre güncellenir
Chargeback/uyuşmazlıkFinansal risk süreci ayrıca açılır

9. Her ödeme denemesinin audit izini koruyun

İşletme yalnız 'ödendi' bilgisini değil; ödeme yöntemi, sağlayıcı işlem kimliği, oluşturma zamanı, sonuç zamanı, tutar, para birimi, hata/ret bilgisi, iade ve varsa uyuşmazlık kayıtlarını izleyebilmelidir. Hassas ödeme verilerinin saklanması ise güvenlik ve uyum kurallarına göre sınırlandırılmalıdır.

KayıtNeden önemlidir?
İç ödeme IDSipariş ile ödeme olaylarını ilişkilendirir
Sağlayıcı işlem IDMutabakat ve destek incelemesini sağlar
Tutar/para birimiTahsilat bütünlüğünü kontrol eder
Durum zamanlarıOperasyon ve hata analizini destekler
İade referanslarıNet tahsilatı açıklar
Hata/ret koduBaşarısız ödeme analizine veri sağlar

10. Başarılı ödeme oranını tek başına yorumlamayın

Ödeme başarısı; müşteri davranışı, kart/banka kaynaklı retler, doğrulama adımları, teknik entegrasyon sorunları ve ödeme yöntemi dağılımından etkilenebilir. Düşük başarı oranı görüldüğünde hata kodları, cihaz/kanal, sağlayıcı ve zaman gibi boyutlarla neden analizi yapılmalıdır.

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

Şimdi Uygulayın

Uygulama Görevi — Ödeme Yaşam Döngüsü Haritası

Kullandığınız veya örnek bir e-ticaret sitesini seçin. Sipariş oluşturma, ödeme başlatma, müşteri doğrulaması, başarılı/başarısız sonuç, callback, sipariş güncelleme, iade ve mutabakat adımlarını tek akış üzerinde gösterin. Her adım için sistem kaydını ve hata halinde yapılacak işlemi yazın.

AdımKaynak sistemOluşan kayıtBaşarısızlık/istisna aksiyonu
Sipariş oluşturma………
Ödeme başlatma………
İşlem sonucu………
Callback doğrulama………
Sipariş güncelleme………
İade………

İpucu — Kabul testi

Bir müşteri 'kartımdan çekildi ama siparişim ödenmedi görünüyor' dediğinde sipariş ID'sinden ödeme denemesine, sağlayıcı işlem kimliğine ve doğrulanmış işlem sonucuna kadar zinciri gösterebiliyorsanız temel ödeme izlenebilirliğiniz kurulmuştur.

Bu Derste Ne Öğrendik?

  • E-ticarette ödeme, müşterinin kart bilgisini girdiği tek ekranlık bir işlem değildir.
  • Sipariş, ödeme isteği, yetkilendirme, sonuç bildirimi ve tahsilat kayıtları ayrı ancak ilişkili süreçlerdir.
  • İşletme yalnız tarayıcıdaki başarı ekranına güvenmemeli; ödeme sağlayıcısının doğrulanmış işlem sonucunu kullanmalı ve sipariş ile ödeme durumlarını ayrı izlemelidir.

Öğ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.