Aktualizacja zachowania zdarzenia CanMakePayment w interfejsie Payment Handler API

Interfejs Payment Handler API umożliwia dostawcom usług płatniczych udostępnianie sprzedawcom ich własnych rozwiązań płatności, a także korzystanie 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 dane o pochodzeniu sprzedawcy i dowolnymi danymi 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 zdarzenia 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 przesyłanie opinii na temat ich użyteczności, praktyczności i skuteczności do społeczności standardów internetowych. Więcej informacji znajdziesz w przewodniku dla programistów internetowych na temat testowania origin. Aby zarejestrować się w ramach tego lub innego okresu próbnego, wejdź na 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. Powstały 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.