Aktualisierung des Ereignisverhaltens „CanMakePayment“ der Payment Handler API

Mit der Payment Handler API können Zahlungsanbieter ihr benutzerdefiniertes Zahlungserlebnis für Händler zusammen mit der Payment Request API verfügbar machen. Wenn die Payment Request API über den Konstruktor new PaymentRequest() initialisiert wird, löst sie im Hintergrund ein canmakepayment-Ereignis mit der Herkunft des Händlers und beliebigen Daten an einen Service Worker aus, der für die Payment Handler API registriert ist. Diese ursprungsübergreifende Kommunikation erfordert keine Nutzergeste und keine Benutzeroberfläche.

Chrome entfernt die identifizierenden Felder aus dem canmakepayment-Ereignis und startet den Ursprungstest über Chrome 108.

Die Informationen auf dieser Seite gelten nur für Anbieter von Zahlungs-Apps, die die Payment Handler API verwenden. Andernfalls können Sie diese Anleitung überspringen.

Was ändert sich?

Wenn ein Händler new PaymentRequest() aufruft, erhält ein registrierter Service Worker ein canmakepayment-Ereignis (CanMakePaymentEvent) mit den folgenden Informationen:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

Sie werden entfernt und der Service Worker empfängt das Ereignis canmakepayment ohne zusätzliche Informationen.

Funktionserkennung

Untersuchen Sie die entsprechenden Attribute, um festzustellen, ob das Ereignis canmakepayment im Service Worker-Code geändert wird:

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

Änderung lokal testen

So aktivieren Sie die Änderung lokal zu Entwicklungszwecken:

  1. Verwenden Sie Chrome 108, 109 oder 110.
  2. Geben Sie in die URL-Leiste chrome://flags/#clear-identity-in-can-make-payment ein.
  3. Aktivieren Sie das Flag.
  4. Starten Sie Chrome neu.

Durch Aktivieren des Flags werden die Identitätsfelder im canmakepayment-Ereignis geleert (und der Android-Intent IS_READY_TO_PAY).

Änderung in Produktion aktivieren

Sie können die Änderung auch zu Testzwecken in der Produktionsumgebung aktivieren, bevor sie in Chrome übernommen wird. Dieser Mechanismus wird als Ursprungstest bezeichnet.

Mit Ursprungstests können Sie neue Funktionen ausprobieren und der Community für Webstandards Feedback zur Nutzerfreundlichkeit, Umsetzbarkeit und Effektivität geben. Weitere Informationen findest du im Leitfaden zu Ursprungstests für Webentwickler. Wenn Sie sich für diesen oder einen anderen Ursprungstest registrieren möchten, rufen Sie die Registrierungsseite auf.

So registrieren Sie einen Ursprungstest:

  1. Fordern Sie ein Token für Ihren Ursprung an.
  2. Fügen Sie das Token mit einem Origin-Trial-HTTP-Header in die Service Worker-JavaScript-Datei ein. Wenn Sie HTTP-Header einrichten, benötigen Sie Zugriff auf die Konfiguration Ihres Servers. Der resultierende Antwortheader sollte in etwa so aussehen:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Zum Aufrufen des Ursprungstesttokens in der Service-Worker-Datei verwenden Sie die Entwicklertools oder den Befehl curl wie hier:

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

Identitätsfelder nach Chrome 111 lokal wieder aktivieren

Wenn Sie Chrome 111 oder höher verwenden, bleiben die Identitätsfelder im canmakepayment-Ereignis leer. So können Sie die Felder lokal wieder aktivieren:

  1. Sie müssen Chrome 111 oder höher verwenden.
  2. Geben Sie in die URL-Leiste chrome://flags/#add-identity-in-can-make-payment ein.
  3. Aktivieren Sie das Flag.
  4. Starten Sie Chrome neu.

Nächste Schritte

Diese Änderung ist für Chrome 111 geplant. Sie können schon heute mit dem Testen beginnen, um sich auf die Änderung pünktlich zum Start vorbereiten zu können.