PaymentManager: enableDelegations() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

PaymentManager 接口的 enableDelegations() 方法将提供所需支付信息的各种部分(例如,通过自动填充从浏览器收集)的责任委托给支付应用程序。

例如,如果在调用 PaymentRequest() 构造函数时,在选项对象中将 requestShipping 选项设置为 true,则会返回送货地址。

  • 如果使用 enableDelegations() 委托了 shippingAddress,则该地址将来自支付应用程序。
  • 否则,它将来自浏览器自动填充。

语法

js
enableDelegations(delegations)

参数

delegations 可选

一个包含一个或多个枚举值的数组,用于指定您希望委托给支付应用程序的支付信息。可能的值包括:

payerEmail

支付应用程序将在需要时提供付款人的电子邮件。

payerName

支付应用程序将在需要时提供付款人的姓名。

payerPhone

支付应用程序将在需要时提供付款人的电话号码。

shippingAddress

支付应用程序将在需要时提供送货地址。

返回值

一个 Promise,它将解析为 undefined

示例

js
navigator.serviceWorker.register("serviceworker.js").then((registration) => {
  registration.paymentManager.userHint = "Card number should be 16 digits";

  registration.paymentManager
    .enableDelegations(["shippingAddress", "payerName"])
    .then(() => {
      // …
    });

  // …
});

规范

规范
Payment Handler API
# dom-paymentmanager-enabledelegations

浏览器兼容性

另见