Aggiornamento del comportamento dell'evento CanMakePayment dell'API Payment Handler

L'API Payment Handler consente ai fornitori di servizi di pagamento di rendere disponibile la propria esperienza di pagamento personalizzata per i commercianti, insieme all'API Payment Request. Quando l'API Payment Request viene inizializzata tramite il costruttore new PaymentRequest(), attiva silenziosamente un evento canmakepayment con l'origine del commerciante e dati arbitrari per un service worker registrato per l'API Payment Handler. Questa comunicazione tra origini diverse non richiede un gesto dell'utente e non mostra alcuna interfaccia utente.

Chrome rimuoverà i campi identificativi dall'evento canmakepayment e avvierà la prova dell'origine a partire da Chrome 108.

Le informazioni riportate in questa pagina si applicano solo ai fornitori di app di pagamento che utilizzano l'API Payment Handler. Se non lo utilizzi, puoi saltare queste istruzioni.

Cosa cambierà?

Quando un commerciante chiama new PaymentRequest(), un service worker registrato riceve un evento canmakepayment (CanMakePaymentEvent) che contiene le seguenti informazioni:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

Questi verranno rimossi e il service worker riceverà semplicemente l'evento canmakepayment senza ulteriori informazioni.

Rilevamento delle funzionalità

Per rilevare se l'evento canmakepayment viene modificato nel codice del service worker, esamina le rispettive proprietà nel seguente modo:

self.addEventListener(e => {
  if (e.paymentRequestOrigin) {...}
  if (e.topOrigin) {...}
  if (e.methodData && e.methodData.length > 0) {...}
  if (e.modifiers && e.modifiers.length > 0) {...}
  ...
});

Prova la modifica localmente

Per abilitare la modifica localmente a scopo di sviluppo:

  1. Utilizza Chrome 108, 109 o 110.
  2. Inserisci chrome://flags/#clear-identity-in-can-make-payment nella barra degli URL.
  3. Attiva il flag.
  4. Riavvia Chrome.

Se attivi il flag, i campi dell'identità nell'evento canmakepayment verranno svuotati (e l'intent IS_READY_TO_PAY di Android).

Attiva la modifica in produzione

Puoi anche attivare la modifica in produzione a scopo di test prima che venga effettivamente implementata in Chrome. Questo meccanismo è chiamato prova dell'origine.

Origin trials ti consente di provare nuove funzionalità e fornire feedback sulla loro usabilità, praticità ed efficacia alla community degli standard web. Per maggiori informazioni, consulta la Guida alle prove dell'origine per gli sviluppatori web. Per registrarti a questa o a un'altra prova dell'origine, visita la pagina di registrazione.

Per registrare una prova dell'origine:

  1. Richiedi un token per la tua origine.
  2. Aggiungi il token al file JavaScript del service worker utilizzando un'intestazione HTTP Origin-Trial. L'impostazione delle intestazioni HTTP richiede l'accesso alla configurazione del server. L'intestazione della risposta risultante dovrebbe avere un aspetto simile a questo:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Per visualizzare il token di prova dell'origine nel file service worker, utilizza DevTools o il comando curl nel seguente modo:

$ curl --head <Service Worker JS file URL> | grep -i origin-trial
origin-trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Riattivare i campi dell'identità localmente dopo Chrome 111

Se utilizzi Chrome 111 o versioni successive, i campi dell'identità nell'evento canmakepayment vengono lasciati vuoti. Per riattivare i campi localmente, puoi procedere nel seguente modo:

  1. Utilizza Chrome 111 o versioni successive.
  2. Inserisci chrome://flags/#add-identity-in-can-make-payment nella barra degli URL.
  3. Attiva il flag.
  4. Riavvia Chrome.

Passaggi successivi

È previsto che questa modifica venga attivata per impostazione predefinita a partire da Chrome 111. Puoi iniziare a eseguire i test oggi stesso per prepararti al cambiamento in tempo per il lancio.