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) {...}
...
});
Попробуйте изменения локально
Чтобы включить изменение локально в целях разработки:
- Используйте Chrome 108, 109 или 110.
- Введите
chrome://flags/#clear-identity-in-can-make-payment
в адресной строке. - Включите флаг.
- Перезапустите Chrome.
При включении флага поля идентификации в событии canmakepayment
будут очищены (и намерение Android IS_READY_TO_PAY
будет отключено).
Включить изменение в производстве
Вы также можете включить изменение в производстве для целей тестирования, прежде чем оно фактически попадет в Chrome. Этот механизм называется origin trial.
Пробные версии Origin позволяют вам попробовать новые функции и дать отзыв об их удобстве использования, практичности и эффективности сообществу веб-стандартов. Для получения дополнительной информации см. Руководство по пробным версиям Origin для веб-разработчиков . Чтобы зарегистрироваться для этой или другой пробной версии Origin, посетите страницу регистрации .
Чтобы зарегистрировать оригинальное испытание:
- Запросите токен для вашего источника.
- Добавьте токен в файл 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
остаются пустыми. Чтобы снова включить поля локально, вы можете сделать следующее:
- Используйте Chrome 111 или более позднюю версию.
- Введите
chrome://flags/#add-identity-in-can-make-payment
в адресной строке. - Включите флаг.
- Перезапустите Chrome.
Следующие шаги
Планируется, что это изменение будет включено по умолчанию в Chrome 111. Вы можете начать тестирование уже сегодня, чтобы подготовиться к изменению к моменту запуска.