Google adotta ufficialmente l'API Payment Request, consentendoti di pagare con app di terze parti in Chrome

click fraud protection

L'annuncio verrà annunciato durante il Google I/O e Google sta ufficialmente adottando l'API Payment Request in Chrome, consentendoti di pagare con app di terze parti.

Sarà annunciato alla prossima conferenza degli sviluppatori Google I/O, l'API Payment Request rivoluzionerà il modo in cui effettuiamo pagamenti online sui nostri dispositivi mobili. Gli utenti di Google Chrome su Android non dovranno più sottoporsi a lunghe procedure di pagamento che comportano l'inserimento dei dati della propria carta di credito o l'accesso a PayPal. L'API consente invece agli sviluppatori di siti Web di inviare intenti ad applicazioni di pagamento di terze parti supportate per effettuare un pagamento. A differenza di molti dei altre sorprese che Google ha in serbo per noi, ci sono già tantissime informazioni pubbliche su come funzionerà esattamente questo nuovo modo di pagare. Abbiamo esaminato tutti questi documenti per fornirti alcune informazioni prima dell'annuncio ufficiale di Google questa settimana.


Semplifica i pagamenti con l'API di richiesta di pagamento

Ricapitoliamo innanzitutto come vengono attualmente gestiti i pagamenti nei browser web. Quando vai alla pagina di pagamento di qualsiasi commerciante online, ti viene chiesto di inserire le informazioni di pagamento. Puoi aggiungere una carta di credito supportata dal commerciante o utilizzare un servizio integrato come PayPal per completare la transazione. Ora, a meno che tu non abbia già salvato i dati della tua carta di credito sul sito web (cosa che molte persone sono riluttanti a fare) o che tu non sia già registrato su PayPal, può essere una seccatura alzarsi, andare al portafoglio, trovare la carta, quindi inserire il numero della carta, la data di scadenza e la sicurezza codice. Ogni volta che desideri effettuare un acquisto su un nuovo sito web, devi seguire alcune variazioni di questo processo. Per quelli di noi che piace andare a caccia di affari, questo può diventare fastidioso abbastanza rapidamente.

Varie pagine di pagamento dei commercianti online

Molte carte di credito e istituti bancari dispongono di applicazioni disponibili sul Google Play Store. Dato che utilizziamo già queste applicazioni per monitorare i nostri conti finanziari, perché non possiamo usarle per autenticare i pagamenti? Questo è esattamente il processo di pensiero alla base del gruppo di lavoro sui pagamenti Web, composto da membri come Google, Mozilla, Samsung, Alibaba, Microsoft e altri. Questo gruppo ha lavorato dietro le quinte per farlo introdurre una nuova API chiamata Payment Request API e un nuovo standard online definito nella proposta del manifesto di pagamento al fine di facilitare la comunicazione tra i browser web e commercianti online in modo che il commerciante online possa utilizzare le applicazioni esistenti sul dispositivo di un utente finale per gestire i pagamenti.

Come funziona

Per eseguire questo compito, i browser web deve supportare l'API di richiesta di pagamento, i commercianti online devono supportare l'API implementando la cosiddetta a Identificatore del metodo di pagamentoe applicazioni Android necessità di implementare nuovi servizi. Senza entrare troppo nei dettagli, spiegherò brevemente cosa succede durante il processo di pagamento.

Supponendo che il tuo browser web supporti l'API di richiesta di pagamento (ne parleremo più avanti), quando accedi alla pagina di pagamento di un commerciante online avrai la possibilità di pagare con uno dei gestori di pagamento supportati (carta di credito/PayPal/ecc.) Quando tocchi il pulsante per effettuare un acquisto (come nella pagina di esempio di seguito utilizzata dai Googler per testare l'API Payment Request), quindi l'API Payment Request invia un intento Android all'applicazione di pagamento supportata affinché tale app possa autenticare l'utente pagamento.

 Diciamo che la nostra ipotetica applicazione per carte di credito installata su un ipotetico dispositivo Android si chiama Bob Pay. Bob Pay aggiungerà quanto segue al file AndroidManifest.xml:

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

Quando viene inviato un intento destinato a questa ipotetica applicazione di carta di credito, viene avviato il servizio di questa applicazione. Tutte le informazioni necessarie alla nostra ipotetica app Bob Pay per capire cosa si sta acquistando, da quale venditore e per quanto denaro è contenuto negli extra dell'intento:

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

Una volta che Bob Pay ha convalidato il pagamento, l'API Payment Request riceve queste informazioni in un altro intento inviato da 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.

Ma come fa il commerciante online che supporta Bob Pay a sapere che il Bob Pay installato sul tuo telefono è il vero Bob Pay e non un malware destinato a commettere frodi? A tale scopo, crea un file JSON dell'identificatore manifest del metodo di pagamento leggibile dalla macchina dal browser.

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

All'interno di questo file JSON è presente una firma utilizzata per verificare l'integrità dell'applicazione installata sul tuo dispositivo che dichiara di essere vero Bob Paga. Se il controllo della firma fallisce, Bob Pay non sarà accettato come gestore dei pagamenti.

Naturalmente sto enormemente, enormemente, enormemente semplificando eccessivamente il processo generale qui coinvolto. I pagamenti sono un sistema incredibilmente complesso che richiede più livelli di controlli di sicurezza per garantire che vengano effettuati solo pagamenti validi. I tre documenti a cui ho collegato in precedenza descrivono come il browser implementa completamente l'API di richiesta di pagamento, come a il sito web implementa il file manifest JSON e il modo in cui un'app Android può gestire l'intento inviato dalla richiesta di pagamento API. Ecco un diagramma di flusso che delinea il processo generale che ho riassunto sopra:

Diagramma di flusso dei pagamenti. Fonte: Rouslan Solomakhin

Come puoi vedere, ci sono molti passaggi coinvolti qui. Tutte queste modifiche saranno gestite dagli sviluppatori di siti Web di commercianti online e servizi bancari/di credito Android app per carte e sviluppatori di browser Web, quindi un utente finale probabilmente non avrà idea di cosa stia realmente accadendo Qui. Ma sappi solo che il risultato finale è che i tuoi pagamenti online diventeranno molto più semplici se tutte le parti coinvolte saranno coinvolte implementare questi cambiamenti, che si spera possano diventare, grazie agli sforzi di standardizzazione del Web Payments Working Group la realtà.


La storia dietro l'API di richiesta di pagamento

Il World Wide Web Consortium (abbreviato W3C) è stato fondato nel 1994 per sviluppare la piattaforma standard che consentirebbero a tutti i siti Web e ai loro utenti di beneficiare dell'intercompatibilità e consistenza. Per far fronte alla crescente frammentazione dei pagamenti web, il W3C ha costituito il Gruppo di Lavoro Pagamenti Web nel 2015 al fine di standardizzare alcuni aspetti del flusso dei pagamenti online. Successivamente è iniziato il lavoro tra tutti i membri del gruppo di lavoro sui pagamenti Web al fine di trovare modi per migliorare il funzionamento dei sistemi di pagamento online esistenti.

Il gruppo ha inventato il API per la richiesta di pagamento, una raccolta di metodi per consentire ai siti web di utilizzare metodi di pagamento senza integrare il metodo di pagamento nel proprio sito. I browser Web devono essere aggiornati per supportare l'API, ma la parte più difficile deriva da coinvolgere i commercianti online. A tal fine, i membri del gruppo di lavoro ha avanzato una proposta su come i siti web possono creare identificatori per definire quali metodi di pagamento supportano. Ciò comporta la creazione di un file JSON del manifesto di pagamento leggibile dalla macchina (l'identificatore del metodo di pagamento): deve essere letto dal browser in modo che il L'API Payment Request può identificare se l'utente dispone di una o più applicazioni corrispondenti ai metodi di pagamento supportati identificati nel JSON file. Questa implementazione è ispirata a quella di Google Protocollo di collegamenti alle risorse digitali che è il modo in cui i siti Web ti reindirizzano dal loro sito mobile alla loro applicazione se l'hai già installata.

Dopo molti avanti e indietro interni al gruppo, alla fine, il 25 novembre 2016, Zach Koch di Google e Dapeng Liu di Alibaba hanno presentato una domanda bozza iniziale del Manifesto dei Metodi di Pagamento al fine di avviare il processo di standardizzazione degli identificatori dei metodi di pagamento che tutti i membri possano accettare. Eventualmente, i membri del Gruppo di Lavoro ci siamo incontrati di persona a Chicago tra il 23 e il 24 marzo per elaborare l'API di richiesta di pagamento, la proposta del manifesto di pagamento e altro ancora. Il Gruppo di Lavoro ha votato per l'adozione formale una nuova versione della proposta di manifesto di pagamento (versione 2), che è la situazione in cui ci troviamo oggi.


Supporto per l'API di richiesta di pagamento

Dal 10 maggio è ora disponibile il supporto per le app di pagamento Android di terze parti abilitato per impostazione predefinita in Chromium poiché il prerequisito del manifest di pagamento web è stato approvato nel ramo flick-dev (Blink è il nome del motore di rendering utilizzato da Chrome). Tieni presente che questa funzionalità è in fase di test in Chrome da mesi, ma solo di recente sembra che il gruppo sia pronto per procedere con questa funzionalità. Questa funzionalità verrà spedita il tutte le piattaforme/versioni di Chromium ad eccezione di Android Webview (che non dispone di un'interfaccia utente e quindi non può implementare l'API di richiesta di pagamento).

Solo dopo mesi di lavoro dietro le quinte, ora vedremo i vantaggi di ciò su cui ha lavorato il gruppo di lavoro sui pagamenti Web. Al Google I/O, la società probabilmente annuncerà che Google Chrome verrà fornito con l'API Payment Request abilitata e Zach Koch ha menzionato in precedenza terrà il suo discorso giovedì su come i fornitori di pagamenti di terze parti possono supportare l'API creando Payment Manifest JSON File.

Anche altri browser stanno lavorando per aggiungere il supporto per l'API Payment Request. Mozilla e Samsung hanno tuttavia espresso il sostegno pubblico per l'aggiunta dell'API secondo Googler Rouslan Solomakhin non si sa ancora se il browser Edge di Microsoft o Safari di Apple aggiungeranno il supporto. Dovremmo notare che Microsoft lo è stiamo già testando l'API Payment Request per le app Universal Windows Platform (UWP). e a almeno una banca ha già implementato il sostegno (Monzo) nella loro app.

Per quanto riguarda gli altri commercianti online e le applicazioni Android che supporteranno questa nuova specifica di pagamento, secondo il Googler Zach Koch:

Il numero di "fornitori di metodi di pagamento" che dovrebbero implementare questa specifica è piuttosto ridotto (centinaia) e al momento stiamo lavorando direttamente solo con un sottoinsieme molto piccolo di questi (<5) da testare le acque. Se ci trovassimo in una situazione in cui avessimo bisogno di modificare uno dei campi, penso che potremmo farlo facilmente e senza molti (se non nessuno) rischi di interoperabilità. Tutti i nostri primi partner sono consapevoli che questa specifica può cambiare e sono d'accordo.

Implementarlo è fondamentale per consentire ad altri giocatori di partecipare all'ecosistema PR, almeno su Android. Preferirei davvero non seguire il percorso proprietario completo per abilitare le app native Android. Abbiamo mantenuto l'impronta intenzionalmente piccola per lasciare spazio alla crescita e ai casi d'uso più avanzati.

Pertanto, possiamo vedere che, sebbene Google sia pioniere nel supporto per l'API Payment Request, ci vorrà del tempo prima di vedere veramente questo nuovo modo di pagare diffondersi in tutti i browser, tutti i commercianti online e tutte le applicazioni. Personalmente sono molto entusiasta di vedere l'API di richiesta di pagamento essere supportata da Google. L'ecosistema dell'eCommerce è stato inutilmente frammentato per anni con metodi di pagamento, e se questa nuova API lo farà significa che non dovrò mai più inserire manualmente i dati della mia carta di credito in un sito web, quindi sono a posto Esso.


Cosa ne pensi di questo prossimo standard? Suona nei commenti e facci sapere la tua opinione!