Loading...

Integrace zpracování plateb do mobilních aplikací, nebo proč můžete zapomenout PCI DSS / PA DSS

Autor: Maxim Maxim Kozenko

Dříve nebo později se většina majitelů a developerů internetových obchodů a mobilních aplikací, kteří užívají platby online budou ptát sami sebe: „Má- li být můj projekt v souladu s normami PCI DSS?“

PCI DSS je bezpečnostní standard používaný všemi organizacemi, které zpracovávají platby kartou. Maloobchodní prodejny, zpracovatelské centra, finanční instituce, poskytovatelé služeb a další organizace, které ukládají, zpracovávají nebo odesílají informace o držiteli karty a / nebo kritická data k ověření pravosti.

Díky webové stránce je vše poměrně jednoduché: Během integračního procesu stačí použít technické řešení, které přesměruje plátce na místo PCI DSS certifikované platební brány (tzv. hostované platební stránky), nebo načte certifikovanou stránku na původní webové stránce. Ať tak či onak, je kupující přesměrován na formulář, kde vloží své údaje o kartě.

V takových případech prodávající nepodléhá bezpečnostním normám, protože neukláda údaje z karty a údaje nejsou převedeny přes jejich servery. Navíc, vzhledem k bezpečnostní politice webových prohlížečů, nemají přístup k rámu platební brány.

Díky mobilní aplikaci věci jsou trochu složitější. Oblíbená mylná představa je, že pokud mobilní aplikace požaduje data karty, pak automaticky podléha normám PCI DSS. Ale ve skutečnosti, organizace vyvýjejíci normy PCI DSS (PCI SSC – Payment Card Industry Council Security Standards) doposud nevydala zvláštní požadavky na mobilní aplikace. To znamená, že normy zůstávají dobrovolné a nejsou povinné pro nejpopulárnější kategorii mobilních aplikací, konkrétně

Kategorie 3: Platební aplikace pracující na jakémkoli elektronickém ručním zařízení pro spotřebitele (např., Smartphone, tablet nebo PDA), který není vyhrazen pro přijetí platby za účelem zpracování transakcí.

Vzhledem k tomu, že mobilní aplikace nemůže existovat bez “back-endu” (strana serveru, která se týká účtování a hlavní obchodní logiky), tak či onak informace potřebné pro zpracování platby budou procházet serverem prodávajícího. Je zde drobná niance: v momentě, kdy developer nemá, neúmyslně nebo úmyslně, program na vyžádání přenosu dat na kartě do jakýchkoli neověřených serverů, mobilní platby SDK by měly udělat údaje karty nečitelné. Toto omezení zajišťuje, že PCI DSS požadavky jsou splněny.

PCI DSS nemusí žádat přímo o platbu prodejce, pokud prodávající uchovává, zpracovává a přenáší data držitelů karet, nebo má přístup k datům držitelů karet svých zákazníků.

Podívejme se, jak to funguje v mobilních SDK platebních službách FONDY pomocí příkladu na verzi Android.

FONDY je medzinárodní platební brána a je k dispozici v Evropě. Nabízí širokou škálu řešení, včetně:

  • klasický internetový acquiring
  • White label řešení pro web a mobilní zařízení
  • Účetní centrum pro všechny typy on-line podnikání, od poskytovatelů internetových služeb, on-line prodejců až po seznamovací stránky a taxi služby

Toto řešení má za následek, že data z karty jsou vloženy do paměti vytvořené pomocí knihovny SDK, zatímco mobilní aplikace využívá veřejné metody této paměti s cílem uskutečnit platbu, vyplnit formulář a získat informace o dokončení platby.

Příklad demo aplikace pro Android

Pro začátek jsme vytvořili vizuální strukturu pro náš platební formulář – rozvržení (celý zdrojový kód demo aplikace lze nalézt na GitHub):

layout_new

Ujistěte se, že všechny prvky v aplikaci, kromě údajů z karty, jsou Vaše a že formulář pro zadání čísla karty, datum expirace a CVV2 jsou zapouzdřeny ve třídě com.cloudipsp.android.CardInputView. Takhle to vypadá (pro testy můžete použít údaje uvedené zde: https://docs.fondy.eu/docs/page/2/ ):

 device-2016-05-08-043635
 

Nicméně všechny prvky, včetně těch, které patří do class com.cloudipsp.android.CardInputView lze snadno stylizovat podle návrhu v hlavní aplikaci. Pro pozdější práci s aplikacemi a kartami zařazenými do 3DSecure, budeme potřebovat prvky třídy com.cloudipsp.android.CloudipspWebView. Jedná se o WebView, ve kterém je plátce přesměrován na stránky jeho / její vydavatelské banky, aby zadal své heslo.

 device-2016-05-08-043826
 

Nyní se budeme pohybovat v naši hlavní části, která bude implementovat logiku aplikace: public class MainActivity. Inicializujeme objekt části Cloudisp:

 mainactivity

Dále vložíme handler na objekt části com.cloudipsp.android.Card za účelem získání výsledků zadávání čísla karty:

handler

Teď budeme vědět, kdy uživatel dokončil zadávání údajů z karty nebo, v případě chyby, dostaneme informace o problému. Po zadání údajů z karty, můžeme vytvořit objednávku:

 order
 

Jak můžete vidět, integrace je poměrně jednoduchá a nevyžaduje zvláštní úsilí ze strany vývojáře aplikací. A co víc, SDK řeší dva problémy najednou:  dává prodávajícímu možnost přijímat platby kartou a uloží je bez nutnosti získat bezpečnostní certifikaci.