Skip to main content
3D Secure, kart sahibinin işlemi onaylamasını isteyen ek bir güvenlik katmanıdır. Başarılı 3DS doğrulaması durumunda chargeback sorumluluğu bankaya geçer. Tüketici e-ticaret işlemlerinde şiddetle önerilir.

Akış (özet)

1. Adım — 3DS Init

Yanıt

extra_properties.redirect_url adresine müşteriyi HTTP 302 ile yönlendirin (veya tarayıcıda window.location.href).

2. Adım — 3DS sayfasında doğrulama

Müşteri bankanın 3DS sayfasında SMS, mobil uygulama veya biometrik onay sağlar. Payven kapsamı dışındadır — banka kendi sürecini yürütür.

3. Adım — Callback (Banka → Payven)

Banka, 3DS sonucunu Payven’e form-post ile iletir (POST /payments/3d/callback). Bu kısım otomatik gerçekleşir, müdahale gerektirmez. Payven, callback’i alır → bankaya Complete3DSPayment (otorizasyon) gönderir → işlem son durumuna gelir.
Callback scope pv_* query parametreleri (ileri seviye): Bazı banka konnektörleri, 3DS init sirasinda callback_url query parametrelerini koruyarak callback’i geri yonlendirir. Bu durumda Payven pv_* prefix’li parametreleri callback scope’unda otomatik olarak IPayvenRequestContext’e besler — handler’lar standart Authorization header’i olmasa bile dogru tenant/merchant bagliminda calisir:Bu parametreler yalniz AllowAnonymous endpoint’lerde (3DS callback gibi) etkindir; authenticated endpoint’lerde JWT/header semantikleri once gelir, pv_* parametreleri yok sayilir.

4. Adım — Return URL (Payven → tarayıcı)

Payven, müşteriyi return_url adresine yönlendirir. URL’ye query parametresi olarak transaction_id ve status eklenir:
return_url’deki query parametreleri güvenilmez — kullanıcı tarafından manipüle edilebilir. Final durumu mutlaka sunucu tarafında GET /payments/ ile doğrulayın.

5. Adım — Sunucu tarafında final durum sorgusu

Yanıt PaymentStatus yapısındadır:
Final durumu status alanından okuyun:

Frictionless vs Challenge

3D Secure 2.x’te banka iki moddan birine karar verir: Hangisinin uygulanacağını banka belirler — istemci olarak etkileyemezsiniz. ECI / CAVV / 3DS protokol versiyonu gibi alanlar şu an extra_properties içinde döner; ileride üst seviye three_ds.* alanı olarak yapısal olarak verilecektir (bkz. Payment Objesi → Yol Haritası).

Hata senaryoları

Webhook ile asenkron yakalama

return_url’e yönlendirme müşteri tarayıcısı üzerinden çalışır — müşteri tarayıcıyı kapatırsa sonucu kaçırırsınız. Webhook entegre edin:
Detay: Webhook Genel Bakış.

Test ortamı

Sandbox 3DS sayfasında banka simülasyonu çalışır. Test kart numaralarına, şifrelere ve frictionless/challenge tetikleyen senaryolara Test Kartları sayfasından bakın.

Sonraki adımlar

Pre-Auth → Capture

3DS başarılı sonrası iki aşamalı çekim.

Hosted Checkout

PCI-DSS yükünü minimize eden Payven barındırmalı sayfa.

Webhook İmza Doğrulama

Asenkron olayları güvenle işleyin.

İade İşlemi

Tam veya kısmi iade.