Mise à jour du comportement de l'événement CanMakePayment de l'API Payment Handler

API Payment Handler permet aux fournisseurs de services de paiement de proposer leur expérience de paiement personnalisée marchands, ainsi que l'API Payment Request. Lorsque l'API Payment Request est initialisée via la new PaymentRequest(), il déclenche silencieusement un événement canmakepayment avec l'origine du marchand et des données arbitraires pour un service worker enregistré pour l'API Payment Handler Cette communication multi-origine ne nécessite pas de geste de l'utilisateur n'affiche aucune interface utilisateur.

Chrome supprimera les champs d'identification de l'événement canmakepayment et démarrer la phase d'évaluation à partir de Chrome 108.

Les informations figurant sur cette page ne s'appliquent qu'aux fournisseurs d'applications de paiement qui utilisent l'API Payment Handler. Si vous ne l'utilisez pas, vous pouvez ignorer ces instructions.

Ce qui change

Lorsqu'un marchand appelle new PaymentRequest(), un service worker enregistré reçoit un événement canmakepayment (CanMakePaymentEvent) contenant les informations suivantes:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

qui sont supprimés. Le service worker reçoit simplement canmakepayment sans aucune autre information.

Détection de caractéristiques

Détecter si l'événement canmakepayment est modifié dans le service worker code, examinez leurs propriétés respectives comme suit:

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

Tester la modification en local

Pour activer la modification localement à des fins de développement:

  1. Utilisez Chrome 108, 109 ou 110.
  2. Saisissez chrome://flags/#clear-identity-in-can-make-payment dans la barre d'adresse.
  3. Activez l'indicateur.
  4. Relancez Chrome.

Si vous activez l'indicateur, les champs d'identité de l'événement canmakepayment seront vide (et l'intent IS_READY_TO_PAY Android).

Activer le changement en production

Vous pouvez également activer le changement en production à des fins de test avant qu'il se retrouve réellement dans Chrome. Ce mécanisme est appelé "phase d'évaluation".

Les essais Origin Trial vous permettent de tester de nouvelles fonctionnalités et de donner votre avis la facilité d'utilisation, l'aspect pratique et l'efficacité à la communauté des normes du Web. Pour Pour en savoir plus, consultez le guide des phases d'évaluation à l'attention des développeurs Web. Pour vous inscrire à cette phase d'évaluation ou à une autre, accédez à la page d'inscription.

Pour enregistrer une phase d'évaluation:

  1. Demander un jeton pour votre origine.
  2. Ajoutez le jeton au fichier JavaScript de votre service worker à l'aide d'un Origin-Trial. en-tête HTTP. La définition d'en-têtes HTTP nécessite l'accès à la configuration de votre serveur. L'en-tête de réponse obtenu doit ressembler à ceci:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

Pour afficher le jeton d'essai d'origine sur le fichier de service worker, procédez comme suit : Utilisez les outils de développement ou la commande curl comme suit:

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

Réactiver les champs d'identité localement après Chrome 111

Si vous utilisez Chrome 111 ou une version ultérieure, les champs d'identité canmakepayment événement sont laissés vides. Pour réactiver le paramètre en local, vous pouvez effectuer les opérations suivantes:

  1. Utilisez Chrome 111 ou une version ultérieure.
  2. Saisissez chrome://flags/#add-identity-in-can-make-payment dans la barre d'adresse.
  3. Activez l'indicateur.
  4. Relancez Chrome.

Étapes suivantes

Cette modification devrait être activée par défaut à partir de Chrome 111. Vous pouvez commencer les tests dès aujourd'hui pour vous préparer pour le changement à temps pour le lancement.