Google oficiálně přijímá rozhraní Payment Request API, které vám umožňuje platit pomocí aplikací třetích stran v prohlížeči Chrome

Společnost Google oficiálně zavádí rozhraní Payment Request API do prohlížeče Chrome, které vám umožní platit pomocí aplikací třetích stran, které bude oznámeno během Google I/O.

Nastaveno na oznámení na nadcházející vývojářské konferenci Google I/O změní rozhraní Payment Request API revoluci ve způsobu, jakým provádíme online platby na našich mobilních zařízeních. Uživatelé prohlížeče Google Chrome v systému Android již nebudou muset absolvovat zdlouhavé procesy placení zahrnující zadávání údajů o své kreditní kartě nebo přihlašování do služby PayPal. Místo toho API umožňuje vývojářům webových stránek odesílat záměry do podporovaných platebních aplikací třetích stran, aby mohli provést platbu. Na rozdíl od mnoha z další překvapení které pro nás Google připravil, již existuje spousta veřejných informací o tom, jak přesně bude tento nový způsob placení fungovat. Ponořili jsme se do všech těchto dokumentů, abychom vám přinesli nějaké informace před oficiálním oznámením společnosti Google tento týden.


Usnadnění plateb pomocí rozhraní Payment Request API

Pojďme si nejprve zrekapitulovat, jak se aktuálně řeší platby ve webových prohlížečích. Když přejdete na stránku pokladny jakéhokoli online obchodníka, budete požádáni o zadání platebních údajů. K dokončení transakce můžete buď přidat kreditní kartu podporovanou obchodníkem, nebo použít integrovanou službu, jako je PayPal. Nyní, pokud jste již na webu neuložili informace o své kreditní kartě (což se mnoho lidí zdráhá) nebo pokud již nejste přihlášeni v PayPalu může být problém vstát, jít do peněženky, najít kartu a poté zadat číslo karty, datum vypršení platnosti a zabezpečení kód. Pokaždé, když chcete provést nákup na novém webu, musíte projít nějakou obměnou tohoto procesu. Pro ty z nás, kteří rád loví nabídky, to může být velmi rychle nepříjemné.

Různé online pokladní stránky obchodníků

Mnoho kreditních karet a bankovních institucí má aplikace dostupné v Obchodě Google Play. Protože tyto aplikace již používáme ke sledování našich finančních účtů, proč bychom je nemohli používat k ověřování plateb? Přesně takový myšlenkový proces stojí za pracovní skupinou Web Payments Working Group, kterou tvoří členové jako Google, Mozilla, Samsung, Alibaba, Microsoft a další. Tato skupina pracovala v zákulisí, aby to bylo možné zavést nové API s názvem Payment Request API a nový online standard definovaný v Návrhu Manifestu platby za účelem usnadnění komunikace mezi webovými prohlížeči a online obchodníky, takže online obchodník může používat existující aplikace na zařízení koncového uživatele za účelem zpracování plateb.

Jak to funguje

Aby bylo možné tento úkol splnit, webové prohlížeče musí podporovat rozhraní Payment Request API, musí online obchodníci podporovat API implementací toho, co se nazývá a Identifikátor platební metodya aplikace pro Android potřeba implementovat nové služby. Aniž bych zacházel do přílišných podrobností, stručně vysvětlím, co se děje během procesu pokladny.

Za předpokladu, že váš webový prohlížeč podporuje rozhraní Payment Request API (více o tom později), když přejdete na platební stránku online obchodníka, budete mít možnost zaplatit s jedním z jejich podporovaných zpracovatelů plateb (kreditní karta/PayPal/atd.) Když klepnete na tlačítko pro nákup (například na ukázkové stránce níže, kterou používají zaměstnanci společnosti Google k otestujte rozhraní Payment Request API), poté rozhraní Payment Request API odešle záměr Android do podporované platební aplikace, aby tato aplikace ověřila Způsob platby.

 Řekněme, že naše hypotetická aplikace kreditní karty nainstalovaná na hypotetickém zařízení Android se nazývá Bob Pay. Bob Pay do svého souboru AndroidManifest.xml přidá následující:

"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>

Když je odeslán záměr cílený na tuto hypotetickou aplikaci kreditní karty, spustí se služba této aplikace. Všechny informace potřebné k tomu, aby naše hypotetická aplikace Bob Pay pochopila, co se nakupuje, od kterého dodavatele a za kolik peněz je zahrnuto v doplňcích záměru:

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

Jakmile Bob Pay ověří platbu, rozhraní Payment Request API obdrží tyto informace v jiném záměru odeslaném Bobem Pay:

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.

Jak ale online obchodník, který podporuje Bob Pay, ví, že Bob Pay nainstalovaný ve vašem telefonu je skutečný Bob Pay, a ne nějaký malware určený ke spáchání podvodu? Dosahuje toho vytvořením souboru JSON identifikátoru platební metody, který je prohlížeč strojově čitelný.

{
<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 souboru JSON je podpis, který se používá k ověření integrity aplikace nainstalované ve vašem zařízení, která se vydává za nemovitý Bob Pay. Pokud tato kontrola podpisu selže, Bob Pay nebude přijat jako správce plateb.

Samozřejmě, že nesmírně, nesmírně, nesmírně zjednodušuji obecný proces, který je zde obsažen. Platby jsou neuvěřitelně složitý systém, který vyžaduje několik vrstev bezpečnostních kontrol, aby bylo zajištěno, že jsou prováděny pouze platné platby. Tři dokumenty, na které jsem dříve odkazoval, nastiňují, jak prohlížeč plně implementuje rozhraní Payment Request API, jak a webová stránka implementuje soubor manifestu JSON a jak může aplikace pro Android zpracovat záměr odeslaný žádostí o platbu API. Zde je vývojový diagram, který nastiňuje obecný proces, který jsem shrnul výše:

Vývojový diagram plateb. Zdroj: Rouslan Solomakhin

Jak vidíte, je zde mnoho kroků. O všechny tyto změny se postarají vývojáři webových stránek online obchodníků, Android banking/kredit kartové aplikace a vývojáři webových prohlížečů, takže koncový uživatel pravděpodobně nebude mít tušení, co se skutečně děje tady. Ale vězte, že konečným výsledkem je, že vaše online platby budou mnohem jednodušší, pokud budou všechny zúčastněné strany implementovat tyto změny, kterými se snad díky standardizačnímu úsilí pracovní skupiny Web Payments stane realita.


Historie za rozhraním Payment Request API

World Wide Web Consortium (zkráceně W3C) bylo založeno v roce 1994 za účelem rozvoje platformy standardy, které by umožnily všem webovým stránkám a jejich uživatelům těžit z vzájemné kompatibility a konzistence. S cílem řešit rostoucí fragmentaci webových plateb vytvořilo W3C Pracovní skupina pro webové platby v roce 2015 za účelem standardizace některých aspektů online platebního toku. Poté začala práce mezi všemi členy pracovní skupiny Web Payments Working Group s cílem najít způsoby, jak zlepšit způsob, jakým fungují stávající online platební systémy.

Skupina přišla s API žádosti o platbu, soubor metod, které umožňují webovým stránkám používat platební metody bez integrace platební metody na jejich stránky. Webové prohlížeče je třeba aktualizovat, aby podporovaly API, ale ta těžší část pramení z získání online obchodníků na palubě. Za tímto účelem členové pracovní skupiny přišel s návrhem o tom, jak mohou webové stránky vytvářet identifikátory pro definování platebních metod, které podporují. To zahrnuje vytvoření souboru JSON manifestu platby, který je strojově čitelný (identifikátor platební metody) – musí jej číst prohlížeč, aby Payment Request API dokáže identifikovat, zda má uživatel jednu nebo více aplikací odpovídajících podporovaným platebním metodám uvedeným v JSON soubor. Tato implementace je inspirována Googlem Protokol Digital Asset Links což je způsob, jakým vás webové stránky přesměrovávají ze svých mobilních stránek na jejich aplikaci, pokud ji již máte nainstalovanou.

Po mnoha interních tam a zpět ve skupině nakonec 25. listopadu 2016 Zach Koch z Googlu a Dapeng Liu z Alibaba zaslali prvotní návrh Manifestu platební metody za účelem zahájení procesu standardizace pro identifikátory platebních metod, se kterým mohou souhlasit všichni členové. Nakonec členové pracovní skupiny se osobně setkali v Chicagu mezi 23. a 24. březnem za účelem hašování rozhraní API žádosti o platbu, návrhu manifestu platby a dalších. Pracovní skupina odhlasovali formální přijetí nová verze návrhu manifestu platby (verze 2), kde dnes stojíme.


Podpora pro rozhraní Payment Request API

10. května je nyní podpora pro platební aplikace pro Android třetích stran ve výchozím nastavení povoleno v Chromiu, protože předpoklad webového platebního manifestu byl schválen ve větvi blink-dev (Blink je název vykreslovacího jádra používaného prohlížečem Chrome). Všimněte si, že tato funkce byla v prohlížeči Chrome testována několik měsíců, ale teprve nedávno se zdá, že skupina je připravena s tím jít vpřed. Tato funkce bude odeslána všechny platformy/verze Chromia kromě Android Webview (který nemá uživatelské rozhraní, a proto nemůže implementovat rozhraní Payment Request API).

Teprve po měsících zákulisní práce nyní uvidíme výhody toho, na čem pracovala pracovní skupina pro webové platby. Na Google I/O společnost pravděpodobně oznámí, že Google Chrome bude dodáván s povoleným rozhraním Payment Request API a Zach Koch zmínil dříve bude ve čtvrtek přednášet o tom, jak mohou poskytovatelé plateb třetích stran podporovat API vytvořením Payment Manifest JSON soubory.

Ostatní prohlížeče také pracují na přidání podpory pro rozhraní Payment Request API. Mozilla a Samsung však vyjádřily veřejnou podporu pro přidání API podle společnosti Google Rouslan Solomakhin zatím není známo, zda podporu přidá prohlížeč Edge od Microsoftu nebo Safari od Applu. Měli bychom si uvědomit, že Microsoft je již testuje rozhraní Payment Request API pro aplikace Universal Windows Platform (UWP). a při alespoň jedna banka již podporu implementovala (Monzo) ve své aplikaci.

Pokud jde o další online obchodníky a aplikace pro Android, které budou podporovat tuto novou platební specifikaci, uvádí Googler Zach Koch:

Počet „poskytovatelů platebních metod“, kteří by potřebovali implementovat tuto specifikaci, je poměrně malý (stovky), a právě teď pracujeme přímo s velmi malou podmnožinou těch (<5), které testujeme vody. Pokud bychom se dostali do situace, kdy bychom potřebovali změnit jedno z polí, myslím, že bychom to mohli udělat snadno a bez velkého (pokud vůbec nějakého) rizika interoperability. Všichni naši první partneři si uvědomují, že tato specifikace se může změnit, a souhlasí s tím.

Zavedení tohoto je zásadní pro to, aby se ostatní hráči mohli účastnit ekosystému PR, alespoň na Androidu. Opravdu bych raději nešel plnou proprietární cestou k povolení nativních aplikací pro Android. Ponechali jsme na tomto záměrně malou stopu, abychom ponechali prostor pro růst a pokročilejší případy použití.

Můžeme tedy vidět, že ačkoli Google je průkopníkem v podpoře rozhraní Payment Request API, bude chvíli trvat, než si tento nový způsob placení skutečně najde cestu do všech prohlížečů, všichni online obchodníci a všechny aplikace. Osobně jsem velmi nadšený z toho, že Google podporuje rozhraní Payment Request API. Ekosystém eCommerce byl po léta zbytečně fragmentován platebními metodami, a pokud toto nové API bude Znamená to, že už nikdy nebudu muset ručně zadávat informace o své kreditní kartě na web, pak jsem pro to.


Co si myslíte o tomto připravovaném standardu? Ozvi se v komentářích a dej nám vědět svůj názor!