Обновление поведения событий 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 в коде сервис-воркера, проверьте соответствующие свойства следующим образом:

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 в строке URL.
  3. Включите флаг.
  4. Перезапустите Хром.

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

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

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

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

Чтобы зарегистрировать пробную версию Origin:

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

Чтобы увидеть пробный токен источника в файле сервисного работника, используйте 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 в строке URL.
  3. Включите флаг.
  4. Перезапустите Хром.

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

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