PaymentAddress

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。

PaymentAddress 介面是 Payment Request API 的一部分,用於儲存送貨地址或付款地址資訊。

參考萬國郵聯 (Universal Postal Union) 網站的 Addressing S42 標準材料可能會很有用,這些材料提供了關於國際郵政地址標準的各種資訊。

例項屬性

PaymentAddress.addressLine 只讀 已棄用 非標準

一個字串陣列,提供地址中未包含在其他屬性中的每一行地址。確切的大小和內容因國家或地區而異,例如,可能包含街道名稱、門牌號、公寓號、鄉村投遞路線、描述性說明或郵政信箱號碼。

PaymentAddress.country 只讀 已棄用 非標準

一個字串,指定地址所在國家,使用 ISO-3166-1 alpha-2 標準。該字串始終以其規範的大寫形式給出。一些有效的 country 值示例:"US""GB""CN""JP"

PaymentAddress.city 只讀 已棄用 非標準

包含地址中的城市或城鎮部分的字串。

PaymentAddress.dependentLocality 只讀 已棄用 非標準

一個字串,給出城市內的依賴區域或子區域,例如,一個社群、區、縣或英國的依賴區域。

PaymentAddress.organization 只讀 已棄用 非標準

指定付款地址中的組織、公司、商號或機構名稱的字串。

PaymentAddress.phone 只讀 已棄用 非標準

指定收件人或聯絡人的電話號碼的字串。

PaymentAddress.postalCode 只讀 已棄用 非標準

指定司法管轄區用於郵件路由的程式碼的字串,例如,美國的 ZIP 程式碼或印度的 PIN 程式碼。

PaymentAddress.recipient 只讀 已棄用 非標準

包含付款地址中的收件人、購買者或聯絡人姓名的字串。

PaymentAddress.region 只讀 已棄用 非標準

包含國家/地區最高行政區劃的字串,例如州、省、州或縣。

PaymentAddress.sortingCode 只讀 已棄用 非標準

提供郵政分揀程式碼的字串,例如法國使用的。

注意:未指定值的屬性包含空字串。

例項方法

PaymentAddress.toJSON() 已棄用 非標準

一個標準的序列化器,返回 PaymentAddress 物件屬性的 JSON 表示形式。

示例

在下面的示例中,PaymentRequest() 建構函式用於建立一個新的支付請求,它接受三個物件作為引數——一個包含支付方法的詳細資訊,一個包含實際訂單的詳細資訊(如購買的商品和送貨選項),以及一個可選物件包含更多選項。

這三個物件中的第一個(如下例中的 supportedInstruments)包含一個 data 屬性,該屬性必須符合支付方法定義的結構。

js
const supportedInstruments = [
  {
    supportedMethods: "https://example.com/pay",
  },
];

const details = {
  total: { label: "Donation", amount: { currency: "USD", value: "65.00" } },
  displayItems: [
    {
      label: "Original donation amount",
      amount: { currency: "USD", value: "65.00" },
    },
  ],
  shippingOptions: [
    {
      id: "standard",
      label: "Standard shipping",
      amount: { currency: "USD", value: "0.00" },
      selected: true,
    },
  ],
};

const options = { requestShipping: true };

async function doPaymentRequest() {
  const request = new PaymentRequest(supportedInstruments, details, options);
  // Add event listeners here.
  // Call show() to trigger the browser's payment flow.
  const response = await request.show();
  // Process payment.
  const json = response.toJSON();
  const httpResponse = await fetch("/pay/", { method: "POST", body: json });
  const result = httpResponse.ok ? "success" : "failure";

  await response.complete(result);
}
doPaymentRequest();

一旦使用 PaymentRequest.show() 觸發了支付流程,並且 Promise 成功解決,從已完成的 Promise(上面的 instrumentResponse)中獲得的 PaymentResponse 物件將具有一個包含響應詳細資訊的 PaymentResponse.details 屬性。這必須符合支付方法提供者定義的結構。

瀏覽器相容性