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

瀏覽器相容性

另見