Обновление поведения событий CanMakePayment API обработчика платежей.

API обработчика платежей (Payment Handler API) позволяет поставщикам платежей предоставлять продавцам доступ к своему пользовательскому интерфейсу оплаты, как и API запроса платежей ( Payment Request API). При инициализации API запроса платежей с помощью new PaymentRequest() он автоматически запускает событие canmakepayment с указанием источника продавца и произвольными данными для сервисного работника, зарегистрированного для API обработчика платежей (Payment Handler API) . Такое взаимодействие между источниками не требует действий пользователя и не отображает пользовательский интерфейс.

Chrome собирается удалить идентификационные поля из события canmakepayment и начать пробную версию Origin с Chrome 108.

Информация на этой странице актуальна только для поставщиков платёжных приложений, использующих API обработчика платежей. Если вы его не используете, пропустите эти инструкции.

Что меняется?

Когда продавец вызывает new PaymentRequest() , зарегистрированный работник службы получает событие canmakepayment ( CanMakePaymentEvent ), которое содержит следующую информацию:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

Они будут удалены, и сервисный работник просто получит событие canmakepayment без какой-либо дополнительной информации.

Обнаружение особенностей

Чтобы определить, изменилось ли событие canmakepayment в коде сервисного работника, проверьте соответствующие свойства следующим образом:

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

Попробуйте изменения локально

Чтобы включить изменение локально в целях разработки:

  1. Используйте Chrome 108, 109 или 110.
  2. Введите chrome://flags/#clear-identity-in-can-make-payment в адресной строке.
  3. Включить флаг.
  4. Перезапустите Chrome.

При включении флага поля идентификации в событии canmakepayment будут очищены (и намерение Android IS_READY_TO_PAY ).

Включить изменение в производстве

Вы также можете включить изменение в производственную версию для тестирования до того, как оно будет реализовано в Chrome. Этот механизм называется пробной версией.

Пробные версии Origin позволяют вам опробовать новые функции и оставить отзыв об их удобстве использования, практичности и эффективности сообществу веб-стандартов. Подробнее см. в Руководстве по пробным версиям Origin для веб-разработчиков . Чтобы зарегистрироваться на эту или другую пробную версию Origin, посетите страницу регистрации .

Чтобы зарегистрировать оригинальное исследование:

  1. Запросите токен для вашего источника.
  2. Добавьте токен в JavaScript-файл сервис-воркера, используя HTTP-заголовок Origin-Trial . Для настройки HTTP-заголовков требуется доступ к настройке сервера. Заголовок ответа должен выглядеть примерно так:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Чтобы увидеть исходный пробный токен в файле Service Worker, используйте DevTools или команду curl следующим образом:

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

Повторно включите поля идентификации локально после Chrome 111

Если вы используете Chrome 111 или более позднюю версию, поля идентификации в событии canmakepayment остаются пустыми. Чтобы снова включить эти поля локально, выполните следующие действия:

  1. Используйте Chrome 111 или более позднюю версию.
  2. Введите chrome://flags/#add-identity-in-can-make-payment в адресной строке.
  3. Включить флаг.
  4. Перезапустите Chrome.

Следующие шаги

Планируется, что это изменение будет включено по умолчанию в Chrome 111. Вы можете начать тестирование уже сегодня, чтобы подготовиться к изменению к моменту запуска.