SimplePay integráció
Egy aktuális felhő alapú fejlesztésünk során szükségessé vált a SimplePay által biztosított bankkártya-fizetési szolgáltatás integrálása alkalmazásunkba.
Mivel üzleti szempontból egy havidíjas előfizetéses konstrukcióról van szó, ezért a megvalósítás során különösen fontos volt, hogy az integráció ne frontend oldalon valósuljon meg, hanem a microservice architektúrában felépített szerver (backend) oldalon. Ezen architektúra további sajátosságát az adja, hogy a folyamatok vezérlését a Camunda BPM workflow engine biztosítja.
Funkcionális tartalom
Az üzleti követelmények az alábbiak voltak:
- Az alkalmazás végfelhasználója számára lehetőséget kell biztosítani ahhoz, hogy regisztrálhassa bankkártyáját a havidíjas konstrukcióban működő szolgáltatás havi díjának megfizetéséhez. Ehhez a kártya-regisztrációhoz a SimplePay által biztosított szolgáltatásokat kellet felhasználni, biztosítva azt, hogy a bankkártya-adatok sem a szolgáltatónál, sem a SimplePay-nél nem kerülnek eltárolásra.
- Ismétlődő jelleggel - a teljes ügyfélállományt figyelembe véve napi rendszerességgel, de az egyes ügyfél-szempontjából havi periódikussággal - biztosítani kell a regisztrált bankkártyával történő fizetés lebonyolítását a SimplePay rendszerén keresztül valamint arról is gondoskodni kell, hogy a fizetés sikerességéről visszakapott információk a megrendelésekhez hozzákapcsolásra kerüljenek.
- Mivel a fizetési funkciók egy microservice-es architektúrában felépített alkalmazásba illeszkednek, ezért adódott, hogy a fizetési funkciók lebonyolítását biztosító alkalmazás is egy különálló, microservice követelményeknek megfelelő alkalmazás legyen.
Az alkalmazás kapcsolódási pontjait a külvilággal az alábbi ábra szemlélteti:
Kártya-regisztrációs folyamat során
- A vállalkozás és kapcsolattartója adatai a Company alkalmazásból származnak
- A bankkártya-regisztrációs szolgáltatást a SimplePay biztosítja
Periódikus bankkártya-fizetési folyamat során
- A fizetendő megrendelések az Order alkalmazásból származnak
- A vállalkozás és kapcsolattartója adatai a Company alkalmazásból származnak
- A bankkártya-fizetés végrehajtását a SimplePay biztosítja
- A fizetési folyamat elindítja a számla-kiállítási folyamatot is, melyet egy külön szolgáltató biztosít.
Mivel a megrendelések nyilvántartására szolgáló microservice (Order ms.) nem tartalmaz információt arról, hogy az adott megrendelés korábban már megfizetésre került-e vagy sem, ezért a sikeres ill. sikertelen fizetési információkat a fizetési alkalmazásban (Payment microservice) tartjuk nyilván. Ezáltal biztosítjuk azt, hogy egy megrendelés ne kerülhessen duplán megfizetésre. Az ismétlődő SimplePay-es fizetéshez szükséges ügyfél- és megrendelés-adat validációkat szintén beépítettük a fizetési tranzakciók folyamatába.
Technikai megvalósítás
A használt microservice architektúrából adódóan az egyes microservice-ek RESTful webservice-eken keresztül kommunikálnak egymással. Az authorizációs eljárások az OAuth2 -es szabványnak megfelelően valósítottuk meg.
A “bankkártya-regisztráció” ill. az “ismétlődő fizetések” folyamatok vezérléséhez a Camunda BPM workflow engine-t használjuk, melynek létezik supportált változata az általunk preferált Spring fejlesztési környezethez is (a Spring Boot verzióval dolgozunk). Ezen megoldás felhasználásával adott a workflow engine által biztosított transzparencia valamint alapból rendelkezésre állnak folyamatszintű (realtime) kiértékelési adatok a folyamatokhoz kapcsolódóan. A Cockpit webes felületen keresztül a fizetési folyamatok gazdája valós időben látja a felhőben futó alkalmazás bankkártya-regisztrációs folyamatának adatait valamint a napi rendszerességgel indított bankkártya-fizetési tranzakciók kiértékelését is.
Workflow modellek
A bankkártya-regisztrációs folyamat vezérlését az alábbi BPMN folyamatmodell mutatja be:
Az ismétlődő kártya-fizetési tranzakciókat az alábbi 2 folyamatmodell vezérli, melyek hierarchikus felépítésűek. A fölérendelt folyamatmodell “Process order” folyamatlépése indítja el a megrendeléshez szükséges fizetési folyamat feldolgozását. A folyamatpéldányok napi rendszerességgel indulnak el az előre meghatározott időpontban.
Segítünk SimplePay integrációs feladatának megoldásában
A fent bemutatott megoldás jól szemlélteti azt, hogy a folyamatok workflow engine-nel történő automatizálása hogyan teremthet transzparenciát a vállalaton belül futó tevékenységekről és hogyan növelheti a működés hatékonyságát. A folyamatmodellek által biztosított, hogy a szakterületi munkatársak pontosan látját, milyen lépések történnek akár a háttérben futó folyamatok esetében is - az informatikai rendszerek nem “black box-ként” működnek. A folyamatgazdák pedig akár realtime adatokhoz is hozzáférhetnek a rendelkezésre álló Cockpit felület által biztosított kiértékelési lehetőségeken keresztül.
Ha Ön is szükségét látja annak, hogy vállalkozása ügyfelei számára rendszeres, ismétlődő bankkártyás fizetési módot kínáljon fel, örömmel állunk rendelkezésére a megvalósításban. Szakértőink gyakorlati tapasztalattal rendelkeznek a folyamat-integráció üzleti és technikai megvalósítása terén is.