Aktualizacja zachowania zdarzenia CanMakePayment w interfejsie Payment Handler API

Interfejs Payment Handler API, wraz z interfejsem Payment Request API, umożliwia dostawcom usług płatniczych udostępnianie sprzedawcom niestandardowych metod płatności. Po zainicjowaniu interfejsu Payment Request API za pomocą konstruktora new PaymentRequest() wywołuje on zdarzenie canmakepayment ze źródłem sprzedawcy i dowolnymi danymi do skryptu service worker zarejestrowanego na potrzeby interfejsu Payment Handler API. Ta komunikacja z innych domen nie wymaga gestu użytkownika i nie wyświetla żadnego interfejsu.

Chrome usunie pola identyfikujące ze zdarzenia canmakepayment i rozpocznie testowanie origin w Chrome 108.

Informacje na tej stronie dotyczą tylko dostawców aplikacji płatniczych, którzy korzystają z interfejsu Payment Handler API. Jeśli nie używasz tej usługi, możesz pominąć te instrukcje.

Co się zmienia?

Gdy sprzedawca wywoła metodę new PaymentRequest(), zarejestrowany skrypt service worker otrzyma zdarzenie canmakepayment (CanMakePaymentEvent) z tymi informacjami:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

Zostaną one usunięte, a skrypt service worker otrzyma po prostu zdarzenie canmakepayment bez żadnych dodatkowych informacji.

Wykrywanie funkcji

Aby wykryć, czy zdarzenie canmakepayment zostało zmienione w kodzie skryptu service worker, sprawdź odpowiednie właściwości w ten sposób:

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

Wypróbuj zmianę lokalnie

Aby włączyć tę zmianę lokalnie do celów programistycznych:

  1. Używaj Chrome 108, 109 lub 110.
  2. Na pasku adresu URL wpisz chrome://flags/#clear-identity-in-can-make-payment.
  3. Włącz flagę.
  4. Uruchom ponownie Chrome.

Gdy włączysz flagę, pola tożsamości w zdarzeniu canmakepayment zostaną opróżnione (i intencja IS_READY_TO_PAY Androida).

Włącz zmianę wersji produkcyjnej

Możesz też włączyć zmianę w wersji produkcyjnej do celów testowych, zanim trafi ona do Chrome. Mechanizm ten jest nazywany testem origin.

Testowanie origin pozwala testować nowe funkcje oraz przekazywać społeczności użytkowników standardów internetowych opinie na temat ich użyteczności, praktyki i skuteczności. Więcej informacji znajdziesz w przewodniku po okresie próbnym dla deweloperów witryn. Aby zarejestrować się w tym lub innym okresie próbnym origin, wejdź na stronę rejestracji.

Aby zarejestrować wersję próbną origin:

  1. Poproś o token dla Twojego źródła.
  2. Dodaj token do pliku JavaScript skryptu service worker za pomocą nagłówka HTTP Origin-Trial. Ustawianie nagłówków HTTP wymaga dostępu do konfigurowania serwera. Nagłówek odpowiedzi powinien wyglądać mniej więcej tak:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Aby wyświetlić token próbny origin w pliku skryptu service worker, użyj Narzędzi deweloperskich lub polecenia curl w ten sposób:

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

Po wprowadzeniu Chrome 111 lokalnie ponownie włącz pola tożsamości

Jeśli używasz Chrome 111 lub nowszej wersji, pola tożsamości w zdarzeniu canmakepayment są puste. Aby ponownie włączyć te pola lokalnie, możesz wykonać te czynności:

  1. używać Chrome 111 lub nowszej wersji,
  2. Na pasku adresu URL wpisz chrome://flags/#add-identity-in-can-make-payment.
  3. Włącz flagę.
  4. Uruchom ponownie Chrome.

Dalsze kroki

Ta zmiana ma być domyślnie włączona od wersji Chrome 111. Możesz zacząć testy już dziś, aby przygotować się na tę zmianę, która nadejdzie w przyszłości.