Aktualisierung des Ereignisverhaltens „CanMakePayment“ der Payment Handler API

Mit der Payment Handler API können Zahlungsanbieter Händlern ihre benutzerdefinierten Zahlungsmethoden zusammen mit der Payment Request API zur Verfügung stellen. Wenn die Payment Request API über den new PaymentRequest()-Konstruktor initialisiert wird, wird im Hintergrund ein canmakepayment-Ereignis mit dem Ursprung des Händlers und beliebigen Daten an einen Service Worker gesendet, der für die Payment Handler API registriert ist. Für diese ursprungsübergreifende Kommunikation ist keine Nutzeraktion erforderlich und es wird keine Benutzeroberfläche angezeigt.

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

Die Informationen auf dieser Seite gelten nur für Zahlungs-App-Anbieter, die die Payment Handler API verwenden. Wenn Sie das Tool nicht verwenden, können Sie diese Anleitung überspringen.

Was ändert sich?

Wenn ein Händler new PaymentRequest() aufruft, empfängt ein registrierter Service Worker ein canmakepayment-Ereignis (CanMakePaymentEvent), das die folgenden Informationen enthält:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

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

Funktionserkennung

So können Sie erkennen, ob das canmakepayment-Ereignis im Service Worker-Code geändert wurde:

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 für Entwicklungszwecke:

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

Wenn Sie das Flag aktivieren, werden die Identitätsfelder im canmakepayment-Ereignis und im Android-Intent IS_READY_TO_PAY geleert.

Änderung in der Produktion aktivieren

Sie können die Änderung auch in der Produktion aktivieren, um sie zu testen, bevor sie tatsächlich in Chrome eingeführt wird. Dieser Mechanismus wird als Origin Trial bezeichnet.

Mit Ursprungstests können Sie neue Funktionen ausprobieren und der Webstandards-Community Feedback zu ihrer Benutzerfreundlichkeit, Praktikabilität und Effektivität geben. Weitere Informationen finden Sie im Origin Trials Guide for Web Developers. Wenn Sie sich für diesen oder einen anderen Ursprungstest anmelden möchten, rufen Sie die Registrierungsseite auf.

So registrieren Sie einen Ursprungstest:

  1. Token für Ihren Ursprung anfordern
  2. Fügen Sie das Token mit einem Origin-Trial-HTTP-Header in die JavaScript-Datei Ihres Service Workers ein. Zum Festlegen von HTTP-Headern ist Zugriff auf die Konfiguration Ihres Servers erforderlich. Der resultierende Antwortheader sollte in etwa so aussehen:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

So rufen Sie das Origin-Trial-Token in der Service Worker-Datei auf: Verwenden Sie die DevTools oder den curl-Befehl:

$ 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 aktivieren Sie die Felder lokal wieder:

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

Nächste Schritte

Diese Änderung soll ab Chrome 111 standardmäßig aktiviert werden. Sie können noch heute mit dem Testen beginnen, um rechtzeitig zum Start auf die Änderung vorbereitet zu sein.