Update van het CanMakePayment-gebeurtenisgedrag van de Payment Handler API

Met de Payment Handler API kunnen betaalaanbieders hun aangepaste betaalervaring beschikbaar stellen aan handelaren, samen met de Payment Request API . Wanneer de Payment Request API wordt geïnitialiseerd via de new PaymentRequest() , wordt er in stilte een canmakepayment -gebeurtenis met de herkomst en willekeurige gegevens van de handelaar geactiveerd naar een service worker die is geregistreerd voor de Payment Handler API . Deze cross-origin communicatie vereist geen gebruikersgebaar en toont geen gebruikersinterface.

Chrome gaat de identificerende velden uit canmakepayment gebeurtenis verwijderen en de oorspronkelijke proefperiode starten vanuit Chrome 108.

De informatie op deze pagina is alleen van toepassing op aanbieders van betaalapps die de Payment Handler API gebruiken. Als u deze niet gebruikt, kunt u deze instructies overslaan.

Wat verandert er?

Wanneer een handelaar new PaymentRequest() aanroept, ontvangt een geregistreerde servicemedewerker een canmakepayment -gebeurtenis ( CanMakePaymentEvent ) die de volgende informatie bevat:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

Deze worden verwijderd en de servicemedewerker ontvangt eenvoudigweg de canmakepayment -gebeurtenis zonder aanvullende informatie.

Functiedetectie

Om te detecteren of de canmakepayment gebeurtenis is gewijzigd in de service worker-code, onderzoekt u de betreffende eigenschappen als volgt:

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

Probeer de verandering lokaal uit

Om de verandering lokaal mogelijk te maken voor ontwikkelingsdoeleinden:

  1. Gebruik Chrome 108, 109 of 110.
  2. Voer chrome://flags/#clear-identity-in-can-make-payment in de URL-balk in.
  3. Schakel de vlag in.
  4. Start Chrome opnieuw.

Door de vlag in te schakelen, worden de identiteitsvelden in de canmakepayment -gebeurtenis leeggemaakt (en de Android IS_READY_TO_PAY intentie ).

Maak verandering in productie mogelijk

Je kunt de wijziging ook in productie inschakelen voor testdoeleinden voordat deze daadwerkelijk in Chrome wordt geïmplementeerd. Dit mechanisme wordt een 'oorsprongsproef' genoemd.

Met Origin-proefversies kunt u nieuwe functies uitproberen en feedback geven over de bruikbaarheid, bruikbaarheid en effectiviteit ervan aan de webstandaardencommunity. Raadpleeg voor meer informatie de Origin Trials Guide for Web Developers . Om u aan te melden voor deze of een andere Origin-proefversie, gaat u naar de registratiepagina .

Om een ​​oorsprongsonderzoek te registreren:

  1. Vraag een token aan voor jouw oorsprong.
  2. Voeg het token toe aan je service worker JavaScript-bestand met behulp van een Origin-Trial HTTP-header. Het instellen van HTTP-headers vereist toegang tot de configuratie van je server. De resulterende responsheader zou er ongeveer zo uit moeten zien:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Om het oorspronkelijke proeftoken in het service worker-bestand te zien, gebruikt u de DevTools of de curl -opdracht zoals hieronder:

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

Identiteitsvelden lokaal opnieuw inschakelen na Chrome 111

Als u Chrome 111 of hoger gebruikt, worden de identiteitsvelden in de gebeurtenis canmakepayment leeg gelaten. Om de velden lokaal weer in te schakelen, kunt u het volgende doen:

  1. Gebruik Chrome 111 of hoger.
  2. Voer chrome://flags/#add-identity-in-can-make-payment in de URL-balk in.
  3. Schakel de vlag in.
  4. Start Chrome opnieuw.

Volgende stappen

Deze wijziging is standaard ingeschakeld vanaf Chrome 111. U kunt vandaag nog beginnen met testen, zodat u voorbereid bent op de wijziging vóór de lancering.