PaymentManager:enableDelegations() 方法

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

安全上下文: 此功能仅在 安全上下文(HTTPS)中可用,某些或所有 支持的浏览器 中。

enableDelegations() 方法是 PaymentManager 接口的一个方法,它将提供所需付款信息各个部分的责任委派给付款应用程序,而不是从浏览器(例如,通过自动填充)收集这些信息。

例如,如果在调用 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

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅