> For the complete documentation index, see [llms.txt](https://magicpay-1.gitbook.io/magicpay-gateway-api-entegrasyon-dokumani/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://magicpay-1.gitbook.io/magicpay-gateway-api-entegrasyon-dokumani/odeme/3d-secure-odeme-entegrasyon-akisi.md).

# 3D Secure Ödeme Entegrasyon Akışı

Bu doküman, sisteminiz üzerinden güvenli 3D Secure ödeme alma sürecinin adım adım entegrasyon akışını ve kullanıcı deneyimi (UX) standartlarını açıklamaktadır.

🔄 Akış Şeması (Workflow)

```
[Müşteri] Ödeme Yap Butonuna Basar
   │
   ▼
[Sisteminiz] `3ds-init` API'sini tetikler
   │
   ▼
[Müşteri Ekranı] Gelen HTML içeriği (3D Secure Ekranı) kullanıcıya gösterilir
   │
   ▼
[Müşteri] SMS Onay Kodunu (OTP) girer ve onaylar
   │
   ▼
[Banka/Sistem] Kullanıcıyı `redirectUrl` sayfasına yönlendirir
   │
   ▼
[Yönlendirme Sayfası] Ekranda "Bekleniyor/İşlem Yapılıyor" Progress Bar'ı gösterilir
   │  └─► Arka planda `complete` API'si tetiklenir (Tahsilat anı)
   │
   ▼
[Sonuç Ekranı] `complete` API yanıtına göre Başarılı / Başarısız sayfası basılır
```

#### 📋 Adım Adım Entegrasyon Adımları

**1. Adım: 3D Secure Başlatma (`3ds-init`)**

Ödeme formundan alınan kart bilgileri ile `3ds-init` API'sine istek atılır. Bu istek içerisinde işlemin sonunda yönlendirilecek `redirectUrl` parametresi de gönderilmelidir. API'den dönen response içerisindeki HTML içeriği müşterinin tarayıcısında (ister tam sayfa ister bir iframe içinde) render edilerek 3D Secure doğrulama ekranı açılır.

**2. Adım: OTP Doğrulama ve Yönlendirme**

Müşteri, bankasının güvenli ekranında tek kullanımlık şifresini (OTP) girerek işlemi onaylar. Doğrulama başarılı veya başarısız olduğunda, banka sistemi kullanıcıyı ilk adımda belirttiğiniz `redirectUrl` adresine otomatik olarak yönlendirir.

**3. Adım: Bekleme Ekranı (Loader/Progress Bar)**

`redirectUrl` olarak tasarladığınız sayfa, kullanıcıyı karşılayan geçici bir "ara yüz" olmalıdır. Kullanıcının sayfayı kapatmasını önlemek amacıyla bu sayfaya "Bankadan dönüş bekleniyor, lütfen sayfayı kapatmayınız..." ibaresi içeren bir yüklenme grafiği (Progress Bar / Loader) eklenmelidir.

**4. Adım: İşlemi Tamamlama (`complete`)**

Kullanıcı bekleme ekranındayken, arka planda (backend) vakit kaybetmeden `complete` API'si tetiklenir. Finansal olarak paranın karttan çekildiği ve işlemin muhasebeleştiği ana tetikleyici bu adımdır.

**5. Adım: Sonuçlandırma**

`complete` API'sinden gelen yanıt (Response) kontrol edilir:

* İşlem Başarılı ise: Kullanıcı sipariş onay/teşekkür sayfasına yönlendirilir.
* İşlem Başarısız ise: Bankanın döndüğü hata mesajı ile birlikte kullanıcı hata sayfasına yönlendirilir ve tekrar denemesi istenebilir.
