Loading...

Integrácia spracovania platieb do mobilných aplikácií alebo prečo môžete zabudnúť na PCI DSS / PA DSS

Autor: Maxim Maxim Kozenko

Skôr či neskôr sa väčšina majiteľov a developerov internetových obchodov a mobilných aplikácií, ktorí využívajú online platby budú pýtať: “Mal by byť môj projekt v súlade s normami PCI DSS?”

PCI DSS je bezpečnostný štandard používaný všetkými inštitúciami, ktoré spracovávajú platbu kartou. Maloobchodné predajne, spracovateľské centrá, finančné inštitúcie, poskytovatelia služieb a ďalšie organizácie, ktoré ukladajú, spracovávajú alebo odosielajú informácie o držiteľoch kariet a/alebo citlivé údaje k overeniu pravosti.

Vďaka webovým stránkam je všetko pomerne jednoduché: V priebehu integračného procesu stačí použiť technické riešenie, ktoré presmeruje platiaceho na miesto PCI DSS certifikovanej platobnej brány (tzv.hostované platobné stránky) alebo načíta certifikovanú stránku na pôvodnej webovej stránke. V oboch prípadoch je kupujúci presmerovaný na formulár, kde vloží svoje údaje o karte.

V takomto prípade predávajúci nepodlieha bezpečnostným normám, pretože neukladá údaje z karty a údaje nie sú prevedené cez jeho servre. Naviac, vzhľadom k bezpečnostnej politike webových prehliadačov, nemajú prístup k rámu platobnej brány.

Pri mobilnej aplikácii sú veci zložitejšie. Obľúbená je mylná predstava, že pokiaľ mobilná aplikácia požaduje údaje karty, tak automaticky podlieha normám PCI DSS. Ale v skutočnosti, organizácie, ktoré vyvájajú normy PCI DSS (PCI SSC – Payment Card Industry Council Security Standards) doteraz nevydali konkrétne požiadavky pre mobilné aplikácie. To znamená, že normy zostavajú dobrovoľné a nie sú povinné pre nasledovnú kategóriu mobilných aplikácií:

Kategória 3: Platobné aplikácie pracujú na akomkoľvek elektronickom ručnom zariadení spotrebiteľa (napr., Smartphone, tablet alebo PDA), ktorý nie je vyhradený pre prijatie platby za účelom spracovania transakcií.

Vzhľadom k tomu, že mobilná aplikácia nemôže existovať bez  “back-endu” (strana server, ktorá sa týka účtovania a hlavnej obchodnej logiky), aj tak informácie potrebné pre spracovanie platby budú prechádzať serverom predávajúceho. Je však dôležité: v momente, keď developer nemá neúmyselne alebo úmyselne program na vyžiadanie prenosu údajov na karte do akýchkoľvek neoverených serverov, mobilné platby SDK by mali urobiť údaje karty nečitateľné. Toto obmedzenie zabezpečuje, že PCI DSS požiadavky sú splnené.

PCI DSS nemusí žiadať priamo o platbu predajcu, pokiaľ predávajúci uchováva, spracuváva a prenáša údaje držiteľov kariet alebo má prístup k údajom držiteľov kariet svojich zákazníkov.

Pozrime sa ako funguje v mobilných SDK platobných službách FONDY pomocou príkladu na verzii Android.

FONDY je medzinárodná platobná brána a je k dispozícii aj v Európe. Poskytuje širokú škálu riešení, napríklad:

  • klasický internetový acquiring
  • white label riešenie pre web a mobilné zariadenia
  • účtovné centrum pre všetky typy online podnikania, od poskytovateľov internetových služieb, online predajcov až po zoznamovacie stránky a taxi služby

Toto riešenie má za následok, že údaje z karty sú vložené do pamäti vytvorenej pomocou knihovne SDK, zatiaľčo mobilná aplikácia využíva verejné metódy tejto pamäte s cieľom uskutočniť platbu, vyplniť formulár a získať informácie o dokončení platby.

Príklad demo aplikácie pre Android

Na začiatok sme vytvorili vizuálnu štruktúru pre náš platobný formulár- rozloženie (celý zdrojový kód demo aplikácie nájdete na GitHub):

layout_new

Uistite sa, že všetky prvky v aplikácii okrem údajov z karty sú vaše a že formulár pre zadanie čísla karty, dátum expirácie a CVV2 sú zapúzdrované v triede com.cloudipsp.android.CardInputView.

Takto to vyzerá (pre testy môžete použiť údaje uvedené tu): https://www.fondy.eu/en/info/api/v1.0/2 ):

 device-2016-05-08-043635
 

Všetky prvky vrátane tých, čo patria do triedy com.cloudipsp.android.CardInputView, je možné ľahko štylizovať podľa návrhu v hlavnej aplikácii. Pre neskoršiu prácu s aplikáciami a kartami zaradenými do 3DSecure budete potrebovať prvky triedy com.cloudipsp.android.CloudipspWebView. Ide o WebView, v ktorom je platiaci presmerovaný na stránku jeho vydavateľskej banky, aby zadal svoje heslo.

 device-2016-05-08-043826
 

Teraz sa budeme pohybovať v našej hlavnej časti, ktorá bude implementovať logiku aplikácie: public class MainActivity. Inicializujeme objekt časti Cloudisp:

 mainactivity

Ďalej vložíme handler na objekt časti com.cloudipsp.android.Card za účelom získania výsledkov zadávania karty:

handler

Teraz budeme vedieť, kedy užívateľ dokončil zadávanie údajov z karty alebo v prípade chyby, dostaneme informáciu o probléme. Po zadaní údajov z karty, môžete vytvoriť objednávku.

 order
 

Ako môžete vidieť, integrácia je pomerne jednoduchá a nevyžaduje zvláštne úsilie zo strany vývojára aplikácie. A čo viac, SDK rieši dva problémy naraz: dáva predávajúcemu možnosť prijímať platby kartou a uloží ich bez nutnosti získať bezpečnostnú certifikáciu.