Szerintem nem elég alaposan nézed meg a folyamatot. Egy egyszerű példát végigveszek: rendelek kaját a jofalat.hu-n, akiknél a Barionnal tudok fizetni. A Gránitos kártyámra push üziben kikldött kód kell (a Gránitnál nincs jelszó, de képzeld oda a push üzenetbeli token helyett, a lényegen nem változtat).
Lépések:
- jofalat.hu-n megnyomom a fizetést, elirányít a barion.hu-ra
- barion.hu-n beírom a kártyaadataimat (kártyaszám, név, CVC, lejárat), rákattintok a fizetésre. A Barion három dolgot tehet
- átirányít a masodikfaktor.granitbank.hu-ra
- betölti egy iframe-ben a masodikfaktor.granitbank.hu-t
- betölti egy popupban az iframeben a masodikfaktor.granitbank.hu-t
- én a masodikfaktor.granitbank.hu-n adom meg a pushban kiküldött kódot, és rákattintok az OK-ra
- visszakerülök a barion.hu-hoz, aki kap a Gránittól vagy URL paraméterben vagy async egy jóváhagyó-kódot, hogy a 3DS-t sikeresen abszolváltam
- visszakerülök a jofalat.hu-ra, aki kap a Bariontól vagy URL paraméterben vagy async egy jóváhagyó-kódot, hogy a kártyás fizetés pöpec
Ami a lényeg, az a harmadik pont: a 3DS-t mindig a saját bankod domainjén csinálod - max el van rejtve előlet egy iframe-mel, de a network tabban akkor is színtisztán tudod ellenőrizni. Itt most két dologban kételkedhetsz:
- masodikfaktor.granitbank.hu tényleg a Gránithoz tartozik-e -> de ha ebben kételkedsz, az egész DNS rendszerben kételkedj
- a masodikfaktor.granitbank.hu nem adja vissza a Barionnak a kódodat -> de ha ebben kételkedsz, kételkedj abban is, hogy a barion nem adja a jofalatnak oda a kártyaadataidat
(én oauth körökben mozgok az utóbbi években, szóval) kicsit olyan ez, minzha a kedvenc webshopodba a Google/Facebook/Twitter fiókoddal lépnél be [1] - attól, mert a twitterrel lépsz be, a kedvenc webshopod nem fogja tudni a twitter jelszavadat. Bogarászd itt végig, hogy mondjuk egy OAuth PKCE-vel hogy megy, és képzeld bele a Client Appnak a Bariont, míg az Auth Servernek a bankodat - a bankodnál írod be a 3DS jelszavadat, de az a Barionhoz sosem jut el.
[1]: tudom, neked nincs ilyen - lépjünk ezen túl.
szerk.: itt már csak tippelek, de a 2-es és a 3-as pont között a barion valszeg elmegy a Visa/Mastercardhoz, és elkéri onnan, hogy a te kártyád melyik bankhoz tartozik, és annak mi a 3DS oldala. Ugyanitt, abból is láthatod, hogy ez a banki oldalon megy, hogy nekem pl nincs online fizetéshez szükséges jelszavam [2], cserébe nálam push van, a banki mobilappba. Azt könnyen beláthatjuk, hogy a Barion nem tud nemhogy a hazai ~10 bank egyedi megoldásaihoz (online vásárlás jelszó; SMS; push üzenet a banki appba; stb) integrálódni, de főleg nem az EU-ban jelen lévő rengeteghez.
[2]: AFAIK csak az OTP csinálja ezt az online vásárlásos jelszót, legalábbis se a Rafi, se a Gránit, se az Unicredit, se a Revolut nem.