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üşteriyireturn_url adresine yönlendirir. URL’ye query parametresi olarak transaction_id ve status eklenir:
5. Adım — Sunucu tarafında final durum sorgusu
PaymentStatus yapısındadır:
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:
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.