3DS 2.2: frictionless, challenge ve aradaki mühendislik
Yazan Selim Destanci
Kurucu
3-D Secure 2.2 doğrulamayı iki yola ayırır. Frictionless: kart bankası istekle gelen risk verisine güvenir ve sessizce onaylar — müşteri hiçbir challenge görmez. Challenge: banka kanıt ister; müşteri OTP ya da biyometriden geçer. İkisi arasındaki dönüşüm farkı devasadır; o yüzden asıl ürün sorusu şudur: hangi yolun tetikleneceğine kim karar veriyor?
Naif cevap “hep challenge” (güvenli ama dönüşüm katili) ya da “hiç” (hızlı ama sorumluluğu yanlış yöne kaydırır). Doğru cevap uyarlanırdır: önce işlemi skorla, challenge’ı yalnız risk gerektirdiğinde iste. Bilinen cihazdaki güvenilir müşteri süzülerek geçer; taze cihazdan gece yarısı ilk alışveriş step-up’a takılır.
Çoğu entegrasyonun sessizce kırıldığı yer alttaki mühendisliktir. ACS müşteriyi size bir callback ile geri yönlendirir — ve ACS implementasyonları callback’leri tekrarlar. Handler’ınız idempotent değilse çift callback çift çekime dönüşür. Çözüm (intent, doğrulama işlemi) üzerinde bileşik bir idempotency anahtarıdır: ilk callback kazanır, her tekrar aynı kayıtlı sonucu alır.
Bir de hata hayvanat bahçesi var: müşteri challenge ortasında vazgeçer, banka zaman aşımına düşer, redirect hiç gelmez. Bunların her biri ödemeyi açık bir “çözülmemiş” duruma park etmeli ve gerçeği sonradan bir mutabakat süpürmesi netleştirmeli — asla tahmin etmeyin. Ve 3DS başlatması bir acquirer’da başarısız olursa, pre-3DS failover denemeyi müşteri bir şey fark etmeden başka bankaya taşıyabilir.
Doğru yapıldığında 3DS bir dönüşüm vergisi olmaktan çıkar. Hassas bir alete dönüşür: sürtünme tam fraud’un yaşadığı yerde, başka her yerde görünmez.