PAMETNI TELEFON KOT PLAČILNO SREDSTVO

Velikost: px
Začni prikazovanje s strani:

Download "PAMETNI TELEFON KOT PLAČILNO SREDSTVO"

Transkripcija

1 UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Klemen Hrastnik PAMETNI TELEFON KOT PLAČILNO SREDSTVO Magistrsko delo Maribor, april 2018

2 PAMETNI TELEFON KOT PLAČILNO SREDSTVO Magistrsko delo Študent: Študijski program: Mentor: Lektorica: Klemen Hrastnik Študijski program 2. stopnje Informatika in tehnologije komuniciranja doc. dr. Domen Verber, univ. dipl. inž. rač. in inf. Tina Lorenčič, prof. slovenščine

3 I

4 ZAHVALA Zahvaljujem se mentorju doc. dr. Domnu Verberju za strokovne nasvete, vsa priporočila ter vložen trud in čas. Posebna zahvala gre staršem, ki so mi omogočili študij in mi pri tem nudili vso podporo. II

5 Pametni telefon kot plačilno sredstvo Ključne besede: mobilno plačevanje, primerjava, varnost, programski vmesnik, API, integracija UDK: : (043.2) Povzetek V magistrskem delu smo na začetku predstavili področje mobilnega plačevanja z vidika delovanja, vključenih akterjev, področja varnosti in različnih pristopov. Predstavili smo stanje in rešitve razvoja mobilnega plačevanja v Sloveniji in po svetu. V nadaljevanju smo predstavili ponudnike programskih vmesnikov, ki omogočajo integracijo storitev mobilnega plačevanja v mobilne aplikacije. Za vsakega izmed ponudnikov storitev plačevanja smo predstavili proces integracije programskega vmesnika v mobilno aplikacijo na operacijskem sistemu Android. Cilj magistrskega dela je preučitev obstoječih programskih vmesnikov, ki omogočajo mobilno plačevanje, pri čemer smo se osredotočili na učinkovitosti in zmožnosti uporabe le-teh. Obravnavane programske vmesnike smo ovrednotili in ocenili po preferencah in potrebah razvijalca mobilnih rešitev. III

6 Smartphone as a payment device Key words: mobile, payments, security, comparison, programing, interface, API, integration UDK: : (043.2) Abstract In the master's thesis, we initially presented the field of mobile payment in terms of operation, involved actors, the field of security and various approaches. We presented the situation and solutions for the development of mobile payments in Slovenia and around the world. In the following, we introduced software interface providers that enable the integration of mobile payment services into mobile applications. For each payment service provider, we introduced the process of integrating the programming interface into a mobile application on an Android operating system. The aim of the master's thesis is to study the existing software interfaces that enable mobile payment, focusing on the efficiency and capabilities of using them. The discussed software interfaces were evaluated and according to the preferences and needs of the mobile application developer. IV

7 KAZALO 1 UVOD Opis problema in cilj Raziskovalna vprašanja in hipoteze Predpostavke in omejitve Uporabljene metode raziskovanja MOBILNO PLAČEVANJE Mobilna tehnologija Opredelitev pojma mobilno plačevanje Udeleženci mobilnega plačevanja Modeli mobilnega plačevanja Varnost pri mobilnem plačevanju Pristopi in tehnologije Mobilno plačevanje v Sloveniji Mobilno plačevanje po svetu PONUDNIKI PROGRAMSKIH VMESNIKOV Braintree PayPal BlueSnap NAČRT PRIMERJAVE PROGRAMSKIH VMESNIKOV Izdelava namenske aplikacije Načrt primerjalnega modela V

8 5 INTEGRACIJA PROGRAMSKIH VMESNIKOV Proces integracije programskega vmesnika Braintree Proces integracije programskega vmesnika PayPal Proces integracije programskega vmesnika BlueSnap PRIMERJAVA IN REZULTATI MERJENJA Predstavitev rezultatov merjenja Primerjava skupnih rezultatov SKLEP LITERATURA KAZALO SLIK SLIKA 1 UDELEŽENCI MOBILNEGA PLAČEVANJA... 9 SLIKA 2 MODEL, USMERJEN V MOBILNEGA OPERATERJA SLIKA 3 BANČNO USMERJEN MODEL SLIKA 4 MODEL SODELOVANJA SLIKA 5 MODEL NEODVISNEGA PONUDNIKA SLIKA 6 POSTOPEK PLAČILA MONETA [7] SLIKA 7 VZPOSTAVITVENI POSTOPEK STORITVE APPLE PAY [31] SLIKA 8 POSTOPEK IZVEDBE PLAČILA - APPLE PAY [31] SLIKA 9 POSTOPEK IZVEDBE PLAČILA ANDROID PAY [31] SLIKA 10 PROCES IZVEDBE PLAČILA SAMSUNG PAY [31] SLIKA 11 POSTOPEK DELOVANJA BRAINTREE PLAČILNE STORITVE [53] SLIKA 12 POSTOPEK NAKUPA PAYPAL SLIKA 13 PRIMER HTTP ZAHTEVE ZA IZVEDBO TRANSAKCIJE BLUESNAP SLIKA 14 PRIMER KRIPTIRANJA S POMOČJO KNJIŽNICE»BLUESNAP-ENCRYPED.JAR« SLIKA 15 PROGAMSKA KODA ZA MERJENJE ČASA SLIKA 16 BRAINTREE PLATFORMA POGLED NADZORNE PLOŠČE SLIKA 17 VKLJUČITEV KNJIŽNIC RAZVOJNEGA OGRODJA BRAINTREE SDK V PROJEKT MOBILNE APLIKACIJE SLIKA 18 KONFIGURACIJA POGLEDA ZA PRIKAZ PLAČILNIH METOD SLIKA 19 PROGRAMSKA KODA ZA PRIDOBITEV ŽETONA ZA INICIALIZACIJO ODJEMALCA VI

9 SLIKA 20 DROPINREQUEST ZA PRIKAZ IZBIRE PLAČILNEGA SREDSTVA SLIKA 21 PRIMER KLICA NA STREŽNIK ZA KREIRANJE PLAČILNE TRANSAKCIJE SLIKA 22 UPORABNIŠKI VMESNIK ZA IZBIRO PLAČILNE METODE BRAINTREE SLIKA 23 UPORABNIŠKI VMESNIK PAYPAL DEVELOPER PLATFORME SLIKA 24 VKLJUČITEV KNJIŽNIC RAZVOJNEGA OGRODJA PAYPAL SDK V PROJEKT MOBILNE APLIKACIJE SLIKA 25 KONFIGURACIJA PAYPAL STORITVE IN AKTIVNOSTI ZNOTRAJ MANIFEST.XML SLIKA 26 KONFIGURACIJA PLAČILNEGA OKOLJA IN STORITVE PAYPAL SLIKA 27 PROGRAMSKA KODA ZA IZVRŠITEV ZAČETKA PLAČILNEGA PROCESA PAYPAL SLIKA 28 UPORABNIŠKI VMESNIK ZA PROCES PLAČEVANJA PAYPAL SLIKA 29 OBDELAVA REZULTATA PLAČILA PAYPAL SLIKA 30 KONFIGURACIJA POVERILNIC ZNOTRAJ BLUESNAP PLATFORME SLIKA 31 VKLJUČITEV KNJIŽNIC PROGRAMSKEGA VMESNIKA BLUESNAP SLIKA 32 PRIDOBITEV ŽETONA ZA INICIALIZACIJO BLUESNAP SLIKA 33 INICIALIZACIJA BLUESNAP PROGRAMSKEGA VMESNIKA SLIKA 34 VALIDACIJA ZNESKA IN VALUTE BLUESNAP SLIKA 35 UPORABNIŠKI VMESNIK ZA VNOS PODATKOV PRI PLAČILU BLUESNAP SLIKA 36 REZULTAT ZAHTEVE ZA IZVEDBO PLAČILA IN GENERIRANJE PLAČILNE TRANSAKCIJE BLUESNAP SLIKA 37 ZASEDENOST POMNILNIKA V ČASU IZVAJANJA PLAČILNE TRANSAKCIJE SLIKA 38 KOLIČINA PRENOSA PODATKOV MED IZVEDBO PLAČILNE TRANSAKCIJE SLIKA 39 VELIKOST PROGRAMSKIH KNJIŽNIC KAZALO TABEL TABELA 1 PRIMERJAVA MOBILNIH SISTEMOV ZA PLAČEVANJE TABELA 2 PREDNOSTI IN SLABOSTI APPLE PAY TABELA 3 PREDNOSTI IN SLABOSTI GOOGLE PAY TABELA 4 PREDNOSTI IN SLABOSTI SAMSUNG PAY TABELA 5 KRITERIJI ZA IZBIRO PROGRAMSKIH VMESNIKOV TABELA 6 CENOVNI MODEL BRAINTREE TABELA 7 CENOVNI PAKETI PAYPAL TABELA 8 STROŠKI UPORABE BLUESNAP TABELA 9 NAČRT ZA IZVEDBO PRIMERJALNE PROCEDURE TABELA 10 NAČRT PRIMERJALNE PROCEDURE TABELA 11 REZULTATI MERJANJA ČASA PRI IZVAJANJU PLAČILNIH TRANSAKCIJ TABELA 12 PRIMERJAVA STROŠKOV UPORABE STORITEV PLAČEVANJA TABELA 13 PRIMERJAVA PO TEŽAVNOSTI INTEGRACIJE TABELA 14 PRIMERJAVA REZULTATOV MERJENJA VII

10 1 UVOD 1.1 Opis problema in cilj Mobilna tehnologija se uporablja skoraj že na vsakem koraku našega življenja. Živimo v digitalni dobi, kjer je razvoj novih informacijskih tehnologij neverjetno hiter. Vse bolj se v naša življenja vključujejo pametne mobilne naprave, ki nam na eni strani omogočajo lažje življenje, na drugi strani nas pa nadzorujejo in posegajo v našo zasebnost. Po zadnjih raziskavah je mednarodna telekomunikacijska zveza ocenila, da trenutno na svetu obstaja 7,1 milijarde mobilnih naročnin, kar predstavlja 96,5 odstotka celotnega prebivalstva. Mobilne naprave, kot so pametni telefoni, dlančniki in tablični računalniki, postopoma nadomeščajo tradicionalne osebne računalnike kot glavno sredstvo za dostop do svetovnega spleta, na kar je vplivala razširjenost telekomunikacijskih tehnologij (3G/4G) [1]. Uporaba pametnih mobilnih naprav pa se v zadnjih letih uveljavlja tudi na področju mobilnega plačevanja storitev, saj s svojimi funkcionalnostmi omogoča izvajanje plačilnih transakcij ter predstavlja zamenjavo za gotovinsko in kartično plačevanje [1]. Začetki mobilnega plačevanja segajo v leto Takrat je bila izvedena prva mobilna transakcija z uporabno mobilne naprave na Finskem, kjer je bilo mogoče na avtomatih za pijačo izvesti nakup preko SMS sporočila [2]. S pojavom novih prodajnih kanalov, kot sta internet in mobilno poslovanje, se je ustvarila tudi potreba po novih načinih plačevanja, ki bi omogočali enostavno in priročno izvajanje plačilnih transakcij [3]. Mobilno plačevanje kot pojem predstavlja nov način plačevanja blaga, storitev in položnic s pomočjo mobilne naprave, kot je pametni telefon, tablični računalnik ali PDA z izkoriščanjem mobilnih telekomunikacijskih omrežij ali drugih tehnologij, kot je npr. 1

11 tehnologija NFC. Pomembno vlogo pri izvajanju uspešnega mobilnega plačevanja igrajo varnost, zanesljivost ter ekonomičen način izvedbe plačila [4]. Rešitev mobilnega plačevanja je bila sprva predlagana za izvajanje transakcij manjših vrednosti, saj so stroški plačevanja s kreditnimi karticami previsoki za»mikro«plačila in niso predstavljali dovolj velikega donosa [3]. Plačevanje s pomočjo pametnih mobilnih naprav je na globalni ravni čedalje bolj sprejeto med potrošniki v Severni Ameriki, na Japonskem in v nekaterih državah zahodne Evrope. Polovica potrošnikov na zrelih trgih pričakuje, da bodo lahko izvajali plačilne transakcije s pomočjo pametnih naprav do leta 2018 [5]. Po napovedih tržne raziskave iz leta 2015 je bilo napovedano, da se bo število mobilnih transakcij v naslednjih petih letih povečalo iz 3,1 milijarde na 501,1 milijarde izvedenih transakcij [6]. Poznamo različne načine oziroma pristope mobilnega plačevanja, ki temeljijo na podlagi različnih tehnologij: - mobilno plačevanje na podlagi tehnologije SMS, - mobilno plačevanje preko protokola WAP, - brezstično mobilno plačevanje z uporabo tehnologije NFC, - mobilno plačevanje z uporabo QR kod, -»Cloud-based«mobilno plačevanje, - tehnologija mobilnega plačevanja, ki temelji na prenosu zvoka med pametno mobilno napravo in sprejemnikom, - mobilno plačevanje na podlagi RFID tehnologije. V Sloveniji je trenutno najbolj popularno mobilno plačevanje preko storitve Moneta, v katerega so povezani ponudniki mobilnih omrežij (Telekom Slovenije, Simobil, Debitel) ter banke in druge institucije, ki prevzemajo eno ali več možnih vlog udeležencev sistema. Sistem Moneta je storitev, ki omogoča brezgotovinsko plačevanje z mobilnim telefonom za uporabnike in ponudnike mobilnega plačevanja. Plačilni instrument Moneta 2

12 predstavlja glavni element celotnega poslovnega modela za mobilno plačevanje ter vsebuje nabor poslovnih dogovorov in pravil, po katerih ti delujejo znotraj celotnega sistema ter tako omogočajo poslovanje vsem uporabnikom Monete (Moneta 2015). Varnost pri mobilnem plačevanju je ključnega pomena ter predstavlja glavni izziv s strani tehnološkega vidika. Številne raziskave so pokazale, da je varnost eden izmed glavnih faktorjev, ki vpliva na sprejetje in zaupanje v mobilno plačevanje s strani potrošnikov, zato morajo sistemi mobilnega plačevanja zagotavljati visoko stopnjo varnosti in zanesljivosti. V magistrskem delu se bomo osredotočili na trenutne zmožnosti plačevanja s pomočjo pametnih mobilnih naprav z vidika učinkovitosti in varnosti uporabe. Na začetku bomo preučili in predstavili trenutne pristope mobilnega plačevanja, raziskali obstoječe rešitve mobilnega plačevanja s stališča uporabe in navedli njihove prednosti in slabosti. V nadaljevanju bomo pregledali in predstavili različne programske vmesnike, ki omogočajo mobilno plačevanje ter naredili primerjavo med njimi glede na njihove karakteristike. V praktičnem delu magistrskega dela bomo opisali proces integracije določenih programskih vmesnikov v mobilne aplikacije na pametnih mobilnih napravah. Cilj magistrskega dela je preučitev obstoječih programskih vmesnikov, ki omogočajo mobilno plačevanje s pomočjo pametnih mobilnih naprav, pri čemer se bomo osredotočili na učinkovitost uporabe in nivo varnosti. 1.2 Raziskovalna vprašanja in hipoteze Z namenom doseganja ciljev magistrskega dela smo podali naslednja raziskovalna vprašanja: RV1: Kateri programski vmesnik za mobilno plačevanje je najbolj razširjen? RV2: Kateri programski vmesnik za mobilno plačevanje ponuja najširši nabor funkcionalnosti na strani odjemalca? RV3: Kateri programski vmesnik za mobilno plačevanje je stroškovno najugodnejši? 3

13 RV4: Kateri programski vmesniki omogočajo izvedbo plačilne transakcije v načinu brez povezave? RV5: Kateri programski vmesniki omogočajo implementacijo lastnih obrazcev pri izvedbi plačevanja? RV6: Kateri programski vmesnik omogoča najhitrejši dostop in procesiranje transakcij? RV7: Kateri programski vmesnik je glede uporabe virov najučinkovitejši? RV8: Kateri programski vmesnik omogoča najenostavnejšo integracijo za izvedbo plačilnih transakcij? 1.3 Predpostavke in omejitve Omejitve magistrskega dela: - Zavedamo se, da obstaja veliko število programskih vmesnikov, ki omogočajo mobilno plačevanje na pametnih napravah, zato se bomo osredotočili na tri najpogosteje uporabljene storitve; - V sklopu praktičnega dela bomo proces integracije programskega vmesnika za mobilno plačevanje prikazali v aplikaciji, ki teče na platformi Android. 1.4 Uporabljene metode raziskovanja Pri proučevanju in raziskovanju področja plačevanja na mobilnih napravah bomo uporabljali knjige in članke v znanstvenih in strokovnih revijah ter literaturo, ki je dostopna na svetovnem spletu. V praktičnem delu magistrskega dela bomo uporabili empirično metodo raziskovanja. 4

14 2 MOBILNO PLAČEVANJE Razmah pametnih mobilnih telefonov je močno preoblikoval mobilno telefonijo. Danes mobilni telefoni poleg osnovnih funkcionalnosti, kot sta klicanje in sporočanje, omogočajo uporabo naprednejših storitev, med katere uvrščamo tudi mobilno plačevanje. Prva plačilna transakcija, izvedena preko mobilne naprave, se je zgodila leta 1997 na Finskem, kjer je podjetje Coca-Cola na prodajnih avtomatih omogočalo sprejemanje plačil v obliki kratkih SMS sporočil. Trg mobilnih storitev še dandanes ni doživel popolnega razcveta, saj smo bili v zadnjih letih priča velikemu številu uspelih in neuspelih poskusov implementacij različnih rešitev v svetu mobilnega plačevanja [2]. Na koncu devetdesetih let in v začetku leta 2000 so storitve mobilnega plačevanja postale vroča tema po vsem svetu, saj je bilo predstavljenih na stotine novih mobilnih plačilnih storitev. Veliko od teh storitev v tistem času ni doživelo razcveta in so zelo hitro propadle. V takratnem času sta med storitvami mobilnega plačevanja prevladovala PayPal in Visa Electron. Razloga, zakaj mobilno plačevanje v takratnem času ni zaživelo v popolni meri, ne ve nihče. Sklepamo lahko, da mobilna tehnologija tedaj ni bila dovolj zrela in enostavna za uporabo, da bi pritegnila množice uporabnikov [4]. Kljub temu se je razvoj na področju mobilnega plačevanja strmo nadaljeval in glede na zadnje statistične podatke po napovedih analitične hiše Gartner naj bi do leta 2018 polovica uporabnikov pametnih mobilnih naprav na zrelih trgih kot sredstvo za plačevanje uporabljala pametno mobilno napravo [8]. V nadaljevanju bomo najprej na kratko predstavili mobilno tehnologijo, sledi razlaga pojmov oziroma definicij mobilnega plačevanja, opis procesa delovanja mobilnega plačevanja, predstavitev različnih modelov mobilnega plačevanja, izpostavili bomo varnostno problematiko in tehnologijo ter na kratko predstavili že obstoječe sisteme za mobilno plačevanje. 2.1 Mobilna tehnologija Izraz mobilna tehnologija se v zadnjem času pojavlja zelo pogosto. Zasledimo ga skoraj že na vsakem koraku v današnjem svetu. Najpogosteje je predstavljen skozi različne komunikacijske kanale (npr. mediji, reklamni oglasi, strokovna srečanja itd.). Z izrazom 5

15 mobilna tehnologija imamo v mislih mobilne naprave, med katere štejemo mobilne telefone, tablične računalnike, dlančnike in prenosne računalnike. Osnovno infrastrukturo za delovanje mobilnih tehnologij predstavljajo brezžična omrežja, ki omogočajo, da lahko uporabniki mobilnih naprav dostopajo do mobilnih storitev. Mobilne tehnologije se iz leta v leto razvijajo vse hitreje. Glavni dejavniki, ki vplivajo na razvoj mobilnih storitev, so razvoj novih mobilnih naprav, razvoj novih omrežij in omrežnih tehnologij ter želje in zahteve trga. Predstavljeni dejavniki velikokrat vplivajo drug na drugega in na ta način še dodatno stopnjujejo hitrost razvoja mobilnih tehnologij. Torej lahko rečemo, da gre za tako imenovani razvojni cikel, kjer mobilna omrežja vplivajo na razvoj novih mobilnih storitev in mobilnih naprav, ki bodo na koncu omogočale uporabo teh novih mobilnih storitev. Te nove mobilne storitve pa so zahtevane s strani trga oziroma potreb uporabnikov. Za delovanje novih storitev pa je tako treba razviti nova mobilna omrežja ter tudi nove mobilne naprave. Mobilno tehnologijo v grobem delimo na brezžična omrežja, mobilne storitve in mobilne naprave, ki so predstavljene v nadaljevanju [9], [10]. Mobilna omrežja predstavljajo telekomunikacijske storitve, ki jih uporabljamo za brezžične glasovne in podatkovne komunikacije med napravami in predstavljajo osnovo za razvoj mobilne tehnologije. Razvoj mobilnih omrežij se ne razvija samo v smeri, da bi posamezen ponudnik želel s signalom pokriti čim več prebivalstva oziroma ozemlja, ampak želijo ponudniki tovrstnih storitev z uvedbo novih omrežij svojim uporabnikom omogočiti kvalitetnejše storitve, ki ponujajo hitrejši prenos podatkov in dodatne storitve, kot je na primer mobilno poslovanje. Na ta način želijo zadržati obstoječe uporabnike ter pridobiti nove. Izraz brezžična komunikacija pomeni brezžičen prenos signala od oddajnika do prejemnika. To omogoča fizično mobilnost tako uporabnikom kot tudi mobilnim napravam. Mobilna omrežja za brezžičen prenos signala za svoje delovanje uporabljajo različne nosilce signala. Med nosilce signala uvrščamo svetlobo in bolj razširjene radijske valove [9]. Razvoj mobilnih telefonskih omrežij je predstavljen skozi posamezne generacije. Generacije mobilnih omrežij označujemo z zaporedno številko in veliko črko G, kar predstavlja generacijo. Danes poznamo generacije, kot so 0G, 1G, 2G, 3G, 4G in 5G. Obstajajo še dodatne vmesne oznake, ki uradno ne obstajajo, ampak se v praksi vseeno uporabljajo in označujejo posodobitve določenih generacij, kot sta na primer 2.5G in 2.75G in se razlikujeta od generacije 2G, vendar pa kljub temu ne podpirata vseh pogojev za generacijo 3G [11]. 6

16 Vzporedno z razvojem mobilnih omrežij posameznih generacij je potekal tudi razvoj storitev za mobilne naprave. Te storitve so na začetku glede uporabe še vedno precej zaostajale v primerjavi s klasičnim internetom. Večina uporabnikov je v času druge generacije mobilnih omrežij izkoriščala paketni prenos podatkov za enostavne storitve, kot so pregledovanje elektronske pošte in brskanje po internetu [12]. K uspehu mobilne telefonije je v veliki meri prispeval uporabnik. Tehnologije same po sebi predstavljajo zgolj osnovo za storitve in so večini uporabnikom nepoznane. Uporabnik si želi nabor storitev, ki mu bodo na enostaven način pomagale zadovoljiti trenutne potrebe in želje kjerkoli in kadarkoli. V splošnem lahko mobilne storitve razdelimo v naslednje sklope [13]: - govorne storitve, - sporočilne storitve, - podatkovne storitve. Nenehni razvoj mobilnih storitev je pripeljal do vse bolj uporabnih in funkcionalnih mobilnih naprav. Mobilne naprave spadajo med elektronske naprave, ki jih uporabniki uporabljamo za brezžično komunikacijo z drugimi uporabniki in za povezovanje do storitev na internetu preko mobilnih omrežij. Poleg komuniciranja z drugimi uporabniki in povezovanja v mobilna omrežja omogočajo tudi uporabo raznih storitev in aplikacij. Z razvojem mobilnih omrežij so se mobilne naprave spreminjale iz običajnega telefona v več-funkcijske komunikacijske naprave. Danes poznamo več vrst mobilnih naprav, ki se med seboj razlikujejo glede na obliko, vrsto in način uporabe [14]. 2.2 Opredelitev pojma mobilno plačevanje Pri pregledu strokovne literature na področju mobilnega plačevanja smo naleteli na različne definicije, ki opisujejo pojem mobilnega plačevanja. V nadaljevanju bomo navedli nekatere definicije in na koncu zapisali povzetek le-teh [2]. Dahlberg v eni izmed svojih raziskav pojem mobilnega plačevanja definira kot plačevanje blaga, storitev in računov z uporabo mobilne naprave, kot so na primer mobilni telefon, pametni mobilni telefon ali dlančnik, ki pri tem izkorišča zmogljivosti brezžičnih in drugih komunikacijskih tehnologij. Mobilne naprave se lahko uporabljajo v več različnih scenarijih plačevanja, kot so na primer plačilo za digitalne vsebine (npr. melodije za zvonjenje, slike, novice, glasba ali igre), nakup vstopnic za razne prireditve, plačilo 7

17 parkirnine ali javnih prevoznih sredstev in dostopanje do elektronskih plačilnih storitev za plačevanje računov. Možna so tudi plačila za fizično blago, tako na prodajnih avtomatih kot tudi na prodajnih mestih preko POS terminala [4]. Mobilno plačevanje je proces, pri katerem se vsaj ena od faz transakcije izvede preko mobilne naprave (kot so mobilni telefon, pametni mobilni telefon, dlančnik ali katera koli druga brezžična naprava), ki je sposobna varno obdelati finančno transakcijo preko mobilnega omrežja ali preko različnih brezžičnih tehnologij, kot so na primer Bluetooth, NFC, RFID itd. [15]. Pousttchi & Wiedemann v svoji raziskavi mobilno plačevanje obravnavata kot način obdelave finančne transakcije, pri kateri vsaj eden od akterjev (po navadi plačnik) pri procesu plačevanja izkorišča tehnologije mobilne komunikacije, pri katerem mobilna naprava služi kot sredstvo za vzpostavitev, avtorizacijo in potrjevanje mobilnega plačevanja [16]. Mobilno plačevanje (omenjeno tudi kot mobilni denar, mobilna denarnica ali mobilni prenos denarja) se v glavnem nanaša na storitve plačevanja, ki so pod nadzorom finančnih predpisov in so izvedena preko mobilnih naprav [17]. Gartner, Inc. mobilno plačevanje opredeljuje kot transakcije, ki se izvajajo z uporabo mobilnega telefona in plačilnih instrumentov, ki kot bančni instrument vključujejo gotovino, bančni račun, kreditno kartico ali mobilno denarnico [18]. Mobilno plačevanje je proces, pri katerem izvedemo nakup, plačilo ali prenos denarja preko mobilne naprave brez potrebe po fizičnem denarju ali vpletenosti (sodelovanje) bančnih institucij [19]. Vsako plačilo, pri katerem se mobilna naprava uporablja za vzpostavitev, avtorizacijo kupca in potrditev zamenjave finančne vrednosti v zameno za blago ali storitev [20]. Mobilno plačevanje je nova oblika prenosa vrednosti denarja, podobno kot drugi plačilni instrumenti, ki jih potrošniki lahko uporabijo le, da se pri tem izkoriščajo napredne zmožnosti mobilnih telefonov in šifriranje finančnih poverilnic s pomočjo»žetona«[21]. 8

18 Za mobilno plačevanje torej ni enotne razlage, vendar lahko glede na zgoraj opisane definicije povzamemo, da je mobilno plačevanje način plačila, pri katerem za vzpostavitev plačilnega procesa, avtorizacijo kupca in potrditev finančne transakcije izkoristimo napredne zmožnosti mobilnega telefona. Mobilno plačevanje lahko uporabimo za nakup blaga ali storitev ter za prenos denarja od enega do drugega uporabnika. Nekateri avtorji v raziskavah mobilno plačevanje enačijo s spletnim nakupovanjem oziroma e-nakupovanjem, katerega lahko izvedemo tudi preko stacionarnega oziroma prenosnega računalnika. V naši raziskavi se bomo osredotočili izključno na plačevanja, pri katerih kot sredstvo za plačevanje uporabimo pametni mobilni telefon [21]. 2.3 Udeleženci mobilnega plačevanja V celotnem ekosistemu mobilnega plačevanja aktivno sodeluje več entitet, ki so med seboj povezani in v veliki meri odvisni eden od drugega. Gre za kompleksen sistem, znotraj katerega se srečujejo in prepletajo štiri različna področja [20]: - mobilno poslovanje, - trgovine oziroma maloprodaje, - področje plačil in plačilnih sistemov, - tehnologije in razvoj. Slika 1 Udeleženci mobilnega plačevanja 9

19 Zgornja slika (Slika 1) prikazuje vse udeležence, ki sodelujejo v procesu mobilnega plačevanja in interakcije med njimi. Uporabnik Uporabnik oziroma kupec ali potrošnik je oseba, ki za nakup blaga ali prejete storitve postopek plačevanja opravi preko pametne mobilne naprave. Kupec je eden izmed najpomembnejših akterjev v sistemu mobilnega plačevanja, saj brez njega pravzaprav ne bi bilo izvedene nobene mobilne transakcije [22]. Trgovec V procesu mobilnega plačevanja trgovci predstavljajo akterje prodaje, ki končnim uporabnikom ponujajo izdelke in storitve v zameno za (mobilno) plačilo. Trgovci v povezavi z uporabniki predstavljajo drugi del ekosistema, ki skupaj vzpostavljata transakcije z namenom obdelave le-tega preko procesa mobilnega plačevanja [22]. Mobilni operater Pomembno vlogo v procesu mobilnega plačevanja predstavljajo tudi mobilni operaterji. Izvajajo številne aktivnosti in prevzemajo odgovorno vlogo za nudenje, vzdrževanje in nadzorovanje komunikacijske infrastrukture, ki je nujna za delovanje storitev mobilnega plačevanja [22]. Finančna institucija Pod pojmom finančne institucije so najpogosteje izpostavljene banke, vendar v to skupino uvrščamo tudi druge organizacije, ki so njim sorodne ali tesno povezane. Na eni strani so to organizacije, ki z bankami sodelujejo za zagotavljanje (izvajanje) plačilnih storitev in vključujejo kartične in debetne sisteme, kot je na primer združenje MasterCard ter na drugi strani neodvisne ponudnike plačilnih storitev, kot je denimo PayPal. Glavna naloga finančnih institucij je opravljanje uporabniških bančnih računov, preko katerih njihovi komitenti izvajajo plačilne ali druge transakcije. Finančne ustanove v procesu mobilnega plačevanja sodelujejo z mobilnimi operaterji in prispevajo svoja znanja in izkušnje na podlagi uveljavljenih postopkov in zahtev glede plačilnih storitev [22]. Vladna organizacija 10

20 Tudi v svetu mobilnega plačevanja obstajajo določena pravila in predpisi, za katera skrbijo posamezne vladne organizacije v državah. Mobilna plačila morajo ustrezati določenim zahtevam, na podlagi katerih so razvite storitve mobilnega plačevanja [20]. Ponudnik storitev Za uspešno delovanje storitev mobilnega plačevanja je potrebno tesno sodelovanje med podjetji iz različnih panog. Cilj ponudnikov mobilnih plačilnih storitev je vzpostavitev celovitega nabora postopkovnih pravil in tehnoloških zahtev, ki zagotavljajo združljivost in nemoteno delovanje vseh delov sheme mobilnega plačevanja. Vloga ponudnikov storitve je, da tehnološke rešitve mobilnega plačevanja, ki jih razvijejo ponudniki programske opreme, ponudijo na trg. Velikokrat te rešitve prilagodijo glede na potrebe in stanje trga. Literatura kot ponudnike storitev mobilnega plačevanja praviloma navaja tudi mobilne operaterje in bančne institucije, ki uporabnikom ponujajo lastne storitve mobilnega plačevanja [22], [23]. Izdelovalec naprav V to skupino v prvi vrsti uvrščamo dobavitelje in izdelovalce mobilnih naprav, POS terminalov in drugih manjših delov naprav. Njihova glavna naloga je zagotoviti tehnična sredstva oziroma strojne dele naprav za izvajanje plačilnih transakcij. Predstavljajo pomembno vlogo v ekosistemu mobilnega plačevanja, saj nadzorujejo tehnologijo in naprave, ki jih uporabniki uporabljajo, kar pa posledično vpliva na implementacijo in razvoj storitev mobilnega plačevanja [22]. Ponudnik programske opreme Ponudniki programskih rešitev oziroma razvijalci so tisti, ki načrtujejo in implementirajo celovito rešitev oziroma program, ki je sposoben izvrševati plačilne transakcije preko mobilne naprave. Pomembna lastnost razvijalcev rešitev mobilnega plačevanja je ta, da so njihove tehnološke rešitve implementirane in izvedene celovito»end to end«. Njihova naloga je izdelati rešitev, ki bo na čim bolj enostaven in inovativen način omogočala avtentikacijo uporabnika in varno plačilno transakcijo na prodajnem mestu [23]. 11

21 2.4 Modeli mobilnega plačevanja V svetu mobilnega plačevanja so se izoblikovali štirje modeli mobilnega plačevanja. Vsak izmed njih predstavlja različno shemo in povezave med akterji [24]: - model, usmerjen v mobilnega operaterja, - model, usmerjen v bančno ustanovo, - model sodelovanja, - model neodvisnega ponudnika. Pri modelu, usmerjenem v mobilnega operaterja, glavno vlogo igra mobilni operater, ki skrbi za tehnologijo in celotno infrastrukturo finančnih transakcij. V tem primeru mobilni operater razvije in na voljo poda storitve, ki omogočajo mobilno plačevanje. To za njih predstavlja novost, saj so do pred kratkim svojim uporabnikom zaračunavali le svoje storitve preko računov za mobilno telefonijo ali predplačniških uporabniških računov. Slika 2 predstavlja model, usmerjen v mobilnega operaterja [22]. Slika 2 Model, usmerjen v mobilnega operaterja Pri bančno usmerjenem modelu mobilnega plačevanja nadzor nad plačilnimi transakcijami upravljajo banke. Gre za model, podoben trenutnemu sistemu kreditnih 12

22 kartic, pri katerem se namesto kreditne kartice pri komunikaciji s POS terminalom uporabi mobilni telefon. V tem procesu je banka v vlogi izdajatelja za kupca in v vlogi ponudnika za trgovca. Za razliko od prejšnjega modela v tem primeru za proces mobilnega plačevanja poskrbi banka, medtem ko mobilni operator zagotovi le povezavo med uporabnikom in banko. Slika 3 prikazuje bančno usmerjen model mobilnega plačevanja [25]. Slika 3 Bančno usmerjen model Model sodelovanja predstavlja medsebojno sodelovanje med mobilnimi operaterji, bankami in tretjim akterjem, ki predstavlja povezavo med banko in mobilnim operaterjem. V tem modelu vsak izmed sodelujočih opravlja svojo nalogo, pri čemer banka skrbi za plačilne transakcije, mobilni operater za komunikacijsko infrastrukturo, tretji akter pa opravlja in ponuja te storitve. Raziskave kažejo, da model sodelovanja pokriva 86 % vseh mobilnih modelov in predstavlja največji potencial za dolgoročno sodelovanje, saj vsakemu udeležencu omogoča, da se osredotoči na svojo primarno nalogo [24]. 13

23 Slika 4 Model sodelovanja Model neodvisnega ponudnika storitev je v tem primeru tretja oseba, ki ni finančni posrednik ali mobilni operater, temveč igra vlogo posrednika med bankami, mobilnimi operaterji, trgovci in končnimi uporabniki. Cilj neodvisnega ponudnika je vzpostaviti mobilno plačevanje neodvisno od bank in mobilnih operaterjev. Zaradi manjših stroškov transakcij, ki jih v drugih modelih plačevanja zaračunavajo banke in mobilni operaterji, je ta zanimiv predvsem za trgovce. Neodvisni ponudnik storitev (ISP) nadzoruje in upravlja pravice med mobilnimi operaterji in bankami, ki v tem primeru manj sodelujejo v postopku usklajevanja. Primer takega neodvisnega ponudnika je podjetje PayPal, ki omogoča plačevanje preko interneta oziroma obdelavo plačilnih transakcij za spletne prodajalce in druge uporabnike [24]. 14

24 Slika 5 Model neodvisnega ponudnika 2.5 Varnost pri mobilnem plačevanju Varnost je pri tehnoloških informacijskih rešitvah zelo pomembna, saj se s kompleksnostjo in raznovrstnostjo povečuje tudi število varnostnih pomanjkljivosti, ki jih je težje odkriti. Varnost celotnega informacijskega sistema ali aplikacije je namreč odvisna od njenega najšibkejšega člena [26]. V računalniškem svetu pojem varnosti pomeni varovanje podatkov in informacijskih sistemov pred nezakonitim dostopom, uporabo, razkritjem, ločitvijo, spremembo ali uničenjem. Mobilno plačevanje se srečuje z različnimi varnostnimi izzivi in mora zagotavljati naslednje varnostne zahteve [27]: identifikacijo, ki predstavlja unikatno identifikacijo osebe ali entitete; avtentikacijo, ki dokazuje identiteto uporabnika ali entiteto, za katero se izdaja; zaupnost, kar pomeni, da se onemogoči vpogled, interpretacija ali razumevanje podatkov nepooblaščenim uporabnikom; integriteto, ki predstavlja zagotovilo, da podatki niso bili spremenjeni s strani nepooblaščenih uporabnikov; dostopnost, ki zagotavlja nemoten dostop do storitev; kontrolo dostopa, kar pomeni nadzorovanje akcij oseb ali entitet glede na njihove identitete; 15

25 nezatajljivost, ki pomeni preprečitev zanikanja sodelovanja v dejanju s strani sodelujočega. Kot pri vseh tehnologijah je varnost pri mobilnem plačevanju zelo pomembna, saj se pri mobilnem plačevanju transakcije lahko zgodijo tudi brez človeškega faktorja ali predhodno vzpostavljenega zaupanja z drugo stranjo. Mnoge varnostne zahteve so odvisne od kriptografskih operacij, kot so šifriranje, zgoščevanje, digitalno podpisovanje [28]. Potencialna varnostna tveganja za mobilno plačevanje Phishing in socialno inženirstvo Uporaba mobilnih naprav za zasebne in službe namene predstavlja tveganje, saj naprava ves čas zbira informacije, ki bi lahko pomagale pri izvedbi napadov. Lažno predstavljanje ali zvabljanje predstavlja nezakoniti način zavajanja uporabnikov, pri katerem je njihov cilj pridobivanje tujih občutljivih podatkov, kot so številke kreditnih kartic, gesel, podatkov o računih itd. Tipičen primer takšne prevare je, da napadalec pod pretvezo uradne ustanove preko elektronskega naslova ali pojavnega okna prepriča žrtev, da mu posreduje te podatke. Ukradene podatke kreditne kartice (npr. številka kreditne kartice, CVV, datum poteka kartice) je mogoče bodisi prodati bodisi uporabiti za goljufiva plačila. Ukradeni osebni podatki o bančnem plačilu (npr. ime, priimek, datum rojstva, naslov za dostavo, telefonska številka itd.) se lahko uporabijo za napade pod lažnim predstavljanjem in krajo identitete [29]. Namestitev zlonamerne programske opreme Eden izmed načinov namestitve zlonamerne aplikacije je ta, da napadalec s pomočjo»phishing«in socialnega inženirstva prepriča žrtev, da odpre prilogo v e-poštnem sporočilu, ki ga preusmeri na zlonamerni spletni naslov. Drugi možen kanal za okužbo z zlonamerno programsko opremo predstavlja nezavarovana dostopna točka WiFi, pri kateri lahko napadalec prikaže lažno spletno mesto za overjanje uporabnikov in na ta način zbira podatke, ki jih lahko uporabi za naslednje korake napada, saj veliko ljudi 16

26 uporablja isto uporabniško ime in geslo za več različnih storitev, med katere lahko štejemo tudi mobilno aplikacijo za plačevanje. Večina zlonamerne programske opreme je povezana z aktivnostmi, kot so pridobivanje podatkov o lokaciji preko GPS-a, posredovanja dnevnika klicev in kontaktov, snemanje klicev in kraja gesel za avtentikacijo mobilne transakcije [30]. Neavtoriziran dostop do izgubljene ali ukradene mobilne naprave V tem primeru bo napadalec pridobil dostop do naprave s pomočjo ugotavljanja PIN kode ali poskus poneverjanja prstnega odtisa, ukradenega iz drugih virov. Napadalec lahko tudi s pomočjo programskih orodij pridobi»root«dostop do datotečnega sistema in na ta način ukrade podatke, ki so shranjeni na napravi [31]. Povratno inženirstvo izvorne kode aplikacije S pomočjo metode povratnega inženirstva lahko napadalec pridobi kodirana gesla in ključe za šifriranje v primeru slabe implementacije programske kode [31]. Kloniranje mobilne aplikacije Napadalec naredi in izda vizualno identično mobilno aplikacijo za plačevanje, kot jo ima žrtev nameščeno na pametni napravi in služi kot sredstvo za pridobivanje občutljivih osebnih podatkov [31]. Varnostni mehanizmi pri mobilnem plačevanju Za zagotavljanje varnosti mobilnega plačevanja se lahko uporablja več varnostnih mehanizmov, ki so predstavljeni v nadaljevanju [30], [32]: prstni odtis: Uporabnik z uporabo prstnega odtisa opravi avtorizacijo plačila; uporabniško ime in geslo: Večina ponudnikov mobilnih plačilnih storitev nudi možnost vnosa uporabniškega imena in gesla, ki služi za preverjanje identifikacije in avtorizacijo plačila; dvostopenjska avtentikacija: Dvostopenjsko preverjanje pristnosti je dodaten varnostni nivo za dostop do podatkov na način, da nam preko SMS sporočila pošlje kodo, ki jo bomo skupaj z uporabniškim imenom in geslom uporabili za identifikacijo in avtorizacijo; SSL/TLS (angl. SecureSocketLayer/TransportLayerSecurity): SSL/TLS sta kriptografska protokola, ki se uporabljata za varovanje podatkov na internetu; 17

27 SE (angl. Security element): Mobilna plačila, ki temeljijo na komunikacijski tehnologiji NFC, uporabljajo varnosti element na napravi za zaščito občutljivih podatkov; HCE (angl. Host card emulation): HCE je arhitektura programske opreme, ki zagotavlja virtualno predstavitev identitete bančne kartice v povezavi z NFC brez uporabe varnostnega elementa SE; tokenizacija (angl. Tokenization) je proces kodiranja občutljivih podatkov plačilne kartice v unikatno geslo, ki se imenuje žeton (angl. Token). Generiran žeton se uporablja za inicializacijo plačilne transakcije, ki je sestavljen iz alfa numeričnih znakov in predstavlja popolno zamenjavo podatkov plačilne kartice. V primeru poskusa zlorabe plačilo s pomočjo žetona ni mogoče, saj le-ta ne vsebuje izvornih podatkov o plačilni kartici, ki so shranjeni v zaščitenih podatkovnih bazah in ne na mobilni napravi [33]. Veliko tveganj, povezanih z mobilnim plačevanjem, je na strani uporabnikov. Neprofitna organizacija ISACA je leta 2016 z 900 strokovnjaki s področja kibernetske varnosti izvedla raziskavo glede groženj varnosti mobilnega plačevanja. Rezultat raziskave je pokazal, da so anketiranci kot najpomembnejše grožnje varnosti mobilnega plačevanja izpostavili uporabo javnih WiFi dostopnih točk, krajo naprav in lažno predstavljanje napadalca oziroma»phishing«[34]. 2.6 Pristopi in tehnologije Leta 1997 na Finskem, ko je podjetje Coca-Cola na svojih avtomatih omogočilo nakup pijače preko mobilne naprave oziroma SMS sporočila, se je malo ljudi resnično zavedalo zmožnosti mobilnih naprav, da bodo v prihodnosti nadomestile tradicionalno gotovinsko plačevanje za blago in storitve. Kasneje je uvedba 3G mobilnih omrežij povečala njihovo povezljivost in zmožnost prenosa podatkov med mobilnimi napravi, kar je različna podjetja spodbudilo v razvoj na področju tehnologij, povezanih z mobilnim plačevanjem. Velik del razvoja na trgu mobilnega plačevanja je povzročilo sodelovanje med podjetji iz različnih industrijskih sektorjev, kot so Google, MasterCard, Citibank in drugi, ki so sodelovali pri razvoju Google mobilne denarnice. Njihovo sodelovanje je pospešilo razvoj 18

28 rešitev za mobilna plačevanja, ki jih omogoča tehnologija NFC, kar je povečalo sprejetost te tehnologije tudi s strani drugih akterjev [21]. Na trgu so prisotne različne tehnologije, ki omogočajo izvajanje plačilnih transakcij preko pametnih mobilnih naprav. Te tehnologije se med seboj razlikujejo glede na način prenosa podatkov, hitrosti izvedene transakcije, način potrjevanja transakcij, uporabljenih varnostnih mehanizmov, enostavnosti uporabe in cene stroškov transakcij. Poznamo različne načine oziroma pristope mobilnega plačevanja, ki temeljijo na podlagi različnih tehnologij: - mobilno plačevanje na podlagi tehnologije SMS, - mobilno plačevanje preko protokola WAP, - brezstično mobilno plačevanje z uporabo tehnologije NFC, - mobilno plačevanje z uporabo QR kod, -»Cloud-based«mobilno plačevanje, - tehnologija mobilnega plačevanja, ki temelji na prenosu zvoka med pametno mobilno napravo in sprejemnikom, - mobilno plačevanje na podlagi RFID tehnologije, -»Blockchain«kot tehnologija za mobilno plačevanje. Mobilno plačevanje na podlagi tehnologije SMS Plačevanje s pomočjo SMS tehnologije predstavlja pošiljanje kratkih besedilnih sporočil za plačilo izdelkov ali storitev. Plačevanje preko SMS poteka tako, da kupec preprosto pošlje sporočilo, v zameno pa prejme sporočilo s kodo ali geslom, ki omogoča dostop do plačljive vsebine. Ponudnik mobilne telefonije strošek nakupa doda mesečnemu računa uporabnika oziroma kupca. SMS plačila so preprosta in primerna predvsem za manjše zneske plačil [35]. Mobilno plačevanje z uporabo QR kod QR (angl. Quick response) je matrična oziroma dvodimenzionalna črtna koda, ki je izdelana z namenom, da vsebuje»pomembne«informacije. Plačevanje preko QR kode lahko poteka na dva načina. Prvi je ta, da ima kupec na mobilni napravi QR kodo, ki jo za proces plačila prebere POS terminal oziroma druga mobilna naprava prejemnika plačila. 19

29 Pri drugem načinu kupec optično prebere QR kodo od prejemnika in na ta način izvede plačilno transakcijo. Plačevanje preko tehnologije NFC NFC je visokofrekvenčna komunikacijska tehnologija kratkega dosega, ki omogoča dvosmerno komunikacijo med bralnikom in oznako na razdalji od 1 do 10 cm. Tehnologija NFC za prenos podatkov uporablja radijski signal s frekvenco 13,56 MHz in podpira prenos podatkov s hitrostmi 106, 212 ali 424 kbit/s. Mobilno plačevanje preko tehnologije NFC poteka tako, da kupec odpre mobilno aplikacijo za plačevanje, v kateri ima shranjene podatke o svojem bančnem računu ter jo približa bralniku oziroma prodajni točki. Transakcija je uspešno izvedena po avtorizaciji uporabnika (npr. vnos kode PIN, prstni odtis). Mobilna naprava z NFC podporo deluje podobno kot tradicionalna debetna ali kreditna kartica [36], [37]. Mobilno plačevanje preko protokola WAP Mobilno plačevanje preko protokola WAP poteka preko spletne strani ali mobilne aplikacije trgovca, pri čemer se prenos podatkov izvede preko internetne povezave. Kupec plačilo izvede preko spletnega plačilnega sredstva (PayPal, Amazon Payments, Google Wallet) ali ročno vnese podatke o svoji kreditni kartici v polje za plačilo. Plačevanje preko WAP protokola je podobno kot plačevanje preko računalnika, le da pri tem uporabimo pametno mobilno napravo [38].»Cloud based«mobilno plačevanje Pri»Cloud based«mobilnem plačevanju gre za pristop, pri katerem se informacije o transakciji plačila shranjujejo na oddaljenem strežniku. Gre za mobilna plačila, pri katerih je za varnost in izvedbo plačilne transakcije poskrbljeno na strani strežnika. Pri tem pristopu se kot varnostni mehanizem najpogosteje uporablja HCE in proces kodiranja občutljivih podatkov na podlagi tokenizacije [39]. Mobilno plačevanje s pomočjo mobilne denarnice Mobilna denarnica predstavlja tradicionalno denarnico v digitalni obliki. Je mobilna aplikacija, ki ima kartice za plačevanje shranjene na mobilni napravi. Mobilna denarnica lahko v procesu plačila uporablja različne tehnologije (NFC, QR kodo) za izvedbo plačilne 20

30 transakcije. Primer mobilne denarnice je Apple Pay, ki omogoča plačevanje izdelkov ali storitev na različnih mestih, kot so plačilo preko POS terminalov, nakupi znotraj aplikacij in plačevanje preko spleta [38]. Tehnologija mobilnega plačevanja, ki temelji na prenosu zvoka med pametno mobilno napravo in sprejemnikom Zvočni kanal mobilne naprave je še eden izmed brezžičnih vmesnikov, ki se uporablja za izvajanje plačilnih transakcij. Obstajajo različne tehnologije, kot so NSDT (angl. Near sound data transfer), Data Over Voice in NFC 2.0., ki omogočajo produciranje zvočnih podpisov, s pomočjo katerih mikrofon na mobilni napravi omogoča izvajanje plačilnih transakcij. Proces delovanja poteka tako, da se za vsako izvedeno transakcijo šifrirani podatki na podlagi enkratnega gesla OTP (angl. One Time Password) pošljejo na plačilni server preko zvočnega kanala mobilne naprave [35]. Blockchain kot tehnologija za mobilno plačevanje Blockchain je veriga podatkovnih blokov oziroma nenehno naraščajoč seznam zapisov, sestavljen iz posameznih blokov, ki so povezani in zavarovani s kriptografijo. Vsak podatkovni blok v seznamu vsebuje povezavo na prejšnji blok, časovni žig in podatke o transakciji. V digitalnem svetu je s funkcijo kopiraj/prilepi mogoče prekopirati in razmnoževati vsako informacijo oziroma podatek, pri čemer kopija ostaja enaka originalu. Blockchain tehnologija pa omogoča prenos podatkov v digitalnem zapisu, ne da bi se ti podatki prekopirali in razmnoževali. Zaradi lastnosti tehnologije verižnih blokov je ta primerna tudi za izvajanje plačilnih transakcij. V nadaljevanju so predstavljene prednosti blockchain tehnologije, ki bodo spremenili mobilno plačevanje (Rampton, 2016; Wikipedia, 2018): povečana varnost: Ena izmed glavnih tveganj uporabe mobilnega plačevanja je področje varnosti. Blockchain tehnologija preprečuje različne goljufije, kot so na primer podvajanje transakcij, spreminjanje cen itd.;»instant payments«: Z uporabo blockchain tehnologije bodo plačila izvedena v trenutku, ne glede na kraj in čas izvedene transakcije; P2P posojila: Z uporabo tehnologije verižnih blokov lahko posojilojemalci uporabijo svoje mobilne naprave, da zagotovijo posojilo neposredno od 21

31 posojilojemalca, ne da bi se pri tem morali ukvarjati s predpisi in dokumentacijo bank oziroma finančnih institucij; nižji stroški: Z odstranitvijo finančnih institucij, ki sodelujejo pri prenosu denarja med dvema uporabnikoma, bi s pomočjo uporabo blockchain tehnologije omogočili prenos denarja na kogar koli na svetu brez plačevanja dragih stroškov transakcij; mobilne denarnice: Tehnologija blockchain lahko izboljša hitrost, uporabo in zmanjša stroške transakcij za plačila po vsem svetu. programi nadgrajevanja in zvestobe: Ena izmed lastnosti blockchain tehnologije je ta, da so vse transakcije zabeležene v javni knjigi. V prihodnosti bi lahko sistem nadgrajevanja uporabili trgovci za nadgrajevanje strank, ne da bi se pri tem omejili samo na eno trgovino; brezplačna banka: Dostop do bančnega računa ostaja velik problem v mestih, kot je na primer Nigerija. S pomočjo tehnologije blockchain lahko uporabnik, ki nima bančnega računa, izvaja nakupe v svetovnih e-trgovinah ali pošilja denar brez dragih stroškov transakcij. 2.7 Mobilno plačevanje v Sloveniji Moneta Moneta je največji odprt sistem mobilnega plačevanja v Sloveniji, v katerega so vključeni mobilni operaterji, banke in druge institucije. Moneta je bila ustanovljena leta 2001 pod okriljem družbe Telekom Slovenije in Nove kreditne banke Maribor. Pojav sistema Monete je predstavljal novost na področju mobilnega plačevanja v Sloveniji. Moneta je storitev, ki omogoča brezgotovinsko plačevanje s pomočjo mobilne naprave za uporabnike in ponudnike mobilnega plačevanja. Temeljni element sistema in poslovnega modela je plačilni instrument Moneta, ki predstavlja nabor poslovnih dogovorov in pravil med udeleženci. Postopek plačila z Moneto poteka kot prenos podatkov od plačilnega mesta ponudnika do procesnega centra Moneta. Uporabnik ob plačilu s svojim mobilnim telefonom vzpostavi povezavo s procesnim centrom, ki je odgovoren za avtorizacijo nakupa. Spodnja slika (Slika 6) prikazuje celoten postopek plačila s sistemom Moneta [7]. 22

32 Slika 6 Postopek plačila Moneta [7] Plačevanje preko plačilnega sistema Moneta je mogoče na več načinov in se razlikuje glede na vrsto plačilnega mesta. Plačevanje je podprto na naslednjih področjih [7]: - na Moneta terminalih, - z Moneta internetom, - pri doplačilu študentske prehrane, - na Moneta Avtomatih in e-terminalih, - z Moneto v Telefonski prodaji, - nakup vozovnice, - z Moneta SMS, - polnjenje Mobiračuna. Urbana Mobilna aplikacija Urbana uporabnikom mestne kartice Urbana omogoča enostavno in hitro plačevanje voženj z avtobusi (LPP), storitve parkirišč (JP LPT), storitve»bicikelj«in uporabo storitve SMS»parking«. Mobilna aplikacija Urbana deluje na pametnih telefonih z operacijskim sistemom Android, ki podpirajo komunikacijo preko NFC tehnologije. Ob namestitvi mobilne aplikacije mora uporabnik shraniti unikatno številko kartice in PIN, ki se avtomatsko generira ob prvi uporabi aplikacije. Slednji služi za povrnitev dobroimetja virtualne kartice Urbana v primeru zamenjave ali izgube mobilne naprave. Mobilno 23

33 aplikacijo Urbana so razvili Telekom Slovenije, Mestna občina Ljubljana in Ljubljanski potniški promet (LPP) [42]. Mobilna aplikacija Urbana pri storitvah mestnega potniškega prometa omogoča vse, kar omogoča vrednostna kartica Urbana, poleg tega pa ponuja še spremljanje stanja na računu, zgodovino plačil, urnike prihodov avtobusov, načrtovanje poti po mestu in dostop do potovalnih informacij. Omogoča tudi neposreden prenos denarja na virtualno kartico Urbana preko plačilnega sistema Moneta znotraj aplikacije. Aplikacija Urbana deluje na mobilnih napravah, ki imajo nameščen operacijski sistem Android in je na voljo uporabnikom vseh mobilnih operaterjev, medtem ko je polnjenje dobroimetja preko mobilne aplikacije na voljo le uporabnikom Monete Telekoma Slovenije [43]. mbills Storitev mbills je platforma za mobilno plačevanje, ki temelji na mobilni denarnici in nadomešča tradicionalno denarnico za gotovino. Gre za mobilno aplikacijo, s katero lahko s pametnim telefonom plačujemo v lokalih in drugih podjetjih, ki imajo s ponudnikom rešitve mbills sklenjeno pogodbo. Mobilno aplikacijo za plačevanje mbills lahko uporabljamo samostojno, lahko pa jo tudi povežemo z obstoječimi bančnimi, kartičnimi sistemi. mbills plačilni sistem ima dovoljenje Banke Slovenije za izdajanje elektronskega denarja in izvajanje plačilnih storitev, ki je veljavno tudi v vseh evropskih državah. Storitev mbills preko pametne mobilne naprave omogoča naslednje funkcionalnosti [44]: - brezplačno nakazovanje denarja preko telefonske številke, - plačevanje blagajniških računov s skeniranjem mbills QR kode, - plačevanje položnic in elektronskih računov, - plačevanje na spletu brez vnašanja osebnih podatkov in kreditnih kartic, - plačevanje izdelkov s slikanjem mbills QR kode, - nadzor nad trenutnim stanjem denarja in plačanimi računi. Mobilna storitev mbills uporabnikom predstavlja enotno uporabniško izkušnjo plačevanja, ki je neodvisna od mobilnega operaterja in banke. Varnost plačilne infrastrukture sistema mbills sloni na procesu tokenizacije, kar pomeni, da namesto da bi na mobilne naprave shranjevali podatke o plačilni kartici, zapisujemo žetone, ki so v zalednem sistemu povezani z dejanskimi številkami plačilnih kartic [45] 24

34 2.8 Mobilno plačevanje po svetu Na svetu obstaja veliko plačilnih sistemov za mobilno plačevanje. V nadaljevanju bomo predstavili in opisali delovanje ter varnostne mehanizme treh najpogosteje uporabljenih mobilnih plačilnih platform. Apple Pay Apple Pay je mobilna plačila rešitev podjetja Apple, ki deluje na pametnih mobilnih napravah z operacijskim sistemom ios vključno z Apple Watch. Sistem Apple Pay je zasnovan tako, da hrani in varuje osebne podatke o bančnem računu uporabnika. Plačilna rešitev omogoča izvajanje plačil preko plačilnih terminalov trgovcev, ki podpirajo Apple Pay brezstična plačila. Storitev Apple Pay vključuje različne obstoječe varnostne mehanizme in kontrole za vzpostavitev in potrjevanje plačilne transakcije med uporabnikom, trgovcem in izdajateljem plačilnih kartic. Prvi korak pri uporabi storitev Apple Pay zahteva vnos podatkov kreditne ali debetne kartice na mobilno napravo. Spodnja slika (Slika 7) prikazuje postopek dodajanja kartice in povezave med posameznimi akterji [31]. Slika 7 Vzpostavitveni postopek storitve Apple Pay [31] 25

35 1. Uporabnik doda podatke o svoji debetni ali kreditni kartici v aplikacijo na mobilni napravi preko tipkovnice ali zajema slike. 2. Mobilna naprava prejme podatke o dodani kartici in jo pošlje preko varne povezave na strežnik podjetja Apple skupaj z drugimi podatki uporabnika in naprave. 3. Banka prejme podatke o kartici in sprejme odločitev v povezavi z izdajateljem kartic glede njene veljavnosti. Prejete informacije se uporabljajo za preverjanje legitimnosti zahteve in ali kartica dejansko pripada podani osebi. 4. V primeru, da je kartica uspešno sprejeta, banka v povezavi s ponudnikom plačilnih storitev ustvari unikaten žeton. Ta žeton se po navadi generira s strani tretjega ponudnika TSP (angl. Token Service Provider), namesto da ta žeton kreira banka sama. 5. Ponudnik TSP generira edinstveno številko DAN (angl. Device Account Number), ki je specifična za določeno kartico in mobilno napravo. Generirana DAN vrednost se skupaj s kriptogramom, ki se bo uporabljal za kreiranje varnostnih kod pri plačilih, pošlje nazaj na strežnike podjetja Apple. Ti podatki se prenesejo tudi na mobilno napravo in so shranjeni znotraj aplikacije Passbook oziroma Apple Wallet. Postopek plačilne transakcije Slika 8 prikazuje proces izvedbe plačila pri Apple Pay sistemu. 26

36 Slika 8 Postopek izvedbe plačila - Apple Pay [31] 1. Za začetek procesa plačila uporabnik pametno mobilno napravo prisloni blizu plačilnega terminala, ki podpira tehnologijo NFC. Identifikacija uporabnika se izvede preko prstnega odtisa ali vnosa PIN kode. Po vzpostavljeni povezavi se žeton (vrednost DAN), ki predstavlja kartico, naloži v varnostni element SE. Apple podpira standard EMV (sklic opomba) in v primeru, da ga podpira tudi plačilni terminal, bo SE ustvaril dinamični kriptogram. 2. Trgovec pridobljene informacije posreduje do banke. 3. Banka od trgovca prejme številko DAN, vendar se ne zaveda, ali vsebuje veljaven PAN (angl. Payment Account Number) ali žeton. Banka v tem primeru preveri številko BIN (angl. Bank Identification Number) in jo pošlje ustreznemu izdajatelju preko ponudnikov plačilnih storitev. 4.»Prevzemnik prejme številko DAN, vendar se ne zaveda, ali je veljaven PAN ali žeton. Pravzaprav prevzemnik preprosto preveri BIN (identifikacijsko številko banke) in ga pošilja ustreznemu izdajatelju preko plačilne mreže, ki deluje kot posrednik med prevzemnikom in izdajateljem.«5. Na koncu izdajatelj odobri ali zavrne transakcijo in pošlje obvestilo do trgovca. 27

37 Avtentikacija uporabnika Apple Pay storitev od uporabnika zahteva, da pred izvedenim plačilom preveri avtentikacijo uporabnika preko senzorja za prstni odtis ali z vnosom PIN kode na Apple Watch. Namen te varnostne kontrole je, da omeji uporabo naprave v primeru kraje. Uporaba prstnega odtisa kot način identifikacije ali preverjanje avtentikacije uporabnika je korak naprej pri varnosti v primerjavi s tradicionalnim brezkontaktnim plačilom, kjer bi se lahko ukradena kartica uporabila brez identifikacije oziroma avtentikacije uporabnika [31]. Avtentikacija naprave Vsaka transakcija, ki jo izvede Apple Pay storitev, generira unikatno vrednost, ki zagotavlja, da ta transakcija prihaja iz avtorizirane naprave. Ta unikatna vrednost skupaj z žetonom in kriptogramom, ki se uporablja za odobritev transakcije, zagotavlja, da v primeru kraje žetona le-tega ni mogoče uporabiti na drugi napravi, ampak le na tisti, na kateri je bil ustvarjen. Poleg tega se žeton ustvari oziroma izračuna skupaj z zneskom transakcije, kar mu dodeli dodatno zaščito v primeru kraje [31]. Zaščita podatkov Storitev Apple Pay za zaščito podatkov uporablja naslednje varnostne mehanizme: 1. Tokenizacija: Med dodajanjem kartice na pametno napravo se podatki o kartici ne shranijo na mobilno napravo, temveč se ustvari žeton, ki se uporablja med plačilnimi operacijami. Med procesom plačevanja se nikoli ne uporabijo prave številke kartice, kot sta PAN in CVV, ampak se uporabi vrednost, ki jo imenujemo žeton. Ta način uporabnika zavaruje tudi pred trgovci, ki v tem primeru ne vidijo pravih podatkov plačilne kartice; 2. Uporaba varnostnega elementa: Varnostni element (angl. Secure Element) je vgrajen v pametne naprave Apple in predstavlja varnostni čip, ki je zaščiten pred nepooblaščenim vdorom. V primeru nepooblaščenega dostopa do podatkov na čipu le-ta samodejno pripiše vsebino podatkov in onemogoči pridobitev varnostnih ključev; 28

38 3. Podatki o kreditnih ali debetnih karticah, ki se pošiljajo od plačilnega omrežja ali izdajatelja kartice, so šifrirani in shranjeni na varnostnem elementu v napravi; 4. Med izvajanjem transakcije plačilni terminal komunicira neposredno z varnostnim elementom preko tehnologije NFC; 5. Podrobnosti o plačilni transakciji so na nivoju NFC polja in nikoli niso izpostavljeni aplikacijskemu procesorju. Google Wallet/Android Pay Na začetku je za shrambo občutljivih podatkov na Google Wallet skrbel varnostni element SE, tako kot na mobilnih napravah Apple. Kasneje, leta 2015 je podjetje Google ob izdaji plačilne storitve Android Pay namesto varnostnega elementa SE začel z uporabo tehnologije HCE (angl. Host Card Emulation), pri kateri se namesto shranjevanja občutljivih podatkov na napravi le-ti shranjujejo v oblaku. Uporabnik mora pred prvo uporabo storitve Android Pay registrirati kreditno ali debetno kartico. Podjetje Google odgovornost glede preverjanja identifikacije uporabnika prepusti banki. Android Pay ponuja le nabor identifikacijskih možnosti, ki jih lahko izdajatelj kartice uporabi za preverjanje uporabnikove identitete. Po vnosu podatkov kartice v plačilni sistem Android Pay so le-ti poslani in shranjeni na strežnikih podjetja Google. V spodnji tabeli so predstavljeni možni načini preverjanja identifikacije [31]. Preverjanje preko poslanega sporočila ali SMS Preverjanje preko telefonskega pogovora Preverjanje preko aplikacije Preverjanje z»začasno obremenitvijo«računa Uporabnik od banke prejme e-poštno sporočilo ali SMS s kodo za preverjanje identitete. Uporabnik lahko pokliče banko in zahteva kodo za preverjanje. Če ima stranka na svoji mobilni napravi nameščeno aplikacijo banke, lahko preko nje opravi verifikacijo kartice. Pri tem načinu banka stranki zaračuna zelo majhen znesek in preko plačilne transakcije pošlje šestmestno kodo, ki je uporabniku vidna po prijavi v spletno banko. Ta koda 29

39 služi kot sredstvo za preverjanje identifikacije. Proces plačila Spodnji diagram prikazuje potek plačila z uporabo storitve Android Pay. Slika 9 Postopek izvedbe plačila Android Pay [31] 1. Pred začetkom plačila se mobilna naprava poveže s strežnikom Googla in od njega pridobi določeno številko plačilnih žetonov. Ko uporabnik postavi mobilno napravo blizu plačilnega terminala, se preko tehnologije NFC vzpostavi komunikacija in zahteva po uporabi žetona. Dinamični žeton in kriptogram se pošljeta na plačilni terminal. 2. Trgovec pridobljene informacije posreduje banki. 3. Banka prejme žeton in kriptogram in ga pošlje do ustreznega izdajatelja preko plačilne mreže. 30

40 4. Plačilno omrežje zahteva prave podatke o kartici ponudnika, ki skrbi za generiranje žetonov in jih pošlje izdajatelju za odobritev. 5. Izdajatelj odobri ali zavrne transakcijo in pošlje obvestilo nazaj do trgovca. Avtentikacija uporabnika Android Pay ponuja številne možnosti za preverjanje avtentikacije uporabnika pred izvedbo plačila. Za overjanje transakcije poleg preverjanja pristnosti preko prstnega odtisa omogoča še zaščito z vnosom PIN kode, vnosom gesla ali vzorca. Zadnji omenjeni velja za znatno grožnjo varnostnemu modelu Android Pay, saj je lahko rešitev vzorca v nekaterih primerih razvidna z zaslona mobilne naprave [31]. Avtentikacija naprave Pred začetkom plačilne transakcije se na mobilno napravo naloži določeno število plačilnih žetonov, ki so potrebni za uspešno izvedbo plačilne transakcije. Kot dodatni varnosti ukrep je storitev Android Pay zasnovana tako, da ne deluje na napravah, ki imajo omogočene administratorske pravice oziroma korenski dostop do sistema (angl. Root access) [31]. Zaščita podatkov Uporaba HCE arhitekture za shranjevanje občutljivih podatkov o plačilnih karticah v zaščitenih podatkovnih bazah na oblaku preprečuje ranljivosti v primeru kraje mobilne naprave ali pridobitve nepooblaščenega dostopa. Preprečevanje nepooblaščenega dostopa do HCE je odvisno od naslednjih varnostnih mehanizmov [31]: - omejitve varnostnih ključev, - tokenizacije, - prstnega odtisa naprave, - analize izvedenih transakcij. Čas veljavnostni varnostnih ključev je časovno omejen, kar pomeni, da po določenem času niso več uporabni in na ta način preprečujejo njihovo zlorabo. Tokenizacija zmanjšuje tveganje tako, da nadomesti podatke o plačilni kartici v obliki žetonov in na ta način preprečuje zlorabo dejanskih podatkov o kartici. Prstni odtis se uporablja za validacijo 31

41 pametne naprave. Analiza transakcij v realnem času omogoča preverjanje in zaznavanje nenavadnih aktivnosti [31]. Samsung Pay Samsung Pay je storitev za mobilno plačevanje in digitalna denarnica podjetja Samsung Electronics, ki uporabnikom omogoča plačila z napravami, ki jih proizvaja podjetje Samsung. Storitev omogoča izvajanje brezkontaktnih plačil preko tehnologije NFC in poleg tega podpira tudi MST (angl. Magnetic Secure Transmission), kar pomeni, da omogoča izvajanje brezkontaktnih plačil tudi na plačilnih terminalih, ki podpirajo komunikacijo preko običajnega magnetnega zapisa. Storitev Samsung Pay je tesno povezana s platformo Samsung KNOX, ki zagotavlja funkcionalnosti za šifrirano shranjevanje plačilnih žetonov. Plačilna storitev Samsung Pay uporabnikom omogoča dodajanje bančnih kartic (kreditna ali debetna kartica) in darilnih kartic. Po dodajanju kartice v plačilni sistem Samsung Pay mora uporabnik potrditi identiteto. Enkratno geslo (OTP), ki služi kot potrditev identitete, uporabnik lahko pridobi preko SMS sporočila, e-poštnega sporočila ali preko telefonskega pogovora. Po dodajanju plačilne kartice v sistem Samsung Pay se začne postopek preverjanja, ki ga izvajata omrežje plačilnih kartic (npr. Visa, MasterCard ali American Express) in izdajatelj kartice. Po podatkih podjetja Samsung se izdajatelju med procesom dodajanja kartice pošljejo naslednji podatki [31]: 1. Podatki o uporabnikovem Samsung računu in podatki o uporabi storitve Samsung Pay (čas uporabe, število registriranih kartic itd.), 2. Informacije o mobilni napravi (številka modela, različica OS in drugi identifikatorji naprave), 3. Informacije o lokaciji (med procesom registracije kartice zaradi preverjanja delovanja storitve na zaznani lokaciji), 4. Podatki o plačilni kartici in naslov za izstavitev računa. Proces plačila Slika 10 prikazuje proces izvedbe plačila pri mobilnem plačilnem sistemu Samsung Pay. 32

42 Slika 10 Proces izvedbe plačila Samsung Pay [31] Postopek plačila pri storitvi Samsung Pay je sestavljen iz naslednjih korakov: 1. Uporabnik položi mobilno napravo v bližino plačilnega terminala, ki omogoča komunikacijo preko tehnologije NFC ali preko magnetnega zapisa MST. Po izbiri plačilne kartice se generirajo naslednji podatki: a. Digitalni žeton: Namen žetona je, da prikrije dejanske podatke kartice in omogoči pridobitelju, da usmerja transakcije na pravo plačilno omrežje in izdajatelja kartice. b. Števec transakcij (ATC), ki se za vsako izvedeno transakcijo poveča in na tak način omogoča spremljanje zaporedja plačil. c. Kriptogram, ki je ustvarjen z zasebnim ključem, žetonom in ATC-jem. 2. Plačilni terminal trgovca prejme zgoraj opisane podatke in jih posreduje do banke uporabnika. 3. Banka bo glede na prejete podatke posredovala transakcijo do ustreznega plačilnega omrežja, 4. Plačilno omrežje bo identificiralo pridobljen žeton in od TSP ponudnika pridobilo dejanske podatke plačilne kartice ter jih poslalo do izdajatelja za izvedbo plačila. 5. Izdajatelj bo preveril ustreznost transakcije in izvedel plačilo. 33

43 6. Trgovec preko plačilne mreže pridobi informacijo o uspešno ali neuspešno izvedeni transakciji. Avtentikacija uporabnika Preverjanje prisotnosti uporabnika pri plačilni storitvi Samsung Pay se lahko izvede na dva načina, in sicer preko prstnega odtisa uporabnika ali z vnosom štirimestne PIN kode. Ob upoštevanju, da tradicionalne plačilne kartice ne zahtevajo dodatnih preverjanj uporabnika za brezkontaktna plačila, ta ukrep zagotavlja dodatni varnostni nivo [31]. Avtentikacija naprave Samsung Pay ponuja številne varnostne mehanizme za preverjanje identifikacije v procesu izvajanja plačilnih transakcij. Žetoni, ki se uporabljajo v postopku plačila, se v napravo pošljejo, ko je internetna povezava vzpostavljena. Izdajatelj ima možnost izbire načina preverjanja identifikacije in verifikacije preko SMS sporočila, telefonskega klica, e- poštnega sporočila ali preko aplikacije. Kot dodatni nivo varnostnih storitev Samsung Pay ne deluje na napravah, ki imajo omogočen korenski dostop do sistema [31]. Zaščita podatkov Za varovanje podatkov pri storitvi Samsung Pay skrbita varnostni platformi Samsung KNOX in TEE (angl. Trusted Execution Environment). Samsung KNOX je varnostno ogrodje, ki razdeli strojno opremo na normalen in varen del. Oba dela sta izolirana in dostopna preko monitorja (TrustZone monitor). TEE zagotavlja varno shranjevanje in obdelavo občutljivih podatkov in skrbi za integriteto in zaupnost podatkovnih virov [31], [46]. V spodnji tabeli (Tabela 1) smo povzeli in naredili primerjavo glavnih funkcionalnosti zgoraj predstavljenih mobilnih sistemov za plačevanje po svetu [47]: Tabela 1 Primerjava mobilnih sistemov za plačevanje Apple Pay Google Pay Samsung Pay Podpora bank Da Da Da Podpora trgovcev Da Da Da NFC (Near Field Da Da Da 34

44 Comunication) MST (Magnetic Ne Ne Da Secure Transmission) Avtentikacija Touch ID, Face ID ali Prstni odtis, PIN Prstni odtis, vnos uporabnika vnos PIN kode koda, geslo, zaščitni PIN kode vzorec Zaščita podatkov Tokenizacija, Uporaba varnostnega Tokenizacija, Uporaba varnostne arhitekture HCE Tokenizacija, Samsung KNOX in TEE elementa SE, dvostopenjska avtentikacija Podpora EMV Da Da Da Podprte naprave iphone, ipad, Apple Mobilne naprave z Samsung Galaxy S8, Watch, Macbook Android Galaxy S7 edge, operacijskih Galaxy S7, Galaxy sistemom in S6 edge, Galaxy podporo za NFC Note 5, Galaxy S6 active, Gear S2 (NFC) in Gear S3 V nadaljevanju (Tabela 2, Tabela 3, Tabela 4) smo predstavili pomembnejše prednosti in slabosti posameznih plačilnih sistemov [48], [49]: Tabela 2 Prednosti in slabosti Apple Pay Apple Pay Prednosti - Enostavna uporaba za vse uporabnike mobilnih naprav iphone - Možnost plačevanja pri trgovcih, ki omogočajo storitev Apple Pay in preko aplikacije»app Store«- Zahtevana vzpostavitev dvostopenjske avtentikacije na računu icloud 35

45 - Brez provizije za pošiljanje in prejemanje denarja Slabosti - Apple Pay storitev deluje le med novejšimi napravami iphone/ipad/apple Watch in operacijskih sistemih ios 11.2 in watchos Pri pošiljanju denarja iz kreditne kartice na Apple Pay se zaračuna 3-odstotna pristojbina - Minimalen znesek pri pošiljanju denarja na Apple Pay je $10, maksimalen pa $ Prenos denarja na bančni račun traja od enega do tri dni Tabela 3 Prednosti in slabosti Google Pay Google Pay Prednosti - Možnost pošiljanja denarja poleg Google Wallet aplikacije še preko storitve Gmail, preko spleta ali preko tekstovnega sporočila - Za pošiljanje denarja je potreben le e-poštni naslov ali telefonska številka prejemnika - Neposredno pošiljanje denarja na bančni račun - Možnost dodajanja več bančnih računov - Brez dodatnih pristojbin za pošiljanje in prejemanje denarja - Možnost preklica poslanega denarja v primeru, da ga uporabnik še ni potrdil Slabosti - Ne podpira možnosti pošiljanja denarja na prejemnike zunaj ZDA ali UK območja Tabela 4 Prednosti in slabosti Samsung Pay Samsung Pay Prednosti - Omogoča plačevanje na POS terminalih, ki podpirajo branje bančnih kartic preko magnetnega zapisa (MST) Slabosti 36

46 - Podpora samo na nekaterih mobilnih napravah znamke Samsung - Zahtevana uporaba prstnega odtisa za dokončanje plačilne transakcije 37

47 3 PONUDNIKI PROGRAMSKIH VMESNIKOV Aplikacijski programski vmesnik (angl. API) v računalniškem svetu predstavlja nabor rutin, protokolov in orodij za izgradnjo programske opreme in aplikacij. V splošnem gre za navzven izpostavljene storitve zalednega sistema, ki v ozadju izvajajo določene funkcionalnosti. V našem primeru bomo uporabili oziroma preizkusili programske vmesnike za izvajanje plačilnih transakcij preko različnih plačilnih metod. Obstaja veliko podjetij, ki ponujajo storitve mobilnega plačevanja preko programskih vmesnikov. V spodnji tabeli (Napaka! Vira sklicevanja ni bilo mogoče najti.) so prikazani programski vmesniki, ki omogočajo razvoj plačilnih storitev na platformi Android. Tabela 5 Kriteriji za izbiro programskih vmesnikov Na voljo v SLO Android SDK Brezplačna uporaba PayPal SDK Da Da Da Stripe SDK Ne Da Da Braintree SDK Da Da Da Square SDK Ne Da Da Amazon Pay SDK Ne Da Da Authorize.NET SDK Ne Da Da Dwolla SDK Ne Da Da WePay SDK Ne Da Da BlueSnap SDK Da Da Da Za namene testiranja posameznih programskih vmesnikov smo definirali kriterije, na podlagi katerih smo izbrali tri programske vmesnike, ki omogočajo podporo na slovenskem trgu, omogočajo integracijo preko SDK-ja na platformi Android in so na voljo za brezplačno uporabo. V nadaljevanju smo podrobneje predstavili programske vmesnike Braintree, PayPal in BlueSnap ter na koncu za vsakega izmed njih opisali postopek integracije v mobilno aplikacijo. 38

48 3.1 Braintree Braintree je globalni ponudnik plačilnih storitev, ki je bil ustanovljen leta 2010 s sedežem družbe v Chicagu in je specializiran za izvajanje mobilnih in spletnih plačil za podjetja, ki ponujajo elektronsko poslovanje. Storitev je na voljo v 40 državah po celem svetu in omogoča plačila v več kot 130 različnih denarnih valutah. Braintree omogoča ustvarjanje računa za trgovce in ponuja programski vmesnik (angl. API) za izvajanje plačilnih transakcij vključno s ponavljajočimi se plačili, shranjevanjem plačilnih kartic, podporo za mednarodna plačila in skladnost s PCI standardom. Leta 2013 je Braintree kupilo podjetje PayPal, kar je posledično privedlo do tega, da Braintree SDK za mobilne naprave od oktobra 2017 nadomešča knjižnico podjetja PayPal, ki je služila kot programski vmesnik za integracijo mobilnega sistema v pametne naprave na operacijskih sistemih Android in ios [50], [51]. Spodaj so predstavljene glavne funkcionalnosti platforme Braintree [52]: podpora plačevanja preko različnih plačilnih metod, kot so PayPal, Apple Pay, Google Pay, Masterpass, UnionPay, Venmo, Visa Checkout, na voljo v 45 državah in v več kot 130 denarnih valutah, podpora za različne tipe plačilnih kartic (kreditna kartica, debetna kartica, predplačniška kreditna kartica), možnost enostavne gradnje uporabniškega vmesnika preko integriranih komponent (izdelava obrazcev za vnos podatkov o plačilih ni na voljo na strani odjemalca), skladnost s standardom PCI DSS nivo 1, preprečevanje goljufij in upravljanje tveganj v realnem času na podlagi prednastavljenih pravil preko nadzorne plošče. Spodnja slika (Slika 11) prikazuje interakcije v procesu izvajanja plačilne transakcije med odjemalcem, vzpostavljenim strežnikom in Braintree strežnikom. 39

49 Slika 11 Postopek delovanja Braintree plačilne storitve [53] 1. Mobilna aplikacija pošlje zahtevo za pridobitev žetona od našega strežnika. Žeton je potreben za inicializacijo odjemalca in se uporablja za izvajanje naslednjih operacij. 2. Strežnik generira in pošlje žeton nazaj do odjemalca preko operacij strežniškega SDK-ja. 3. Po uspešni inicializaciji odjemalca se podatki o plačilu pošljejo do Braintree strežnika, ki odjemalcu vrne plačilno sredstvo. 4. Preko odjemalca se podatki o plačilnem sredstvu in znesku transakcije pošljejo do našega strežnika. 5. Strežnik prejme plačilno sredstvo od odjemalca in nato preko Braintree strežnika izvede plačilno transakcijo. Platforma Braintree ponuja dva cenovna modela, ki se med seboj razlikujeta glede na način zaračunavanja provizij pri transakcijah in naboru funkcionalnosti [54]. Tabela 6 Cenovni model Braintree Standard Za podjetja 1,9 % + $0,30 na transakcijo Cena na transakcijo glede na uporabo Brez mesečne naročnine Vključena namenska podpora 40

50 Brez skritih stroškov Osnovna zaščita pred goljufijami Ponavljajoče se izvajanje transakcij Pomoč preko telefona ali e-sporočil Pomoč pri migraciji podatkov Integracija aplikacij tretjih oseb Napredna orodja za preprečevanje goljufij Pomoč pri integraciji 3.2 PayPal Podjetje PayPal je globalni ponudnik plačilnih storitev, ki tako fizičnim osebam kot podjetjem po celem svetu ponuja storitve, povezane z izvajanjem in sprejemanjem denarnih nakazil. Družba ima sedež v Združenih državah Amerike in predstavlja najbolj priljubljen plačilni sistem za prenos srednjih in malih zneskov po svetu. PayPal kot podjetje je prisotno v več kot 190 državah po celem svetu in omogoča plačevanje v 26 različnih denarnih valutah z več kot petimi različnimi plačilnimi karticami. Poleg nakupovanja preko spleta omogoča tudi plačevanje preko mobilnih naprav [55]. Opravljanje storitev preko plačilne platforme PayPal je med uporabniki izredno priljubljeno, saj njihova baza šteje več kot 165 milijonov registriranih in aktivnih računov. Po izvedenih raziskavah pri tehnoloških rešitvah, ki kot alternativni ali primarni način plačila ponujajo plačevanje preko PayPal-a, ustvarjajo 44 odstotkov višjo konverzijo od ostalih, ki te možnosti ne ponujajo [56]. PayPal za razvijalce mobilnih programskih rešitev ponuja PayPal SDK, za katerega bomo v nadaljevanju predstavili postopek implementacije plačilnega procesa znotraj mobilne aplikacije na operacijskem sistemu Android. PayPal preko programskega vmesnika za mobilne naprave omogoča dva načina plačevanja: -»Single Payment«: gre za enkratno plačilo, ki ga uporabnik opravi preko PayPal računa ali plačilne kartice; -»Future Payment«: to so vnaprej odobrena plačila, pri katerih lahko uporabnik vnaprej pooblasti tretjo osebo, da v njegovem imenu izvede plačilno transakcijo z njegovega PayPal računa. Kupec oziroma uporabnik se z avtorizacijo takšnega načina plačila strinja, da se preko storitve PayPal tretji osebi plača določen znesek brez predhodnega preverjanja. 41

51 Pri plačevanju preko PayPal storitve znotraj mobilne aplikacije ali spletne strani nas ob zahtevi za izvedbo plačila preusmeri na varno PayPal okolje, kjer sledi avtorizacija uporabnika in na koncu potrdilo nakupa, kot prikazuje spodnja slika (Slika 12) [57]. Slika 12 Postopek nakupa PayPal 1. Ko kupec klikne na gumb PayPal, se vzpostavi plačilni proces, ki uporabnika preusmeri na PayPal prijavno okno. 2. Kupec se preko elektronskega naslova in gesla prijavi v storitev PayPal. V primeru, da se je uporabnik predhodno že prijavil, se bo izvedla avtomatska prijava. 3. Po prijavi kupec pregleda in potrdi plačilo. 4. Po izvedbi plačilne transakcije je uporabnik preusmerjen nazaj na prvotno vstopno točko, kjer se prikažejo podatki o izvedenem plačilu. Platforma PayPal v osnovi ponuja dva cenovna modela, ki se med seboj razlikujeta glede na način zaračunavanja provizij pri transakcijah, ki se razlikujejo glede na posamezne države [58]. Tabela 7 Cenovni paketi PayPal PayPal Payments Standard PayPal Payments Pro Zaračunana provizija 2,9 % + $0,30 na 2,9 % + $0,30 na transakcijo transakcijo Mesečna naročnina Ni naročnine 30 $ Sprejemanje plačil preko Da Da Express Checkout Sprejemanje PayPal plačil Da Da Podpora za plačilne kartice Da Da 42

52 MasterCard, Visa, Discover, American Express Ostalo Brez začetnih stroškov in stroškov prekinitve Brez začetnih stroškov in stroškov prekinitve 3.3 BlueSnap BlueSnap je globalni ponudnik plačilnih storitev, ki trgovcem po celem svetu omogoča»all in One«plačilni sistem s podporo in funkcionalnostmi za elektronsko poslovanje. Na drugi strani pa podjetje BlueSnap razvijalcem ponuja programska orodja za integracijo plačilnih sistemov znotraj spletnih in mobilnih aplikacij. Storitev je na voljo v 180 državah po celem svetu in omogoča plačila v več kot 100 različnih denarnih valutah. Za razliko od tradicionalnih plačilnih sistemov, ki so povezani z eno banko (trgovski račun), je BlueSnap oblikovan tako, da je povezan z globalno mrežo bank. S pomočjo inteligentnega mehanizma za izvajanje transakcij plačila usmerja do ustreznih bank z namenom, da je hitrost izvajanja oziroma odobritve transakcije čim hitrejša. BlueSnap ponuja bogata orodja za analiziranje plačilnih transakcij za večjo transparentnost in pregled. Platforma omogoča ustvarjanje poročil o prodaji in prihodkih v realnem času [59]. Spodaj so predstavljene glavne funkcionalnosti platforme BlueSnap [60]: podpora za izvajanje plačilnih transakcij tako preko spletnih in mobilnih spletnih strani kot tudi preko mobilne aplikacije z uporabo programskega vmesnika, sprejemanje plačil preko različnih plačilnih metod po celem svetu (Visa, MasterCard, American Express, Discover, Diner's Club, JCB), zaščita plačilnih podatkov, ki so shranjeni na strani strežnika BlueSnap»Hosted Fields«in kriptiranje na strani odjemalca s pomočjo dodatne programske knjižnice, preprečevanje goljufij pri izvajanju plačilnih transakcij s pomočjo realno časovnega preverjanja sumljivih dogodkov, 43

53 omogočanje shranjevanja podatkov v skladu s standardom varovanja podatkov plačilnih kartic PCI DSS nivo 1, uporaba varnostnih mehanizmov»tokenizacije«za varovanje občutljivih podatkov o plačilnih karticah. BlueSnap ponuja programski vmesnik za integracijo, ki temelji na arhitekturi REST. Interakcija s programskim vmesnikom poteka tako, da se pri vsaki HTTP zahtevi v»header«dodajo podatki avtentikacije, ki jih ustvarimo in pridobimo na platformi BlueSnap developers. Vsaka zahteva, ki jo odjemalec do strežnika pošlje v procesu plačevanja, je sestavljena iz imena uporabljenega okolja (npr. sandbox) in naziva zahtevane akcije. Primer spodaj (Slika 13) prikazuje HTTP zahtevo za kreiranje nove transakcije na testnem okolju»sandbox«. Slika 13 Primer HTTP zahteve za izvedbo transakcije BlueSnap Da zagotovimo varen prenos podatkov med odjemalcem in strežnikom v procesu izvajanja plačilne transakcije, je potrebna integracija dodatne programske knjižnice, ki omogoča kriptiranje občutljivih podatkov plačilne kartice. Za vzpostavitev varnega protokola komunikacije med mobilno aplikacijo (Android) in strežnikom je treba znotraj projekta vključiti»bluesnap-encrypted.jar«datoteko, ki ponuja programske funkcije za kriptiranje podatkov. Za inicializacijo programske knjižnice je treba del programske kode povezati z ustreznim ključem, ki ga pridobimo na platformi BlueSnap pod razdelkom»api Settings«. Primer vzpostavitve in uporabe funkcij programske knjižnice za kriptiranje podatkov prikazuje Slika 14. Slika 14 Primer kriptiranja s pomočjo knjižnice»bluesnap-encryped.jar«44

54 Tabela 8 Stroški uporabe BlueSnap Stroški Cena na transakcijo 1.4 % + $0,30 Mesečna naročnina $75 (< $2500) Začetni stroški Letna obnova računa Preklic računa Zaračunavanje uporabe dodatnih funkcionalnosti Brez stroškov Brez stroškov Brez stroškov Brezplačno V Tabeli 8 so prikazani stroški uporabe programskega vmesnika za izvajanje plačilnih transakcij ponudnika BlueSnap. Za razliko od preostalih dveh predstavljenih ponudnikov v prejšnjih podpoglavij se pri omenjenem pri uporabi storitev plačevanja zaračunava mesečna naročnina vzdrževanja računa, v kolikor mesečna vsota izvedenih plačilnih transakcij znaša manj kot $

55 4 NAČRT PRIMERJAVE PROGRAMSKIH VMESNIKOV Glede na problematiko, predstavljeno v uvodnem poglavju, smo v raziskovalnem delu v sklopu pregleda literature pridobili osnovno znanje o delovanju, akterjih, pristopih in obstoječih rešitvah mobilnega plačevanja. Na podlagi pridobljenega znanja iz pregleda literature na področju obstoječih aplikacijskih vmesnikov smo ugotovili, da se le-ti med seboj zelo razlikujejo glede na funkcionalnosti, način delovanja in podporo. Da bi preizkusili učinkovitost in delovanje posameznih aplikacijskih vmesnikov, smo razvili namensko mobilno aplikacijo, s pomočjo katere bomo dostopali do storitev mobilnega plačevanja preko vnaprej pripravljenih programskih knjižnic. V nadaljevanju bomo podrobneje predstavili namen izdelave mobilne aplikacije, načrt primerjalnega modela in na koncu opisali procese integracij posameznih aplikacijskih vmesnikov izbranih ponudnikov. 4.1 Izdelava namenske aplikacije V sklopu magistrskega dela smo izdelali mobilno aplikacijo na operacijskem sistemu Android. Za razvojno okolje smo uporabili Android Studio 3.0 in programski jezik Kotlin, ki od leta 2017 velja kot uradni jezik za razvoj aplikacij na platformi Android. Aplikacijo smo implementirali do te mere, da omogoča izvedbo nakupa vnaprej pripravljenih artiklov preko programskih vmesnikov, predstavljenih v tretjem poglavju. Aplikacija je namenjena testiranju učinkovitosti in načina dostopa do storitev mobilnega plačevanja. Z namenom, da bi pridobili odgovore na raziskovalna vprašanja, ki smo jih definirali v uvodnem delu magistrskega dela, smo v razvojnem okolju Android Studio vklopili orodje za profiliranje programske kode. S pomočjo orodja za analiziranje programske kode bomo med izvajanjem storitev merili porabo prenosa podatkov in zasedenost pomnilnika. Da bomo pridobili rezultate glede časovne učinkovitosti, smo v mobilno aplikacijo implementirali logiko za merjenje časa izvajanja posameznih operacij pri mobilnem plačevanju. Merjenje časa smo implementirali tako, da smo z merjenjem časa začeli pri akciji uporabnika ob kliku na gumb za zaključek plačila in zaključili merjenje časa ob pridobitvi podatkov iz strežnika o uspešno izvedeni plačilni transakciji. Slika 15 prikazuje del programske kode, s 46

56 pomočjo katere smo merili čas procesiranja plačilnih transakcij pri uporabi različnih programskih vmesnikov. Da bi zagotovili točnost in konsistentnost rezultatov, smo implementirane procedure znotraj mobilne aplikacije testirali v enakem okolju na mobilni napravi Huawei P10. V izogib tveganju morebitnega neodzivanja mobilne naprave ali preobremenjenosti smo leto pred izvajanjem procedur ponastavili na tovarniške nastavitve in s tem onemogočili vpliv tretjih aplikacij in procesov na postopek merjenja. Ker smo v procesu merjenja učinkovitosti opazovali tudi prenos podatkov, smo v izogib motnjam v omrežju s strani drugih povezanih naprav vzpostavili namensko dostopno točko, ki je bila v procesu pridobivanja rezultatov v ločenem prostoru skupaj z mobilno napravo vedno na enaki razdalji. Glede na pridobljene empirične rezultate smo v petem poglavju predstavili in primerjali izbrane programske vmesnike. Slika 15 Progamska koda za merjenje časa 4.2 Načrt primerjalnega modela V sklopu praktičnega dela magistrskega dela smo definirali različne primerjalne procedure z namenom, da bi pridobili podatke o performančnih zmogljivostih klicev posameznih storitev v procesu izvajanja mobilnega plačevanja. Za vsakega ponudnika storitev mobilnega plačevanja so nas zanimale naslednje metrike: 47

57 K1: Povprečen čas trajanja nakupa primerjalne procedure 1 po desetih zaporednih ponovitvah. K2: Povprečna poraba prenosa podatkov primerjalne procedure 1 po desetih zaporednih ponovitvah. K3: Povprečna alokacija pomnilnika primerjalne procedure 1 po desetih zaporednih ponovitvah. K4: Kompleksnost integracije programske knjižnice za mobilno plačevanje v mobilno aplikacijo (Tabela 10). K5: Velikost datoteke APK po končani integraciji programske knjižnice za mobilno plačevanje v mobilno aplikacijo. K6: Primerjava po načinu zaračunavanja in stroškov uporabe storitev mobilnega plačevanja za posameznega ponudnika. Da bi odgovorili na RV6, smo v sklopu primerjalnega modela definirali metriko za merjenje časa K1. Pri omenjeni metriki bomo merili čas od začetka do konca nakupa znotraj mobilne aplikacije, pri čemer bomo za implementacijo uporabili tri različne programske vmesnike. Pri hitrosti izvedbe določene operacije pri nakupu je pomembna tudi učinkovitost glede uporabe virov. Za merjenje učinkovitosti glede uporabe virov smo definirali karakteristike K2 in K3 z namenom, da bomo odgovorili na sedmo raziskovalno vprašanje. Vsak izmed ponudnikov programskih vmesnikov, predstavljenih v tretjem poglavju, zaračunava uporabo njihovih storitev. Da bi odgovorili na RV3, bomo naredili primerjavo po cenovnih modelih oziroma stroških uporabe za vsakega posameznega ponudnika plačilnih storitev (K6). Tabela 9 prikazuje načrt izvedbe primerjalne procedure 1, kjer smo definirali operacije, ki so potrebne za izvedbo plačilnega procesa od začetka do konca. S pomočjo te primerjalne procedure bomo pridobili odgovore na šesto in sedmo raziskovalno vprašanje. 48

58 Tabela 9 Načrt za izvedbo primerjalne procedure 1 Zaporedna številka operacije Operacija 1. Vnos artikla v nakupovalno košarico 2. Izbira plačilne metode 3. Izvršitev plačila 4. Prikaz uspešnosti izvedbe plačila Z namenom, da bi pridobili odgovor na RV8, smo definirali tabelo, predstavljeno spodaj (Tabela 10), s pomočjo katere bomo izmerili težavnost integracije posameznega programskega vmesnika v projekt Android mobilne aplikacije. Na težavnost razvoja oziroma integracije programskih knjižnic vplivajo urejenost razvojne dokumentacije, potreba po vključevanju dodatnih programskih knjižnic (npr. knjižnica za izvajanje HTTP klicev), potreba po implementaciji strežniškega dela in med drugimi tudi sama zasnova programskega vmesnika, preko katerega izvajamo klice za izvedbo plačilne transakcije. Za primerjavo težavnosti integracije posameznega programskega vmesnika smo definirali in ovrednotili lastnosti, ki so predstavljene v Tabeli 10. Metrike z večjo vrednostjo predstavljajo večjo težavnost, saj zahtevajo več razvojnega časa in razumevanja za samo implementacijo. Tabela 10 Načrt primerjalne procedure 2 Vrednost metrike Urejenost razvojne dokumentacije Število dodatnih programskih knjižnic za celovito integracijo Potreben razvoj zalednega sistema za izvedbo transakcij Število klicev programskih funkcij za izvedbo transakcije Možnost testiranja izvajanja plačilnih transakcij v testnem okolju 0 Vključuje testne primere 1 Predstavljena brez testnih primerov 2 Ni na voljo [0 N] 0 Ne 1 Da [1 N] 0 Podprto 1 Ni podprto 49

59 Da bi v eksperimentalnem delu raziskovalne naloge pridobili čim bolj natančne in relevantne rezultate, smo za vsako operacijo izvedli več ponovitev in v tem času opazovali in beležili karakteristike, ki jih bomo na koncu pretvorili v rezultate. 50

60 5 INTEGRACIJA PROGRAMSKIH VMESNIKOV 5.1 Proces integracije programskega vmesnika Braintree Kot je bilo omenjeno, programski vmesnik Braintree ponuja izvajanje plačil preko različnih plačilnih procesorjev, kot so PayPal, Apple Pay, Android Pay, Venmo, Visa itd. Skozi proces integracije bomo implementirali plačevanje z uporabo PayPal plačilne metode. Integracija Braintree storitve za izvajanje plačilnih transakcij zahteva od razvijalca implementacijo tako na strani odjemalca kot tudi na strani strežnika. Na strani odjemalca se pridobijo podatki o kupcu in načinu plačila, na strežniški strani pa se izvajajo klici, ki so potrebni za avtorizacijo in izvedbo plačilne transakcije. Integracija Braintree plačilne storitve v mobilno aplikacijo poteka v naslednjih treh korakih: - registracija v platformo Braintree na spletni strani, - integracija Braintree SDK na strani odjemalca, - integracija Braintree SDK na strani strežnika. Pred začetkom uporabe Braintree storitve smo ustvarili nov račun na Braintree platformi. V procesu registracije smo izbrali»sandbox«tip računa, ki omogoča uporabo funkcionalnosti v testnem okolju. Platforma Braintree uporabniku omogoča izvajanje naprednih iskanj, upravljanje transakcij, dodajanje novih strank, obveščanje preko e- sporočil itn. Spodnja slika (Slika 16) prikazuje osnovni pogled na Braintree platformi, kjer je prikazan graf z zadnjimi izvedenimi transakcijami. 51

61 Slika 16 Braintree platforma pogled nadzorne plošče Po uspešni registraciji uporabnika na platformi Braintree smo začeli z razvojem mobilne aplikacije. V sklopu registracijskega procesa je treba izbrati tudi denarno valuto, ki bo uporabljena pri plačilnih transakcijah. V razvojnem okolju Android Studio smo ustvarili nov projekt. Za integracijo Braintree SDK v našo Android aplikacijo je treba znotraj projekta ročno vključiti potrebne programske knjižnice. Na spodnji sliki (Slika 17) je prikazan del programske kode, ki je potreben za integracijo omenjenega razvojnega ogrodja v projekt naše mobilne aplikacije. Slika 17 Vključitev knjižnic razvojnega ogrodja Braintree SDK v projekt mobilne aplikacije Po vključitvi knjižnic smo spremenili še datoteke Manifest.xml, da smo omogočili prikaz pogleda za izbiro plačilnih metod, v našem primeru PayPal. Slika 18 prikazuje konfiguracijo za nastavitev pogleda za prikaz plačilnih metod. 52

62 Slika 18 Konfiguracija pogleda za prikaz plačilnih metod Za začetek vsake plačilne transakcije, ki se izvede preko Braintree storitve, je potreben žeton. Generiranje žetona poteka na strežniku, ki ga je treba vzpostaviti v procesu integracije. Žeton služi za inicializacijo odjemalca v procesu plačilnega postopka. Spodnji odsek programske kode prikazuje klic na strežnik, preko katerega pridobimo žeton, ki ga generira strežnik s pomočjo Braintree SDK-ja. Slika 19 Programska koda za pridobitev žetona za inicializacijo odjemalca Ko pridobimo žeton od strežnika, ga uporabimo pri»dropinrequest«implementaciji, s pomočjo katere izberemo plačilno metodo, ki je v našem primeru PayPal. Po izbrani plačilni metodi preko»onactivityresult«funkcije pridobimo način plačila v obliki kodiranega niza, ki se uporabi v naslednjem koraku pri izvedbi transakcije. Spodnji del kode prikazuje zahtevo za prikaz spustnega menija, preko katerega izberemo plačilno sredstvo ter funkcijo, preko katere pridobimo rezultat klica. 53

63 Slika 20 DropInRequest za prikaz izbire plačilnega sredstva Po uspešno izbrani plačilni metodi nam preostane še pošiljanje zahteve za izvedbo plačilne transakcije. Klic za izvedbo plačilne transakcije kot parameter sprejme izbrano plačilno metodo v obliki kodiranega niza in znesek plačila. Spodnji del programske kode (Slika 21) prikazuje klic na strežnik, ki opravi plačilno transakcijo in pošlje nazaj rezultat v obliki json zapisa, ki vsebuje vse podrobnosti izvedene plačilne transakcije. Vse transakcije so izvedene v denarni valuti, ki se določi v procesu registracije računa na Braintree platformi. Slika 21 Primer klica na strežnik za kreiranje plačilne transakcije 54

64 Po končani implementaciji plačilnega procesa smo izdelali uporabniški vmesnik za namene testiranja plačilnih transakcij. Spodnja slika (Slika 22) prikazuje zaslon na mobilni aplikaciji s predogledom zneska nakupa in Braintree komponento za izbiro plačilne metode. Kot je razvidno s slike, se nam ob kliku na gumb»checkout«prikaže seznam implementiranih plačilnih metod, preko katerih lahko izvedemo nakup. Po izbrani plačilni metodi PayPal se izvede preusmeritev na pogled za prijavo v plačilni sistem PayPal. V primeru izbire načina plačila preko kreditne ali debetne kartice pa se prikaže obrazec za vnos podatkov plačilne kartice. Slika 22 Uporabniški vmesnik za izbiro plačilne metode Braintree Za celovito integracijo Braintree plačilne storitve je treba implementirati še lastni strežnik, ki predstavlja most med odjemalcem in Braintree strežnikom. Za implementacijo strežniškega dela Braintree ponuja programske knjižnice (SDK) za.net, Node.js, PHP, Javo, Python in Ruby. Po končani integraciji Braintree programske knjižnice v našo mobilno aplikacijo smo začeli z izvajanjem primerjalnik procedur in meritvijo rezultatov. 55

65 5.2 Proces integracije programskega vmesnika PayPal Če želimo uporabljati oziroma implementirati plačevanje preko PayPal plačilnega procesorja, moramo imeti ustvarjen PayPal račun. Ko imamo ustvarjen račun, se z njim vpišemo na stran za razvijalce, ki se imenuje PayPal Developer. Ta spletna stran služi kot nadzorna plošča za pregled nad testnimi in produkcijskimi računi, aplikacijami in dogodki, povezanimi z izvajanjem plačilnih transakcij. Začetek integracije PayPal programskega vmesnika smo začeli z ustvarjanjem testnega poslovnega PayPal računa preko PayPal Developer platforme. Po uspešni registraciji smo na sami platformi dodali novo aplikacijo»rest API app«, ki služi za preverjanje avtorizacije pri izvajanju plačilnih transakcij preko REST programskega vmesnika. Ko smo uspešno ustvarili aplikacijo, smo s tem pridobili»client ID«, preko katerega bomo povezali mobilno aplikacijo z ustvarjenim poslovnim računom na platformi PayPal. Slika 23 prikazuje uporabniški vmesnik PayPal Developer platforme, iz katere je razvidna REST API aplikacija, ki smo jo dodali za potrebe testiranja funkcionalnosti plačevanja preko PayPal storitev. Slika 23 Uporabniški vmesnik PayPal Developer platforme Po uspešno ustvarjenem poslovnem računu in dodani aplikaciji na PayPal Developer platformi, smo se lotili integracije na strani mobilnega odjemalca. Za integracijo PayPal programskega vmesnika v našo Android aplikacijo je treba znotraj projekta ročno vključiti 56

66 potrebne programske knjižnice. Na spodnji sliki (Slika 24) je prikazan del inicializacije znotraj build.gradle datoteke, ki je potrebna za integracijo omenjenega razvojnega ogrodja v projekt naše mobilne aplikacije. Slika 24 Vključitev knjižnic razvojnega ogrodja PayPal SDK v projekt mobilne aplikacije Preden smo se lotili implementacije plačilnega procesa, smo morali znotraj Manifest.xml datoteke (Slika 25) dodati PayPal storitev in definirati aktivnosti, ki se navezujejo na uporabniški vmesnik, ki se prikazuje v procesu izvajanja plačilne transakcije od prijave uporabnika v sistem PayPal do potrjevanja nakupa. Slika 25 Konfiguracija PayPal storitve in aktivnosti znotraj Manifest.xml Pred začetkom izvajanja plačilnih transakcij preko PayPal storitev je treba nastaviti konfiguracijo, ki označuje okolje za izvajanje plačilnih storitev in identifikacijski ključ odjemalca, ki smo ga pridobili pri kreiranju REST API aplikacije na PayPal Developer platformi. Kot okolje za izvajanje plačilnih storitev imamo na voljo tri možnosti, med katere štejemo testno okolje, produkcijsko okolje in okolje brez internetne povezave. V našem primeru smo za namene testiranja izbrali okolje»environment_sandbox«in pridobljen ustrezen identifikacijski ključ odjemalca. Slika 26 prikazuje programsko kodo, kjer smo nastavili omenjeno konfiguracijo znotraj»oncreate«metode in zagnali PayPal storitev, ki smo jo deklarirali znotraj Manifest.xml datoteke. 57

67 Slika 26 Konfiguracija plačilnega okolja in storitve PayPal Izvajanje plačilnih transakcij s pomočjo PayPal programskega vmesnika poteka preko PaymentActivity razreda, ki mu je treba dodeliti PayPal konfiguracijo in objekt PayPalPayment, ki vsebuje podatke o plačilu, kot so znesek, denarna valuta, opis in tip transakcije. Slika 27 prikazuje odsek programske kode, ki odpre okno za začetek nakupa preko PayPal programskih operacij. Slika 27 Programska koda za izvršitev začetka plačilnega procesa PayPal Postopek izvedbe nakupa s pomočjo PayPal programskega vmesnika po klicu metode, predstavljene zgoraj (Slika 27), poteka v naslednjih korakih: - prijava uporabnika s PayPal računom in preverjanje avtentikacije (Slika 28), - predogled nakupa in možnost izbire drugega plačilnega sredstva, - potrdilo nakupa in procesiranje plačilne transakcije. 58

68 Slika 28 Uporabniški vmesnik za proces plačevanja PayPal Po potrditvi plačila s klikom na gumb»pay«se v ozadju izvede plačilna transakcija in kot rezultat vrne podrobne informacije o plačilu preko»onactivityresult«metode. Odsek programske kode, predstavljen na Slika 29, se izvede po potrjeni in izvedeni plačilni transakciji. Rezultat plačila je predstavljen v obliki json zapisa in vsebuje podatke o odjemalcu, uspešnosti izvedene transakcije in podatke o plačilu. 59

69 Slika 29 Obdelava rezultata plačila PayPal Po končani integraciji PayPal programske knjižnice v našo mobilno aplikacijo smo začeli z izvajanjem primerjalnih procedur in meritvijo rezultatov. 5.3 Proces integracije programskega vmesnika BlueSnap Pred začetkom integracije programskega vmesnika BlueSnap v mobilno aplikacijo smo se registrirali na portalu BlueSnap Sandbox, ki predstavlja testno okolje za izvajanje plačilnih transakcij in preizkušanje funkcionalnosti, ki so uporabniku na voljo. Platforma omogoča pregled nad izvedenimi plačilnimi transakcijami, generiranje naprednih poročil o transakcijah, različnih konverzijah, izplačilih in naročninah. Po uspešni registraciji smo preko nastavitev platforme nastavili geslo, na podlagi katerega se ustvari uporabniško ime, ki se uporablja za komunikacijo med BlueSnap programskim vmesnikom in mobilno aplikacijo. Ustvarjeno uporabniško ime služi za preverjanje pristnosti med odjemalcem in plačilno platformo. Spodnja slika (Slika 30) prikazuje uporabniški vmesnik BlueSnap 60

70 spletne platforme, kjer smo znotraj nastavitev nastavili potrebno konfiguracijo za uporabo programskega vmesnika. Slika 30 Konfiguracija poverilnic znotraj BlueSnap platforme Po uspešno opravljeni registraciji računa in nastavljeni konfiguraciji na spletni platformi BlueSnap smo začeli z integracijo programskega vmesnika na strani mobilnega odjemalca. Pri integraciji BlueSnap programskega vmesnika v Android mobilno aplikacijo je treba znotraj projekta ročno vključiti potrebne programske knjižnice. Na spodnji sliki (Slika 31) je prikazan del konfiguracije znotraj build.gradle datoteke, ki je potrebna za integracijo omenjenega razvojnega ogrodja v projekt naše mobilne aplikacije. Slika 31 Vključitev knjižnic programskega vmesnika BlueSnap Preden lahko začnemo izvajati plačilne transakcije preko programskega vmesnika, je treba pridobiti žeton na strani strežnika za inicializacijo odjemalca. Žeton pridobimo tako, da pošljemo POST zahtevo na URL naslov testnega ali produkcijskega okolja skupaj s 61

71 potrebnimi poverilnicami, ki smo jih generirali na platformi BlueSnap. Žeton se ustvari za vsako sejo plačilne transakcije, in sicer z namenom, da shrani podatke o plačilu za posameznega kupca in jih kasneje uporabi med obdelavo transakcije. Programska koda na spodnji sliki (Slika 32) prikazuje pošiljanje zahteve za pridobitev žetona iz testnega strežnika. Strežnik vrne žeton, zapisan znotraj»header«vsebine z oznako»location«, zato ga je po uspešno končani zahtevi treba še pridobiti. Slika 32 Pridobitev žetona za inicializacijo BlueSnap Po uspešno pridobljenem žetonu smo inicializirati BlueSnap storitev za izvajanje klicev programske knjižnice pri procesu plačevanja skupaj z naslednjimi vhodnimi parametri (Slika 33): - Token: žeton, pridobljen iz strežnika, kot je prikazano na zgornji sliki (Slika 32); - TokenProvider: povratni klic metode, ki v primeru, da žeton poteče, ustvari novega; - Currency: valutna koda ISO 4217, ki predstavlja podano denarno valuto. Prevzeto se uporabi vrednost USD; - applicationcontext: kontekst aplikacije, ki se uporablja za preprečevanje goljufij; 62

72 - BluesnapServiceCallback: povratni klic metode, ki se izvede po končanem namestitvenem procesu. Slika 33 Inicializacija BlueSnap programskega vmesnika Po uspešni vzpostavitvi povezave med strežnikom in odjemalcem s pomočjo klicev programske knjižnice smo v naslednjem koraku poslali zahtevo za plačilo, pri kateri se v ozadju izvede verifikacija vpisanega zneska in podane denarne valute v predhodnem klicu (Slika 33). Spodnja slika (Slika 34) prikazuje programsko kodo, ki opravi verifikacijo podanega zneska in valute ter prikaže pogled za vpis podatkov kupca in plačilne kartice. Slika 34 Validacija zneska in valute BlueSnap Pri naslednjem koraku smo morali v procesu plačevanja preko programskega vmesnika BlueSnap izbrati plačilno metodo in vpisati podatke o plačilni kartici preko integriranega 63

73 uporabniškega vmesnika. BlueSnap podpira plačevanje preko kreditne ali debetne kartice in plačilo preko PayPal ponudnika. Za plačevanje preko PayPal storitve je treba znotraj spletne platforme BlueSnap povezati PayPal poslovni račun skupaj s potrebnimi poverilnicami, ki jih pridobimo z registriranega poslovnega računa na PayPal spletni platformi. Spodnja slika (Slika 35) prikazuje uporabniški vmesnik, ki se prikaže po izvedbi programske kode, predstavljene na prejšnjem koraku plačilnega procesa (Slika 34). Za izvedbo plačila je treba preko uporabniškega vmesnika izbrati način plačila in vpisati veljavne podatke o plačilni kartici ter potrditi plačilo s klikom na gumb»pay«. Slika 35 Uporabniški vmesnik za vnos podatkov pri plačilu BlueSnap Po vnosu veljavnih podatkov plačilne kartice in potrditvi plačila se preko programskega vmesnika izvede proces tokenizacije na strežniku, kjer se podatki plačilne kartice preslikajo v niz zaporednih znakov in se v tej obliki uporabijo v nadaljnjih operacijah v procesu plačevanja. Po uspešnem preverjanju vnesenih podatkov programska koda preko»onactivityresult«metode pošlje podatke, ki so potrebni za izvedbo plačilne transakcije. Na podlagi pridobljenih podatkov smo ustvarili objekt»transactiondata«in poslali»post«zahtevo na URL testnega okolja skupaj s potrebnimi poverilnicami za izvedbo plačilne transakcije. 64

74 Slika 36 Rezultat zahteve za izvedbo plačila in generiranje plačilne transakcije BlueSnap BlueSnap programska knjižnica razvijalcu omogoča tako prilagoditev komponent uporabniškega vmesnika kot tudi poljubno nastavljanje barvne sheme in ikon. Po uspešni integraciji plačilnega procesa s pomočjo programskega vmesnika BlueSnap smo začeli z izvajanjem primerjalnih procedur in meritvijo pridobljenih rezultatov. 65

75 6 PRIMERJAVA IN REZULTATI MERJENJA V nadaljevanju smo na podlagi raziskovalnih vprašanj in pridobljenih rezultatov v času integracije različnih programskih vmesnikov v mobilno aplikacijo predstavili rezultate merjenja glede učinkovitosti uporabe, naredili medsebojno primerjavo in opisali pridobljene ugotovitve. V sklopu primerjave različnih programskih vmesnikov za plačevanje smo izvedli naslednje podane primerjave: - primerjavo po hitrosti izvedbe plačilne transakcije preko mobilne aplikacije, - primerjavo po alokaciji pomnilnika v procesu izvajanja plačilne transakcije, - primerjavo po količini prenosa podatkov v času izvedbe plačilne transakcije, - primerjavo po težavnosti integracije posameznega programskega vmesnika, - primerjavo po velikosti programske knjižnice po zaključeni integraciji, - primerjavo po načinu zaračunavanja in stroškov uporabe storitev mobilnega plačevanja. 6.1 Predstavitev rezultatov merjenja Primerjava po hitrosti izvedbe plačilnih transakcij Spodnja tabela (Tabela 11) prikazuje rezultate merjenja časa od začetka do konca izvedbe plačilne transakcije za vsakega izmed predstavljenih programskih vmesnikov. Da bi pridobili čim bolj relevantne podatke, smo za vsako merjenje časa uporabili 10 poskusov merjenja. Tabela 11 Rezultati merjanja časa pri izvajanju plačilnih transakcij Številka poskusa PayPal Braintree BlueSnap ms ms 6536 ms ms 9856 ms 7080 ms ms ms 5446 ms ms 9887 ms 5874 ms ms ms 5696 ms 66

76 ms 9628 ms 5568 ms ms ms 5335 ms ms 9514 ms 5797 ms ms 9197 ms 5634 ms ms ms 6117 ms Na podlagi rezultatov, pridobljenih pri izvedbi merjenja časa izvajanja plačilnih transakcij, smo izdelali grafično predstavitev, pri čemer smo uporabili povprečen čas izvedbe trajanja posamezne meritve glede za posamezen programski vmesnik. Slika Rezultati meritev merjenja časa pri izvajanju plačilnih transakcij Iz podatkov z zgornjega grafikona je razvidno, da je za izvedbo plačilne transakcije v procesu nakupa glede hitrosti izvedbe najbolj učinkovit programski vmesnik BlueSnap, ki je za izvedbo transakcije v povprečju potreboval 5,6 sekunde. Rezultati merjenja povprečnega časa pri ostalih dveh programskih vmesnikih so se izkazali za enkrat počasnejše, saj je povprečen čas pri izvedbi plačilne transakcije preko PayPal programskega vmesnika trajal 9,9 sekunde, pri uporabi programskega vmesnika Braintree pa 10,1 sekunde. 67

77 Primerjava po porabi pomnilnika Pri hitrosti izvedbe določene operacije pri nakupu je pomembna tudi učinkovitost glede uporabe virov. V procesu izvajanja plačilnih transakcij smo s pomočjo orodja za profiliranja programske kode znotraj programskega okolja Android Studio med izvajanjem analizirali porabo oziroma zasedenost pomnilniškega prostora. Spodnji graf (Slika 37) prikazuje porabo pomnilnika, ki se alocira med procesom nakupa za vsakega izmed predstavljenih programskih vmesnikov. Kot je z grafa razvidno, se pri uporabi oziroma plačevanju preko PayPal programskega vmesnika alocira malo več kot 70 MB pomnilnika, pri čemer se pri procesu izvajanja transakcije preko Braintree programskega vmesnika porabi 27,7 MB pomnilnika. Najbolj učinkovit programski vmesnik glede porabe pomnilnika je v tem primeru BlueSnap, ki pri izvedbi plačilne transakcije porabi 23 MB pomnilniškega prostora. Slika 37 Zasedenost pomnilnika v času izvajanja plačilne transakcije Primerjava po količini prenosa podatkov Na hitrosti izvedbe določene operacije v procesu izvajanja plačilne transakcije vpliva tudi količina poslanih in prejetih podatkov preko interneta. V procesu izvajanja plačilnih transakcij smo s pomočjo orodja za profiliranja programske kode znotraj programskega okolja Android Studio med izvajanjem merili količino prejetih in poslanih podatkov. 68

78 Spodnji graf (Slika 38) prikazuje količino prejetih in poslanih podatkov med procesom nakupa za vsakega izmed predstavljenih programskih vmesnikov. Slika 38 Količina prenosa podatkov med izvedbo plačilne transakcije Primerjava po velikosti programske knjižnice Pri izbiri ponudnika, ki omogoča plačevanje preko aplikacije na mobilni napravi, je pomembna tudi velikost programske knjižnice po zaključeni integraciji programskega vmesnika. Velikost programske knjižnice vpliva na velikost razširitvene datoteke APK 1, ki je pri distribuciji mobilne aplikacije na portal Google Play omejena glede na različico sistema Android. V primeru nameščanja APK datoteke v velikosti 100 MB je zahtevano, da je na mobilni napravi nameščena aplikacija Google Play z različico 5.2 ali več, preko katere poteka nameščanje posameznih aplikacij. 1 APK (angl. Android Package) je oblika datoteke, ki jo uporablja operacijski sistem Android za distribucijo in namestitev mobilnih aplikacij na portal Google Play ali neposredno na mobilno napravo. 69