Atualização do comportamento do evento CanMakePayment da API Payment Handler

A Payment Handler API permite que os provedores de pagamentos disponibilizem a experiência de pagamento personalizada para os comerciantes, junto com a API Payment Request. Quando a API Payment Request é inicializada pelo construtor new PaymentRequest(), ela dispara silenciosamente um evento canmakepayment com a origem do comerciante e dados arbitrários para um worker de serviço registrado para a API Payment Handler. Essa comunicação entre origens não exige um gesto do usuário e não mostra nenhuma interface do usuário.

O Chrome vai remover os campos de identificação do evento canmakepayment e iniciar o teste de origem do Chrome 108.

As informações nesta página se aplicam apenas aos provedores de apps de pagamento que usam a API Payment Handler. Se você não usa, pule estas instruções.

O que muda?

Quando um comerciante chama new PaymentRequest(), um worker de serviço registrado recebe um evento canmakepayment (CanMakePaymentEvent) que contém as seguintes informações:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

Eles serão removidos, e o service worker simplesmente receberá o evento canmakepayment sem nenhuma informação adicional.

Detecção de recursos

Para detectar se o evento canmakepayment foi alterado no código do service worker, examine as respectivas propriedades da seguinte maneira:

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

Testar a mudança localmente

Para ativar a mudança localmente para fins de desenvolvimento:

  1. Use o Chrome 108, 109 ou 110.
  2. Digite chrome://flags/#clear-identity-in-can-make-payment na barra de URL.
  3. Ative a flag.
  4. Reinicie o Chrome.

Ao ativar a flag, os campos de identidade no evento canmakepayment serão esvaziados (e a intent IS_READY_TO_PAY do Android).

Ativar a mudança na produção

Você também pode ativar a mudança na produção para fins de teste antes de ela ser lançada no Chrome. Esse mecanismo é chamado de teste de origem.

Com eles, você pode testar novos recursos e fornecer feedback sobre a usabilidade, praticidade e eficácia deles à comunidade de padrões da Web. Para mais informações, consulte o Guia de testes de origem para desenvolvedores Web. Para se inscrever neste ou em outro teste de origem, acesse a página de registro.

Para registrar um teste de origem:

  1. Solicite um token para sua origem.
  2. Adicione o token ao arquivo JavaScript do service worker usando um cabeçalho HTTP Origin-Trial. A configuração de cabeçalhos HTTP requer acesso à configuração do servidor. O cabeçalho de resposta resultante será parecido com este:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Para conferir o token de teste de origem no arquivo do service worker, use o DevTools ou o comando curl, desta forma:

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

Reativar os campos de identidade localmente após o Chrome 111

Se você estiver usando o Chrome 111 ou mais recente, os campos de identidade no evento canmakepayment vão ficar vazios. Para reativar os campos localmente, faça o seguinte:

  1. Use o Chrome 111 ou mais recente.
  2. Digite chrome://flags/#add-identity-in-can-make-payment na barra de URL.
  3. Ative a flag.
  4. Reinicie o Chrome.

Próximas etapas

Essa mudança será ativada por padrão no Chrome 111. Você pode começar a testar hoje mesmo para se preparar para a mudança no horário de lançamento.