PSD2 je obljubljal en API za vsako banko v Evropi. Dobili smo eno družino specifikacij in nekaj sto njenih interpretacij. Po petih letih gradnje in vodenja konektorjev za informacije o računih in iniciacijo plačil za stranke po Baltiku je vzorec jasen: prva banka vzame teden dni, peta en dan, nato pa naslednja nepričakovano vzame mesec dni.
Projekti obtičijo pri poteku soglasja
Klici API so enostaven del. Težji del je življenjski cikel soglasja - kako stranka odobri vaš dostop, kako dolgo ta odobritev velja in kaj se zgodi, ko poteče ob 03:00 v nedeljo.
- Nekatere banke izdajo 90-dnevna soglasja in jih tiho obnovijo; druge zahtevajo popolno ponovno avtentikacijo.
- Poteki soglasja v peskovniku se praviloma razlikujejo od tistih v produkciji. Predvidite drugi krog integracije po zagonu.
- Taksonomije napak so neskladne: isto poteklo soglasje se lahko pojavi kot
401,403, ali - v enem nepozabnem primeru - kot200s praznim seznamom transakcij.
Ta zadnji primer si zasluži poudarek: prazen odgovor ni isto kot uspešen odgovor. Če je vaša uskladitev odvisna od podatkovnega toka transakcij, obravnavajte „ni transakcij" kot stanje, ki ga je treba preveriti, ne kot dejstvo, ki ga je treba zabeležiti.
Kaj standardiziramo
Vsak konektor, ki ga dostavimo, zdaj teče za istim notranjim vmesnikom, pri čemer so adapterji za posamezno banko namerno ohranjeni tanki. Ista disciplina velja tudi na strani iniciacije plačil - en sam kanoničen objekt plačila, eksplicitno mapiran v narečje vsake banke:
Adapter obravnava posebnosti avtentikacije in različne načine pridobivanja podatkov po straneh; vse ostalo - ponovni poskusi, idempotentnost, opozarjanje, opozorila o poteku soglasja - živi v skupni plasti, napisani enkrat in enkrat testirani.
> Če bančna integracija potrebuje prilagojeno logiko ponovnih poskusov, ta logika sodi v skupno plast z zastavico funkcionalnosti - nikoli v adapter. Adapterji, prepuščeni sami sebi, zastarajo; skupna plast pa se sproti vzdržuje.
Rezultat postane rutina - in prav to je cilj. Nova banka pomeni nov adapter, testno datoteko, posneto iz njenega peskovnika, in kontrolni seznam - ne novega projekta.