A PSD2 egy API-t ígért Európa minden bankjához. Amit kaptunk, az egy szabványcsalád és annak néhány száz értelmezése. Öt év után, amit balti ügyfelek számára számlainformációs és fizetéskezdeményezési konnektorok építésével és üzemeltetésével töltöttünk, a minta egyértelmű: az első bank egy hetet vesz igénybe, az ötödik egy napot, majd a következő váratlanul egy hónapot.
A hozzájárulási folyamatnál akadnak el a projektek
Az API-hívások a könnyű rész. A nehéz rész a hozzájárulás életciklusa - hogyan engedélyezi az ügyfél a hozzáférését, meddig él ez az engedély, és mi történik, amikor vasárnap hajnali 03:00-kor lejár.
- Egyes bankok 90 napos hozzájárulásokat adnak ki, és csendben megújítják őket; mások teljes újra-hitelesítést kényszerítenek ki.
- A sandbox hozzájárulási folyamatok rendszeresen eltérnek az éles környezetbeliektől. Számoljon egy második integrációs körrel az élesítés után.
- A hibataxonómiák következetlenek: ugyanaz a lejárt hozzájárulás megjelenhet
401-ként,403-ként, vagy - egy emlékezetes esetben - egy200-as válaszként üres tranzakciólistával.
Ez utóbbi külön hangsúlyt érdemel: egy üres válasz nem ugyanaz, mint egy sikeres válasz. Ha az egyeztetése egy tranzakciós feedtől függ, kezelje a „nincs tranzakció” állapotot ellenőrizendő feltételként, ne rögzítendő tényként.
Amire szabványosítunk
Minden általunk szállított konnektor ma már ugyanazon belső interfész mögött fut, a bankonkénti adaptereket pedig tudatosan vékonyan tartjuk. Ugyanez a fegyelem érvényes a fizetéskezdeményezés oldalán is - egyetlen kanonikus fizetési objektum, amelyet explicit módon leképezünk az egyes bankok dialektusára:
Az adapter kezeli a hitelesítési sajátosságokat és az oldalankénti adatlekérés eltérő sémáit; minden más - újrapróbálkozások, idempotencia, riasztás, hozzájárulás-lejárati figyelmeztetések - a közös rétegben él, egyszer megírva és egyszer letesztelve.
> Ha egy banki integrációnak egyedi újrapróbálkozási logikára van szüksége, az a logika a közös rétegbe tartozik, egy feature flaggel - soha nem az adapterbe. A magukra hagyott adapterek elavulnak; a közös réteget viszont folyamatosan karbantartják.
Az eredmény kiszámítható rutinná válik - és pontosan ez a cél. Egy új bank egy új adaptert jelent, egy a sandboxából rögzített mintafájlt, és egy ellenőrzőlistát - nem egy új projektet.