Actualización del comportamiento del evento CanMakePayment de la API de Payment Handler

La API de Payment Handler permite a los proveedores de pagos poner a disposición sus experiencias de pagos personalizadas para los comercios, junto con la API de Payment Request. Cuando se inicializa la API de Payment Request a través del constructor new PaymentRequest(), se activa de manera silenciosa un evento canmakepayment con el origen del comercio y los datos arbitrarios para un service worker que está registrado en la API de Payment Handler. Esta comunicación de origen cruzado no requiere un gesto del usuario y no muestra ninguna interfaz de usuario.

Chrome quitará los campos de identificación del evento canmakepayment y comenzará la prueba de origen a partir de Chrome 108.

La información de esta página solo se aplica a los proveedores de apps de pago que usan la API de Payment Handler. Si no la usas, puedes omitir estas instrucciones.

¿Cuáles son los cambios?

Cuando un comercio llama a new PaymentRequest(), un trabajador de servicio registrado recibe un evento canmakepayment (CanMakePaymentEvent) que contiene la siguiente información:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

Estos se quitarán y el service worker simplemente recibirá el evento canmakepayment sin ninguna información adicional.

Detección de atributos

Para detectar si se cambia el evento canmakepayment en el código del trabajador de servicio, examina las propiedades correspondientes de la siguiente manera:

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

Prueba el cambio de forma local

Para habilitar el cambio de forma local con fines de desarrollo, haz lo siguiente:

  1. Usa Chrome 108, 109 o 110.
  2. Ingresa chrome://flags/#clear-identity-in-can-make-payment en la barra de URL.
  3. Habilitar la función experimental.
  4. Reinicia Chrome.

Si habilitas la marca, se vacían los campos de identidad en el evento canmakepayment (y se vacía el intent IS_READY_TO_PAY de Android).

Habilita el cambio en producción

También puedes habilitar el cambio en producción con fines de prueba antes de que se lance en Chrome. Este mecanismo se denomina prueba de origen.

Las pruebas de origen te permiten probar funciones nuevas y enviar comentarios sobre su usabilidad, practicidad y eficacia a la comunidad de estándares web. Si quieres obtener más información, consulta la Guía de pruebas de origen para desarrolladores web. Para registrarte en esta o en otra prueba de origen, visita la página de registro.

Para registrar una prueba de origen, sigue estos pasos:

  1. Solicita un token para tu origen.
  2. Agrega el token a tu archivo JavaScript de service worker con un encabezado HTTP Origin-Trial. Para configurar los encabezados HTTP, debes tener acceso a la configuración del servidor. El encabezado de respuesta resultante debería verse de la siguiente manera:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Para ver el token de prueba de origen en el archivo del service worker, usa las Herramientas para desarrolladores o el comando curl de la siguiente manera:

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

Se vuelven a habilitar los campos de identidad de forma local después de Chrome 111.

Si usas Chrome 111 o versiones posteriores, los campos de identidad en el evento canmakepayment se dejan vacíos. Para volver a habilitar los campos de forma local, puedes hacer lo siguiente:

  1. Usa Chrome 111 o una versión posterior.
  2. Ingresa chrome://flags/#add-identity-in-can-make-payment en la barra de URL.
  3. Habilita la marca.
  4. Reinicia Chrome.

Próximos pasos

Se planea que este cambio se habilite de forma predeterminada a partir de Chrome 111. Puedes comenzar a realizar pruebas hoy para prepararte para el cambio de hora del lanzamiento.