L'API Payment Handler permet aux fournisseurs de services de paiement de proposer leur expérience de paiement personnalisée aux marchands, en plus de l'API Payment Request. Lorsque l'API Payment Request est initialisée via le constructeur new PaymentRequest()
, elle déclenche silencieusement un événement canmakepayment
avec l'origine du marchand et des données arbitraires vers un service worker enregistré pour l'API Payment Handler.
Cette communication cross-origin ne nécessite pas de geste de l'utilisateur et n'affiche aucune interface utilisateur.
Chrome va supprimer les champs d'identification de l'événement canmakepayment
et lancer la phase d'évaluation à partir de Chrome 108.
Les informations de 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
Ils seront supprimés et le service worker recevra simplement l'événement canmakepayment
sans aucune information supplémentaire.
Détection de caractéristiques
Pour détecter si l'événement canmakepayment
est modifié dans le code du service worker, examinez les propriétés correspondantes 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 :
- Utilisez Chrome 108, 109 ou 110.
- Saisissez
chrome://flags/#clear-identity-in-can-make-payment
dans la barre d'adresse. - Activez le flag.
- Relancez Chrome.
Si vous activez ce signalement, les champs d'identité de l'événement canmakepayment
seront vidés (ainsi que l'Intent IS_READY_TO_PAY
Android).
Activer le changement en production
Vous pouvez également activer la modification en production à des fins de test avant qu'elle ne soit réellement déployée dans Chrome. Ce mécanisme s'appelle un test d'origine.
Les essais Origin Trial vous permettent d'essayer de nouvelles fonctionnalités et de donner votre avis sur leur facilité d'utilisation, leur praticité et leur efficacité à la communauté des normes Web. Pour en savoir plus, consultez le guide des versions d'essai de l'origine pour les développeurs Web. Pour vous inscrire à cet essai d'origine ou à un autre, accédez à la page d'inscription.
Pour enregistrer une version d'évaluation de l'origine :
- Demandez un jeton pour votre origine.
- Ajoutez le jeton à votre fichier JavaScript de service worker à l'aide d'un en-tête HTTP
Origin-Trial
. Pour définir des en-têtes HTTP, vous devez avoir accès à la configuration de votre serveur. L'en-tête de réponse obtenu devrait ressembler à ceci :
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...
Pour afficher le jeton d'évaluation de l'origine dans le fichier du service worker, 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é en local après Chrome 111
Si vous utilisez Chrome 111 ou version ultérieure, les champs d'identité de l'événement canmakepayment
sont laissés vides. Pour réactiver les champs localement, procédez comme suit :
- Utilisez Chrome 111 ou version ultérieure.
- Saisissez
chrome://flags/#add-identity-in-can-make-payment
dans la barre d'adresse. - Activez le flag.
- Relancez Chrome.
Étapes suivantes
Cette modification devrait être activée par défaut à partir de Chrome 111. Vous pouvez commencer à tester dès aujourd'hui pour vous préparer au changement d'heure.