Google oficiálne prijíma rozhranie Payment Request API, ktoré vám umožňuje platiť pomocou aplikácií tretích strán v prehliadači Chrome

click fraud protection

Spoločnosť Google oficiálne prijíma rozhranie Payment Request API do prehliadača Chrome, ktoré vám umožní platiť pomocou aplikácií tretích strán.

Pripravené na oznámenie na nadchádzajúcej konferencii vývojárov Google I/O prinesie rozhranie Payment Request API revolúciu v spôsobe, akým uskutočňujeme online platby na našich mobilných zariadeniach. Používatelia prehliadača Google Chrome v systéme Android už nebudú musieť prechádzať zdĺhavými procesmi platby, ktoré zahŕňajú zadávanie informácií o kreditnej karte alebo prihlasovanie do služby PayPal. Namiesto toho API umožňuje vývojárom webových stránok odosielať zámery do podporovaných platobných aplikácií tretích strán, aby mohli uskutočniť platbu. Na rozdiel od mnohých z iné prekvapenia ktoré má Google pre nás pripravené, už existuje množstvo verejných informácií o tom, ako presne bude tento nový spôsob platenia fungovať. Ponorili sme sa do všetkých týchto dokumentov, aby sme vám poskytli nejaké informácie pred oficiálnym oznámením spoločnosti Google tento týždeň.


Zjednodušenie platieb pomocou rozhrania Payment Request API

Najprv si zopakujme, ako sa v súčasnosti riešia platby vo webových prehliadačoch. Keď prejdete na stránku pokladne ktoréhokoľvek online obchodníka, budete požiadaní o zadanie platobných údajov. Na dokončenie transakcie môžete pridať kreditnú kartu podporovanú obchodníkom alebo použiť integrovanú službu, ako je PayPal. Teraz, pokiaľ ste si už na webe neuložili informácie o svojej kreditnej karte (čo sa mnohým ľuďom zdráha urobiť) alebo ak ste sa už neprihlásili v službe PayPal môže byť problém vstať, prejsť do peňaženky, nájsť kartu a potom zadať číslo karty, dátum vypršania platnosti a zabezpečenie kód. Zakaždým, keď chcete uskutočniť nákup na novej webovej stránke, musíte prejsť nejakou obmenou tohto procesu. Pre tých z nás, ktorí radi lovia ponuky, môže to byť dosť rýchlo nepríjemné.

Rôzne online pokladne obchodníkov

Mnohé kreditné karty a bankové inštitúcie majú aplikácie dostupné v obchode Google Play. Keďže tieto aplikácie už používame na monitorovanie našich finančných účtov, prečo by sme ich nemohli použiť na overovanie platieb? Presne takýto myšlienkový proces stojí za skupinou Web Payments Working Group, ktorú tvoria členovia ako Google, Mozilla, Samsung, Alibaba, Microsoft a ďalší. Táto skupina pracovala v zákulisí, aby to bolo možné zaviesť nové API s názvom Payment Request API a nový online štandard definovaný v Návrhu manifestu platby s cieľom uľahčiť komunikáciu medzi webovými prehliadačmi a online obchodníkov, aby online obchodník mohol využívať existujúce aplikácie na zariadení koncového používateľa na spracovanie platieb.

Ako to funguje

Na splnenie tejto úlohy webové prehliadače musí podporovať rozhranie Payment Request API, musia online obchodníci podporovať API implementáciou toho, čo sa nazýva a Identifikátor spôsobu platbya aplikácie pre Android potreba implementovať nové služby. Bez toho, aby som zachádzal do prílišných podrobností, stručne vysvetlím, čo sa deje počas procesu platby.

Za predpokladu, že váš webový prehliadač podporuje rozhranie Payment Request API (viac o tom neskôr), keď prejdete na platobnú stránku online obchodníka, budete mať možnosť zaplatiť s jedným z ich podporovaných spracovateľov platieb (kreditná karta/PayPal/atď.) Keď klepnete na tlačidlo na uskutočnenie nákupu (napríklad na vzorovej stránke nižšie, ktorú používajú zamestnanci spoločnosti Google na otestovať rozhranie Payment Request API), potom rozhranie Payment Request API odošle zámer systému Android do podporovanej platobnej aplikácie, aby táto aplikácia overila platba.

 Povedzme, že naša hypotetická aplikácia kreditnej karty nainštalovaná na hypotetickom zariadení Android sa volá Bob Pay. Bob Pay pridá do svojho súboru AndroidManifest.xml nasledovné:

"font-weight: 400;"><manifestspan><spanstyle="font-weight: 400;">package=span><spanstyle="font-weight: 400;">"com.bobpay.app"span><spanstyle="font-weight: 400;">>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">".IsReadyToPayService"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: enabled=span><spanstyle="font-weight: 400;">"true"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: exported=span><spanstyle="font-weight: 400;">"true"span><spanstyle="font-weight: 400;">>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;"><intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.intent.action.IS_READY_TO_PAY"span><spanstyle="font-weight: 400;">/></span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">intent-filter>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">service>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">".PaymentActivity"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: exported=span><spanstyle="font-weight: 400;">"true"span><spanstyle="font-weight: 400;">>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;"><intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.intent.action.PAY"span><spanstyle="font-weight: 400;">/></span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.default_payment_method_name"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: value=span><spanstyle="font-weight: 400;">"https://bobpay.com/put/optional/path/here"span><spanstyle="font-weight: 400;">/>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">activity>span>
<spanstyle="font-weight: 400;">manifest>span>

Keď sa odošle zámer zameraný na túto hypotetickú aplikáciu kreditnej karty, spustí sa služba tejto aplikácie. Všetky informácie potrebné na to, aby naša hypotetická aplikácia Bob Pay pochopila, čo sa kupuje, od ktorého predajcu a za koľko peňazí sú zahrnuté doplnky zámeru:

Bundle extras = new Bundle();
extras.putString("key", "value");
intent.putExtras(extras);

Keď Bob Pay overí platbu, rozhranie Payment Request API dostane tieto informácie v inom zámere odoslanom Bobom Payom:

Intent result = new Intent();
Bundle extras = new Bundle();
extras.putString("key", "value");
result.putExtras(extras);
setResult(RESULT_OK, result); // Changeto RESULT_CANCELED on failure.
finish(); // Close the payment activity.

Ako však online obchodník, ktorý podporuje Bob Pay, vie, že Bob Pay nainštalovaný vo vašom telefóne je skutočný Bob Pay a nie nejaký malvér určený na spáchanie podvodu? Dosahuje to vytvorením súboru JSON identifikátora platobnej metódy, ktorý je prehliadačom strojovo čitateľný.

{
<span ><span >"span>name<span >"span>span><span >:span><span ><span >"span>BobPay - World's Greatest Payment Method<span >"span>span>,
<span ><span >"span>description<span >"span>span><span >:span><span ><span >"span>This payment method changes lives<span >"span>span>,
<span ><span >"span>short_name<span >"span>span><span >:span><span ><span >"span>BobPay<span >"span>span>,
<span ><span >"span>icons<span >"span>span><span >:span> [{
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/lowres.webp<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>64x64<span >"span>span>,
<span ><span >"span>type<span >"span>span><span >:span><span ><span >"span>image/webp<span >"span>span>
},{
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/lowres.png<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>64x64<span >"span>span>
}, {
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>icon/hd_hi<span >"span>span>,
<span ><span >"span>sizes<span >"span>span><span >:span><span ><span >"span>128x128<span >"span>span>
}],
<span ><span >"span>serviceworker<span >"span>span><span >:span> {
<span ><span >"span>src<span >"span>span><span >:span><span ><span >"span>payment-sw.js<span >"span>span>,
<span ><span >"span>scope<span >"span>span><span >:span><span ><span >"span>/pay<span >"span>span>,
<span ><span >"span>use_cache<span >"span>span><span >:span><span >falsespan>
}
<span ><span >"span>related_applications<span >"span>span><span >:span> [
{
<span ><span >"span>platform<span >"span>span><span >:span><span ><span >"span>play<span >"span>span>,
<span ><span >"span>url<span >"span>span><span >:span><span ><span >"span>https://play.google.com/store/apps/details? id=com.bobpay<span >"span>span>,
<span ><span >"span>fingerprints<span >"span>span><span >:span> [{
<span ><span >"span>type<span >"span>span><span >:span><span ><span >"span>sha256_cert<span >"span>span>,
<span ><span >"span>value<span >"span>span><span >:span><span ><span >"span>59:5C: 88:65:FF: C4:E8:20:CF: F7:3E: C8...<span >"span>span>
}], <span >//newspan>
<span ><span >"span>min_version<span >"span>span><span >:span><span ><span >"span>1<span >"span>span>, <span >// newspan>
<span ><span >"span>id<span >"span>span><span >:span><span ><span >"span>com.example.app1<span >"span>span>
}, {
<span ><span >"span>platform<span >"span>span><span >:span><span ><span >"span>itunes<span >"span>span>,
<span ><span >"span>url<span >"span>span><span >:span><span ><span >"span>https://itunes.apple.com/app/example-app1/id123456789<span >"span>span>,
}
]
}

V tomto súbore JSON je podpis, ktorý sa používa na overenie integrity aplikácie nainštalovanej na vašom zariadení, ktorá sa vydáva za reálny Bob Pay. Ak táto kontrola podpisu zlyhá, Bob Pay nebude akceptovaný ako spracovateľ platieb.

Samozrejme, veľmi, nesmierne, nesmierne zjednodušujem všeobecný proces, ktorý je tu zahrnutý. Platby sú neuveriteľne zložitý systém, ktorý vyžaduje viacero vrstiev bezpečnostných kontrol, aby sa zabezpečilo, že sa uskutočnia iba platné platby. Tri dokumenty, na ktoré som predtým odkazoval, načrtávajú, ako prehliadač plne implementuje rozhranie Payment Request API, ako a implementuje súbor manifestu JSON a ako môže aplikácia pre Android spracovať zámer odoslaný žiadosťou o platbu API. Tu je vývojový diagram, ktorý načrtáva všeobecný proces, ktorý som zhrnul vyššie:

Vývojový diagram platieb. Zdroj: Rouslan Solomakhin

Ako vidíte, je tu veľa krokov. O všetky tieto zmeny sa postarajú vývojári webových stránok online obchodníkov, Android banking/kredit kartové aplikácie a vývojári webových prehliadačov, takže koncový používateľ pravdepodobne nebude mať potuchy, čo sa v skutočnosti deje tu. Ale vedzte, že konečným výsledkom je, že vaše online platby budú oveľa jednoduchšie, ak budú zapojené všetky strany implementovať tieto zmeny, ktoré sa vďaka štandardizačnému úsiliu pracovnej skupiny pre webové platby snáď stanú reality.


História rozhrania API žiadosti o platbu

World Wide Web Consortium (skrátene W3C) bolo založené v roku 1994 s cieľom vyvinúť platformu štandardy, ktoré by umožnili všetkým webovým stránkam a ich používateľom využívať výhody vzájomnej kompatibility a konzistencia. S cieľom riešiť rastúcu fragmentáciu webových platieb vytvorilo W3C Pracovná skupina pre webové platby v roku 2015 s cieľom štandardizovať niektoré aspekty toku online platieb. Potom sa začala práca medzi všetkými členmi pracovnej skupiny pre webové platby s cieľom nájsť spôsoby, ako zlepšiť fungovanie existujúcich online platobných systémov.

Skupina prišla s Rozhranie API žiadosti o platbu, súbor spôsobov, ktoré umožňujú webovým stránkam používať spôsoby platby bez integrácie spôsobu platby na ich stránky. Je potrebné aktualizovať webové prehliadače, aby podporovali API, ale tá ťažšia časť pramení z získanie online obchodníkov. Za týmto účelom členovia pracovnej skupiny prišiel s návrhom o tom, ako môžu webové stránky vytvárať identifikátory na definovanie, ktoré spôsoby platby podporujú. Ide o vytvorenie súboru JSON manifestu platby, ktorý je strojovo čitateľný (identifikátor spôsobu platby) – musí ho prečítať prehliadač, aby Payment Request API dokáže identifikovať, či má používateľ jednu alebo viacero aplikácií zodpovedajúcich podporovaným spôsobom platby identifikovaným v JSON súbor. Táto implementácia je inšpirovaná spoločnosťou Google Protokol Digital Asset Links čo je spôsob, akým vás webové stránky presmerujú z ich mobilnej stránky na ich aplikáciu, ak ju už máte nainštalovanú.

Po mnohých interných krokoch v skupine, nakoniec 25. novembra 2016, Zach Koch z Google a Dapeng Liu z Alibaba predložili prvotný návrh Manifestu spôsobu platby s cieľom spustiť proces štandardizácie pre identifikátory platobných metód, s ktorým môžu súhlasiť všetci členovia. Nakoniec členovia pracovnej skupiny sa osobne stretli v Chicagu medzi 23. a 24. marcom s cieľom hašovať API žiadosti o platbu, návrh manifestu platby a ďalšie. Pracovná skupina odhlasovali formálne prijatie nová verzia návrhu manifestu platby (verzia 2), kde dnes stojíme.


Podpora pre rozhranie Payment Request API

10. mája je teraz podpora pre platobné aplikácie pre Android tretích strán predvolene povolené v prehliadači Chromium, pretože nevyhnutná podmienka webového platobného manifestu bola schválená vo vetve blink-dev (Blink je názov vykresľovacieho nástroja používaného prehliadačom Chrome). Upozorňujeme, že táto funkcia sa v prehliadači Chrome testuje už niekoľko mesiacov, ale len nedávno sa zdá, že skupina je pripravená s tým pokračovať. Táto funkcia bude dodaná všetky platformy/verzie prehliadača Chromium okrem Android Webview (ktorý nemá používateľské rozhranie, a preto nemôže implementovať rozhranie Payment Request API).

Až po mesiacoch práce v zákulisí teraz uvidíme výhody toho, na čom pracuje pracovná skupina pre webové platby. Na Google I/O spoločnosť pravdepodobne oznámi, že Google Chrome sa bude dodávať s povoleným rozhraním Payment Request API a Zach Koch spomenul vo štvrtok prednesie svoj prejav o tom, ako môžu poskytovatelia platieb tretích strán podporovať API vytvorením Payment Manifest JSON súbory.

Ostatné prehliadače tiež pracujú na pridaní podpory pre rozhranie Payment Request API. Mozilla a Samsung však vyjadrili verejnú podporu pre pridanie API podľa spoločnosti Google Rouslan Solomakhin zatiaľ sa nehovorí o tom, či prehliadač Edge od Microsoftu alebo Safari od Apple pridá podporu. Mali by sme poznamenať, že Microsoft je už testuje rozhranie Payment Request API pre aplikácie Universal Windows Platform (UWP). a pri aspoň jedna banka už podporu implementovala (Monzo) vo svojej aplikácii.

Čo sa týka iných online obchodníkov a aplikácií pre Android, ktoré budú podporovať túto novú platobnú špecifikáciu, tvrdí Googler Zach Koch:

Počet „poskytovateľov platobných metód“, ktorí by potrebovali implementovať túto špecifikáciu, je pomerne malý (stovky) a práve teraz pracujeme priamo len s veľmi malou podskupinou tých (<5), ktoré testujeme vody. Ak by sme sa dostali do situácie, kedy by sme potrebovali zmeniť jedno z polí, myslím, že by sme to mohli urobiť jednoducho a bez veľkého (ak nejakého) rizika interoperability. Všetci naši prví partneri si uvedomujú, že táto špecifikácia sa môže zmeniť a sú s tým v poriadku.

Zavedenie tejto funkcie je rozhodujúce pre to, aby sa ostatní hráči mohli zúčastniť na ekosystéme PR, aspoň v systéme Android. Naozaj by som radšej nešiel po úplnej proprietárnej ceste na povolenie natívnych aplikácií pre Android. Ponechali sme stopu na tomto zámerne malú, aby sme ponechali priestor pre rast a pokročilejšie prípady použitia.

Môžeme teda vidieť, že hoci Google je priekopníkom v podpore rozhrania Payment Request API, chvíľu potrvá, kým si tento nový spôsob platenia skutočne nájde cestu do všetkých prehliadačov, všetci online obchodníci a všetky aplikácie. Osobne ma veľmi teší, že Google podporuje rozhranie Payment Request API. Ekosystém elektronického obchodu bol roky zbytočne fragmentovaný spôsobmi platby a ak toto nové API znamená, že už nikdy nebudem musieť manuálne zadávať informácie o svojej kreditnej karte na webovú stránku, potom som za všetko to.


Čo si myslíte o tomto pripravovanom štandarde? Ozvite sa v komentároch a dajte nám vedieť svoj názor!