Google antar officiellt API för betalningsbegäran, vilket gör att du kan betala med appar från tredje part i Chrome

click fraud protection

Google kommer att tillkännages under Google I/O. Google antar officiellt API: et för betalningsbegäran i Chrome, så att du kan betala med appar från tredje part.

Kommer att tillkännages vid den kommande Google I/O-utvecklarkonferensen kommer Payment Request API att revolutionera hur vi gör onlinebetalningar på våra mobila enheter. Google Chrome-användare på Android behöver inte längre gå igenom långa kassaprocesser som involverar inmatning av sin kreditkortsinformation eller inloggning på PayPal. Istället gör API: et det möjligt för webbplatsutvecklare att skicka avsikter till stödda betalningsapplikationer från tredje part för att kunna göra en betalning. Till skillnad från många av de andra överraskningar som Google har i beredskap för oss, det finns redan massor av offentlig information om hur exakt detta nya sätt att betala kommer att fungera. Vi har dykt ner i alla dessa dokument för att ge dig lite information innan Googles officiella tillkännagivande den här veckan.


Göra betalningar enklare med Payment Request API

Låt oss först sammanfatta hur betalningar för närvarande hanteras i webbläsare. När du går till kassasidan för en onlinehandlare ombeds du att ange din betalningsinformation. Du kan antingen lägga till ett kreditkort som stöds av handlaren eller använda en integrerad tjänst som PayPal för att slutföra din transaktion. Nu, om du inte redan har sparat din kreditkortsinformation på webbplatsen (vilket många är ovilliga att göra) eller redan är inloggad in till PayPal kan det vara krångligt att gå upp, gå till din plånbok, hitta ditt kort och ange sedan kortnummer, utgångsdatum och säkerhet koda. Varje gång du vill göra ett köp på en ny webbplats måste du gå igenom någon variant av denna process. För oss som gillar att leta efter erbjudanden, detta kan bli irriterande ganska snabbt.

Olika sidor för köpmän online

Många kreditkorts- och bankinstitut har applikationer tillgängliga i Google Play Butik. Eftersom vi redan använder dessa applikationer för att övervaka våra finansiella konton, varför kan vi inte använda dem för att autentisera betalningar? Det är exakt tankeprocessen bakom Web Payments Working Group, som består av medlemmar som Google, Mozilla, Samsung, Alibaba, Microsoft och fler. Denna grupp har arbetat bakom kulisserna för att introducera ett nytt API som heter Payment Request API och en ny onlinestandard definierad i betalningsmanifestförslaget för att underlätta kommunikationen mellan webbläsare och onlinehandlare så att onlinehandlaren kan använda befintliga applikationer på en slutanvändares enhet för att hantera betalningar.

Hur det fungerar

För att utföra denna uppgift, webbläsare måste stödja Payment Request API, måste onlinehandlare stödja API: t genom att implementera vad som kallas en Identifierare för betalningsmetod, och Android-applikationer behöver implementera nya tjänster. Utan att gå in på för mycket detaljer kommer jag kortfattat förklara vad som händer under kassaprocessen.

Förutsatt att din webbläsare stöder Payment Request API (mer om det senare), när du navigerar till en onlinehandlares betalningssida har du möjlighet att betala med en av deras betalningshanterare som stöds (kreditkort/PayPal/etc.) När du trycker på knappen för att göra ett köp (som på exempelsidan nedan som används av Googlers för att testa Payment Request API), sedan skickar Payment Request API en Android-avsikt till den betalningsapplikation som stöds för att den appen ska autentisera användarens betalning.

 Låt oss säga att vår hypotetiska kreditkortsapplikation installerad på en hypotetisk Android-enhet heter Bob Pay. Bob Pay lägger till följande i sin AndroidManifest.xml-fil:

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

När en avsikt skickas som riktar sig till denna hypotetiska kreditkortsapplikation, startas denna applikations tjänst. All information som behövs för att vår hypotetiska Bob Pay-app ska förstå vad som köps, från vilken leverantör och för hur mycket pengar som ingår i avsiktens extramaterial:

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

När Bob Pay har validerat betalningen, tar Payment Request API emot denna information i en annan avsikt som skickats av Bob 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.

Men hur vet onlinehandlaren som stöder Bob Pay att Bob Pay som är installerad på din telefon är den riktiga Bob Pay, och inte någon skadlig programvara som är avsedd att begå bedrägerier? Det åstadkommer detta genom att skapa en JSON-fil för betalningsmetodmanifestidentifierare som är maskinläsbar av webbläsaren.

{
<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>,
}
]
}

Inom den här JSON-filen finns en signatur som används för att verifiera integriteten för den applikation som är installerad på din enhet och som påstår sig vara verklig Bob betala. Om denna signaturkontroll misslyckas, kommer Bob Pay inte att accepteras som betalningshanterare.

Naturligtvis överförenklar jag den allmänna processen som är involverad här. Betalningar är ett otroligt komplext system som kräver flera lager av säkerhetskontroller för att säkerställa att endast giltiga betalningar görs. De tre dokument som jag länkade till tidigare beskriver hur webbläsaren fullt ut implementerar API: et för betalningsbegäran, hur en webbplats implementerar JSON-manifestfilen och hur en Android-app kan hantera avsikten som skickas av betalningsbegäran API. Här är ett flödesschema som beskriver den allmänna processen som jag sammanfattade ovan:

Betalningsflödesschema. Källa: Rouslan Solomakhin

Som du kan se är det många steg inblandade här. Alla dessa förändringar kommer att hanteras av utvecklare av näthandelswebbplatser, Android-banker/kredit kortappar och utvecklare av webbläsare så att en slutanvändare sannolikt inte har någon aning om vad som verkligen händer här. Men vet bara att slutresultatet är att dina onlinebetalningar blir mycket enklare om alla parter är inblandade implementera dessa förändringar, vilket tack vare standardiseringsarbetet från Web Payments Working Group förhoppningsvis kommer att bli det verklighet.


Historien bakom API: et för betalningsbegäran

World Wide Web Consortium (förkortat W3C) grundades 1994 för att utveckla plattformen standarder som skulle göra det möjligt för alla webbplatser och deras användare att dra nytta av interkompatibilitet och konsistens. För att komma till rätta med den växande fragmenteringen av webbbetalningar bildade W3C Web Payments Working Group 2015 för att standardisera vissa aspekter av onlinebetalningsflödet. Därefter påbörjades arbetet bland alla medlemmar i Web Payments Working Group för att hitta sätt att förbättra hur befintliga onlinebetalningssystem fungerar.

Gruppen kom fram till Payment Request API, en samling metoder för att tillåta webbplatser att använda betalningsmetoder utan att integrera betalningsmetoden på sin webbplats. Webbläsare måste uppdateras för att stödja API, men den svårare delen härrör från få onlinehandlare ombord. För detta ändamål medlemmar av arbetsgruppen kom med ett förslag om hur webbplatser kan skapa identifierare för att definiera vilka betalningsmetoder de stöder. Detta innebär att skapa en JSON-fil för betalningsmanifest som är maskinläsbar (identifieraren för betalningsmetod) – den måste läsas av webbläsaren så att Payment Request API kan identifiera om användaren har en eller flera av applikationerna som motsvarar de stödda betalningsmetoderna identifierade i JSON fil. Denna implementering är inspirerad av Googles Digital Asset Links Protocol vilket är hur webbplatser omdirigerar dig från sin mobilsajt till sin applikation om du redan har den installerad.

Efter mycket internt fram och tillbaka av gruppen, så småningom den 25 november 2016, skickade Zach Koch från Google och Dapeng Liu från Alibaba in en första utkastet till betalningsmetodmanifestet för att starta standardiseringsprocessen för betalningsmetodidentifierare som alla medlemmar kunde gå med på. Så småningom medlemmar i arbetsgruppen träffades personligen i Chicago mellan 23-24 mars för att hasha ut betalningsbegärans API, betalningsmanifestförslaget och mer. Arbetsgruppen röstade för att formellt anta en ny version av betalningsmanifestförslaget (version 2), vilket är där vi står idag.


Support för Payment Request API

Den 10 maj finns nu stöd för tredje parts Android-betalningsappar aktiverad som standard i Chromium eftersom förutsättningen för webbbetalningsmanifest godkändes i blink-dev-grenen (Blink är namnet på renderingsmotorn som används av Chrome). Observera att den här funktionen har testats i Chrome i månader, men det är först nyligen som det verkar som att gruppen är redo att gå vidare med detta. Denna funktion kommer att skickas vidare alla plattformar/versioner av Chromium förutom Android Webview (som inte har ett användargränssnitt och därmed inte kan implementera Payment Request API).

Först efter månader av arbete bakom kulisserna kommer vi nu att se fördelarna med vad Web Payments Working Group har arbetat med. På Google I/O kommer företaget sannolikt att meddela att Google Chrome kommer att levereras med Payment Request API aktiverat, och Zach Koch nämnde tidigare kommer att hålla sitt föredrag på torsdag om hur tredjepartsbetalningsleverantörer kan stödja API: t genom att bygga Payment Manifest JSON filer.

Andra webbläsare arbetar också med att lägga till stöd för Payment Request API. Mozilla och Samsung har dock uttryckt offentligt stöd för att lägga till API enligt Googler Rouslan Solomakhin det finns ännu inga uppgifter om om Microsofts Edge-webbläsare eller Apples Safari kommer att lägga till stöd. Vi bör notera att Microsoft är det testar redan Payment Request API för Universal Windows Platform-appar (UWP). och kl minst en bank har redan implementerat stöd (Monzo) i sin app.

När det gäller andra onlinehandlare och Android-applikationer som kommer att stödja denna nya betalningsspecifikation, enligt Googler Zach Koch:

Antalet "betalningsmetodleverantörer" som skulle behöva implementera denna specifikation är ganska litet (hundratals), och just nu arbetar vi bara direkt med en mycket liten delmängd av dessa (<5) för att testa vattnet. Om vi ​​skulle hamna i en situation där vi behövde ändra ett av fälten, tror jag att vi skulle kunna göra det enkelt och utan mycket (om någon) interoprisk. Alla våra tidiga partners är medvetna om att denna specifikation kan ändras och är okej med det.

Att få detta utrullat är avgörande för att låta andra spelare delta i PR-ekosystemet, åtminstone på Android. Jag skulle verkligen föredra att inte gå den fullständiga proprietära vägen för att aktivera inbyggda Android-appar. Vi har hållit fotavtrycket på detta avsiktligt litet för att lämna utrymme för tillväxt och mer avancerade användningsfall.

Således kan vi se att även om Google är banbrytande för support för Payment Request API, det kommer att ta lite tid innan vi verkligen ser detta nya sätt att betala hitta in i alla webbläsare, alla onlinehandlare och alla applikationer. Jag personligen är väldigt glad över att se API: et för betalningsbegäran stöds av Google. E-handelns ekosystem har varit onödigt fragmenterat med betalningsmetoder i flera år, och om detta nya API kommer innebär att jag aldrig mer behöver ange min kreditkortsinformation manuellt på en webbplats, då är jag allt för Det.


Vad tycker du om denna kommande standard? Ljud av i kommentarerna och låt oss veta din åsikt!