Aktualizacja zachowania zdarzenia CanMakePayment w interfejsie Payment Handler API

Interfejs Payment Handler API pozwala dostawcom usług płatniczych udostępniać sprzedawcom niestandardowe opcje płatności, a także za pomocą 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 płatniczych, którzy korzystają z interfejsu Payment Handler API. Jeśli z niej nie korzystasz, 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 ustalić, czy zdarzenie canmakepayment zmieniło się w kodzie skryptu service worker, 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 pozwalają wypróbować nowe funkcje i przekazać społeczności zajmującej się standardami sieciowymi opinię o ich przydatności, praktyczności i skuteczności. Więcej informacji znajdziesz w przewodniku po testowaniu origin dla web developerów. 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 w ramach 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. Już dziś możesz rozpocząć testy, aby przygotować się na zmianę przed jej rozpoczęciem.