PSD2 žadėjo vieną API kiekvienam bankui Europoje. Tai, ką gavome, yra viena specifikacijų šeima ir kelių šimtų jos interpretacijų. Po penkerių metų, kuriant ir prižiūrint sąskaitos informacijos bei mokėjimo inicijavimo jungtis klientams visoje Baltijoje, dėsningumas aiškus: pirmasis bankas užtrunka savaitę, penktasis - dieną, o tada kitas netikėtai užtrunka visą mėnesį.
Projektai užstringa ties sutikimo procesu
API kvietimai yra lengvoji dalis. Sunkioji dalis yra sutikimo gyvavimo ciklas - kaip klientas suteikia jums prieigą, kiek laiko ta prieiga galioja ir kas nutinka, kai ji baigiasi 03:00 val. sekmadienį.
- Kai kurie bankai išduoda 90 dienų sutikimus ir juos tyliai atnaujina; kiti reikalauja visiško pakartotinio autentifikavimo.
- Sutikimo procesai testinėje aplinkoje dažniausiai skiriasi nuo gamybinės aplinkos procesų. Numatykite biudžetą antrajam integracijos etapui po paleidimo.
- Klaidų klasifikacija nenuosekli: tas pats pasibaigęs sutikimas gali pasireikšti kaip
401,403, arba - vienu įsimintinu atveju - kaip200su tuščiu operacijų sąrašu.
Pastarasis atvejis vertas ypatingo dėmesio: tuščias atsakymas nėra tas pats, kas sėkmingas atsakymas. Jei jūsų suderinimas priklauso nuo operacijų srauto, į „operacijų nėra" žiūrėkite kaip į sąlygą, kurią reikia patikrinti, o ne kaip į faktą, kurį reikia užregistruoti.
Ką standartizuojame
Kiekviena mūsų diegiama jungtis dabar veikia už tos pačios vidinės sąsajos, o atskiri kiekvieno banko adapteriai sąmoningai laikomi kuo plonesni. Ta pati tvarka taikoma ir mokėjimų inicijavimo pusėje - vienas kanoninis mokėjimo objektas, aiškiai susietas su kiekvieno banko dialektu:
Adapteris tvarko autentifikavimo ypatumus ir kiekvieno banko skirtingą duomenų gavimo po puslapį tvarką; visa kita - pakartotiniai bandymai, idempotentiškumas, įspėjimai, sutikimo galiojimo pabaigos perspėjimai - gyvena bendrame sluoksnyje, parašytame ir ištestuotame vieną kartą.
Jei banko integracijai reikia pritaikytos pakartotinių bandymų logikos, ta logika turi būti bendrame sluoksnyje su funkcijos perjungikliu - niekada adapteryje. Palikti be priežiūros adapteriai pamažu pasensta, o bendras sluoksnis prižiūrimas nuolat.
Rezultatas tampa nuspėjama rutina - ir kaip tik to ir siekiame. Naujas bankas - tai naujas adapteris, iš jo testinės aplinkos užfiksuotas pavyzdžio failas ir kontrolinis sąrašas - o ne naujas projektas.