Aktualizacja zachowania zdarzenia CanMakePayment w interfejsie Payment Handler API

Interfejs Payment Handler API pozwala dostawcom usług płatniczych udostępnić sprzedawcom możliwość korzystania z ich własnych płatności, a także z interfejsu Payment Request API. Gdy interfejs Payment Request API zostanie zainicjowany za pomocą konstruktora new PaymentRequest(), wywołuje on po cichu zdarzenie canmakepayment z pochodzącymi od sprzedawcy danymi źródłowymi i dowolnymi danymi, które są przesyłane do elementu service worker zarejestrowanego w interfejsie Payment Handler API. Ta komunikacja między domenami nie wymaga interakcji użytkownika i nie wyświetla żadnego interfejsu.

Chrome usunie pola identyfikujące z zdarzenia canmakepayment i zacznie testować origin w Chrome 108.

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

Co się zmienia?

Gdy sprzedawca dzwoni do new PaymentRequest(), zarejestrowany pracownik obsługi otrzymuje zdarzenie canmakepayment (CanMakePaymentEvent), które zawiera te informacje:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

Te informacje zostaną usunięte, a serwis worker otrzyma tylko zdarzenie canmakepayment bez żadnych dodatkowych informacji.

Wykrywanie cech

Aby wykryć, czy zdarzenie canmakepayment zostało zmienione w kodzie usługi, sprawdź odpowiednie właściwości:

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 zmiany lokalnie

Aby włączyć zmianę lokalnie na potrzeby programowania:

  1. Użyj Chrome w wersji 108, 109 lub 110.
  2. Wpisz chrome://flags/#clear-identity-in-can-make-payment na pasku adresu.
  3. Włącz flagę.
  4. Uruchom ponownie Chrome.

Po włączeniu tej opcji pola tożsamości w zdarzeniu canmakepayment zostaną puste (tak samo stanie się z intencją IS_READY_TO_PAY na Androidzie).

Włączanie zmiany w wersji produkcyjnej

Możesz też włączyć zmianę w wersji produkcyjnej na potrzeby testów, zanim zostanie ona faktycznie wprowadzona w Chrome. Ten mechanizm nazywa się próbą pochodzenia.

Wersje próbne origin umożliwiają wypróbowanie nowych funkcji i przekazanie opinii o ich użyteczności, praktyczności i skuteczności społeczności standardów internetowych. Więcej informacji znajdziesz w przewodniku po testowaniu origin dla web developerów. Aby zarejestrować się w ramach tego lub innego okresu próbnego, odwiedź stronę rejestracji.

Aby zarejestrować okres próbny:

  1. Poproś o token dla swojego źródła.
  2. Dodaj token do pliku JavaScript usługi za pomocą nagłówka HTTP Origin-Trial. Aby skonfigurować nagłówki HTTP, musisz mieć dostęp do konfiguracji serwera. Wygenerowany nagłówek odpowiedzi powinien wyglądać mniej więcej tak:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Aby wyświetlić token próbny pochodzenia w pliku usługi, użyj DevTools lub polecenia curl w ten sposób:

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

Włącz ponownie pola tożsamości lokalnie po wydaniu Chrome 111

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

  1. Użyj Chrome 111 lub nowszej wersji.
  2. Wpisz chrome://flags/#add-identity-in-can-make-payment na pasku adresu.
  3. Włącz flagę.
  4. Uruchom ponownie Chrome.

Dalsze kroki

Ta zmiana zostanie włączona domyślnie w Chrome 111. Możesz rozpocząć testy już dziś, aby przygotować się na zmianę czasu rozpoczęcia.