A Google I/O során bejelentendő, a Google hivatalosan is bevezeti a Payment Request API-t a Chrome-ba, amely lehetővé teszi, hogy harmadik féltől származó alkalmazásokkal fizessen.
Bejelentik a közelgő Google I/O fejlesztői konferencián a Payment Request API forradalmasítja a mobileszközeinken történő online fizetési módot. A Google Chrome Android-felhasználóinak többé nem kell hosszadalmas fizetési folyamatokon átmenniük, amelyek magukban foglalják hitelkártyaadataik megadását vagy a PayPal rendszerbe való bejelentkezését. Ehelyett az API lehetővé teszi a webhelyfejlesztők számára, hogy szándékokat küldjenek a támogatott, harmadik féltől származó fizetési alkalmazásoknak fizetés teljesítése érdekében. Sokakkal ellentétben a egyéb meglepetések amit a Google tartogat számunkra, már most rengeteg nyilvános információ van arról, hogy pontosan hogyan fog működni ez az új fizetési mód. Mindezeket a dokumentumokat megvizsgáltuk annak érdekében, hogy néhány információval szolgálhassunk a Google e heti hivatalos bejelentése előtt.
Könnyebb fizetés a Payment Request API-val
Először is nézzük meg, hogyan kezelik jelenleg a fizetéseket a webböngészőkben. Amikor bármely online kereskedő fizetési oldalára lép, meg kell adnia fizetési adatait. A tranzakció befejezéséhez hozzáadhat a kereskedő által támogatott hitelkártyát, vagy használhat integrált szolgáltatást, például a PayPal-t. Most, kivéve, ha már elmentette hitelkártyaadatait a webhelyen (amit sokan nem szívesen teszik meg), vagy már bejelentkezett. a PayPalba, nehéz lehet felkelni, a pénztárcájához menni, megkeresni a kártyáját, majd megadni a kártya számát, lejárati dátumát és a biztonságot. kód. Minden egyes alkalommal, amikor új webhelyen szeretne vásárolni, át kell mennie ennek a folyamatnak néhány változatán. Nekünk, akik szeretnek üzletekre vadászni, ez elég gyorsan bosszantó lehet.
Különféle online kereskedői fizetési oldalak
Számos hitelkártya- és bankintézet rendelkezik alkalmazásokkal a Google Play Áruházban. Mivel már ezeket az alkalmazásokat használjuk pénzügyi számláink felügyeletére, miért nem tudjuk használni őket a fizetések hitelesítésére? Pontosan ez a gondolatmenet a Web Payments Working Group mögött, amely olyan tagokból áll, mint a Google, a Mozilla, a Samsung, az Alibaba, a Microsoft és mások. Ez a csoport a színfalak mögött dolgozik annak érdekében bevezetni egy új API-t Payment Request API néven valamint a fizetési jegyzékben meghatározott új online szabvány a webböngészők közötti kommunikáció megkönnyítése érdekében és online kereskedők, így az online kereskedő használhatja a végfelhasználó eszközén meglévő alkalmazásokat a fizetések kezelésére.
Hogyan működik
Ennek a feladatnak a végrehajtása érdekében a webböngészők támogatnia kell a Payment Request API-t, az online kereskedőknek támogatniuk kell az API-t az úgynevezett a Fizetési mód azonosítójaés Android alkalmazások új szolgáltatások bevezetésére van szükség. Anélkül, hogy túlságosan részletezem, röviden elmagyarázom, mi történik a fizetési folyamat során.
Feltéve, hogy webböngészője támogatja a Payment Request API-t (erről később bővebben), amikor egy online kereskedő fizetési oldalára navigál, lehetősége lesz fizetni az egyik támogatott fizetéskezelővel (hitelkártya/PayPal/stb.) Amikor megérinti a gombot a vásárláshoz (például az alábbi mintaoldalon, amelyet a Google-alkalmazottak tesztelje a Payment Request API-t), majd a Payment Request API Android intentot küld a támogatott fizetési alkalmazásnak, hogy az alkalmazás hitelesítse a felhasználó fizetés.
Tegyük fel, hogy egy feltételezett Android-eszközre telepített hipotetikus hitelkártya-alkalmazásunk neve Bob Pay. Bob Pay hozzáadja a következőket az AndroidManifest.xml fájljához:
"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>
Amikor egy szándékot küldenek erre a hipotetikus hitelkártya-alkalmazásra, akkor az alkalmazás szolgáltatása elindul. Minden olyan információ, amely ahhoz szükséges, hogy feltételezett Bob Pay alkalmazásunk megértse, mit vásárol, melyik szállítótól és mennyi pénzt tartalmaz a szándék extrái:
Bundle extras = new Bundle();
extras.putString("key", "value");
intent.putExtras(extras);
Miután Bob Pay jóváhagyta a befizetést, a Payment Request API megkapja ezt az információt egy másik, Bob Pay által küldött szándékkal:
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.
De honnan tudja a Bob Payt támogató online kereskedő, hogy a telefonjára telepített Bob Pay az igazi Bob Pay, nem pedig valami csalásra szánt kártevő? Ezt úgy éri el, hogy létrehoz egy, a böngésző által gépileg olvasható Payment Method Manifest Identifier JSON-fájlt.
{
<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>,
}
]
}
Ebben a JSON-fájlban található egy aláírás, amely az eszközére telepített alkalmazás integritásának ellenőrzésére szolgál, amely azt állítja, hogy igazi Bob Pay. Ha ez az aláírás-ellenőrzés sikertelen, akkor Bob Pay nem fogadható el fizetéskezelőként.
Természetesen túlságosan leegyszerűsítem az itt érintett általános folyamatot. A kifizetések egy hihetetlenül összetett rendszer, amely több rétegű biztonsági ellenőrzést igényel annak biztosítása érdekében, hogy csak érvényes kifizetések történjenek. Az általam korábban linkelt három dokumentum felvázolja, hogy a böngésző hogyan valósítja meg maradéktalanul a Payment Request API-t, hogyan a webhely implementálja a JSON jegyzékfájlt, és hogyan tudja egy Android-alkalmazás kezelni a fizetési kérelem által küldött szándékot API. Itt van egy folyamatábra, amely felvázolja a fentebb összefoglalt általános folyamatot:
Fizetési folyamatábra. Forrás: Rouslan Solomakhin
Amint látja, itt sok lépésről van szó. Mindezeket a változtatásokat az online kereskedői webhelyek, az Android banki/hitelügyintézői fejlesztők fogják kezelni kártyaalkalmazások és webböngészők fejlesztői, így a végfelhasználónak valószínűleg fogalma sincs, mi is történik valójában itt. De csak tudd, hogy a végeredmény az, hogy online fizetéseid sokkal egyszerűbbé válnak, ha minden fél részt vesz benne végrehajtani ezeket a változtatásokat, amelyek a Web Fizetési Munkacsoport szabványosítási törekvéseinek köszönhetően remélhetőleg azzá válnak valóság.
The History Behind the Payment Request API
A World Wide Web Consortium (rövidítve W3C) 1994-ben alakult platform fejlesztése céljából. szabványok, amelyek lehetővé tennék, hogy minden webhely és felhasználói részesüljenek az interkompatibilitásból és következetesség. A webes fizetések növekvő széttagoltságának kezelése érdekében a W3C megalakította a Webes fizetések munkacsoportja 2015-ben az online fizetési folyamat egyes aspektusainak egységesítése érdekében. Ezt követően megkezdődött a munka a Web Fizetési Munkacsoport valamennyi tagja között annak érdekében, hogy megtalálják a módszereket a meglévő online fizetési rendszerek működésének javítására.
A csoport kitalálta a Payment Request API, olyan módszerek gyűjteménye, amelyek segítségével a webhelyek fizetési módokat használhatnak anélkül, hogy a fizetési módot integrálnák webhelyükre. A webböngészőket frissíteni kell, hogy támogassák az API-t, de a nehezebb rész abból adódik online kereskedők bevonása. Ennek érdekében a munkacsoport tagjai javaslattal állt elő arról, hogy a webhelyek hogyan hozhatnak létre azonosítókat annak meghatározására, hogy mely fizetési módokat támogatják. Ez magában foglalja egy fizetési jegyzék JSON-fájl létrehozását, amely géppel olvasható (a fizetési mód azonosítója) – azt a böngészőnek be kell olvasnia, hogy a A Payment Request API azonosítani tudja, ha a felhasználó rendelkezik egy vagy több olyan alkalmazással, amely megfelel a JSON-ban azonosított támogatott fizetési módoknak. fájlt. Ezt a megvalósítást a Google ihlette Digital Asset Links Protocol így a webhelyek átirányítják Önt mobilwebhelyükről az alkalmazásukra, ha az már telepítve van.
A csoport sok belső oda-vissza adása után végül 2016. november 25-én Zach Koch a Google-tól és Dapeng Liu az Alibabától benyújtott egy a Fizetési módok jegyzékének kezdeti tervezete a fizetési mód-azonosítók szabványosítási folyamatának elindítása érdekében, amellyel minden tag egyetérthet. Végül a munkacsoport tagjai március 23. és 24. között találkoztak személyesen Chicagóban a Payment Request API, a Payment Manifest Proposal és egyebek kivonatolása érdekében. A munkacsoport hivatalos elfogadásra szavaztak a fizetési jegyzék javaslatának új változata (2. verzió), ahol ma állunk.
A Payment Request API támogatása
Május 10-től a harmadik féltől származó Android fizetési alkalmazások is támogatottak alapértelmezés szerint engedélyezve van a Chromiumban, mivel a webes fizetési jegyzék előfeltételét jóváhagyták a blink-dev ágban (a Blink a Chrome által használt renderelő motor neve). Vegye figyelembe, hogy ezt a funkciót hónapok óta tesztelik a Chrome-ban, de csak mostanában tűnik úgy, hogy a csoport készen áll a továbblépésre. Ez a funkció tovább lesz szállítva a Chromium összes platformjára/verziójára, kivéve az Android Webview-t (amelynek nincs felhasználói felülete, és így nem tudja megvalósítani a Payment Request API-t).
Csak hónapokig tartó kulisszák mögötti munka után fogjuk látni, milyen előnyei vannak annak, amin a Web Payments Munkacsoport dolgozott. A Google I/O-n a vállalat valószínűleg bejelenti, hogy a Google Chrome a Payment Request API-val lesz elérhető, és Zach Koch említette. korábban csütörtökön arról fog beszélni, hogy a harmadik fél fizetési szolgáltatók hogyan támogathatják az API-t Payment Manifest JSON létrehozásával fájlokat.
Más böngészők is dolgoznak a Payment Request API támogatásán. Mozilla és a Samsung nyilvánosan támogatta az API hozzáadását a Google munkatársa szerint Rouslan Solomakhin Arról még nincs hír, hogy a Microsoft Edge böngészője vagy az Apple Safari támogatja-e. Meg kell jegyeznünk, hogy a Microsoft már teszteli a Payment Request API-t Universal Windows Platform (UWP) alkalmazásokhoz és at legalább egy bank már megvalósított támogatást (Monzo) az alkalmazásukban.
Ami a többi online kereskedőt és Android-alkalmazást illeti, amelyek támogatják ezt az új fizetési specifikációt, Zach Koch Google munkatársa szerint:
Meglehetősen csekély azoknak a "fizetési mód-szolgáltatóknak" a száma, akiknek ezt a specifikációt alkalmazniuk kellene (több száz), és jelenleg csak ezek egy nagyon kis részhalmazával (<5) dolgozunk közvetlenül a tesztelés céljából. a vizek. Ha mégis olyan helyzetbe ütköznénk, hogy valamelyik mezőt módosítanunk kell, azt hiszem, hogy ezt könnyen megtehetnénk, és nagy (ha van ilyen) interoperációs kockázat nélkül. Minden korai partnerünk tisztában van azzal, hogy ez a specifikáció változhat, és ezzel egyetértenek.
Ennek bevezetése elengedhetetlen ahhoz, hogy más játékosok is részt vehessenek a PR-ökoszisztémában, legalábbis Androidon. Valójában nem szeretném a teljes szabadalmaztatott utat az androidos natív alkalmazások engedélyezéséhez. Szándékosan kicsiben tartottuk a lábnyomot, hogy teret hagyjunk a növekedésnek és a fejlettebb felhasználási eseteknek.
Láthatjuk tehát, hogy bár a Google úttörő támogatást nyújt a Payment Request API-hoz, eltart egy ideig, amíg valóban látni fogjuk, hogy ez az új fizetési mód minden böngészőben elterjed, minden online kereskedő és minden alkalmazás. Én személy szerint nagyon izgatott vagyok, hogy a Google támogatja a Payment Request API-t. Az e-kereskedelmi ökoszisztéma évek óta szükségtelenül töredezett fizetési módokkal, és ha ez az új API Ez azt jelenti, hogy soha többé nem kell manuálisan megadnom a hitelkártya-információimat egy webhelyen, akkor minden azt.
Mi a véleményed erről a közelgő szabványról? Írd meg kommentben, és mondd el véleményedet!