Penkeri metai su PSD2 jungtimis: ko specifikacija jums nepasako

Banko plytelė, sujungta su Trex Pi logotipu punktyrinėmis duomenų linijomis

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 - kaip 200 su 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:

ERP mokėjimo laukų susiejimas su SEPA pain.001 XML elementais

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.