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

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

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

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

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

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

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

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

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

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

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 trial.

Пробные версии 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. Вы можете начать тестирование уже сегодня, чтобы подготовиться к изменению к моменту запуска.