PaymentAddress - 用于存储送货或付款地址信息

安全上下文
该功能仅在部分或所有支持的浏览器中的安全上下文(HTTPS)中可用。

PaymentAddressPayment Request API 的接口,用于存储送货或付款地址信息。

万国邮政联盟网站的 Addressing S42 standard 材料可能会对你有用,该材料提供了有关 “邮政地址” 的国际标准的信息。

属性

PaymentAddress.addressLine 只读

一个 DOMString 对象的数组,提供其他属性中未包括的每一行地址。确切的大小和内容因国家或地区而异,并且可以包括例如街道名称,门牌号,公寓号,农村送货路线,描述性说明或邮政信箱号。

DOMString 对象数组,提供其他属性中未包括的每一行地址。确切的大小和内容因国家或地区而异,并且可以包括例如街道名称,门牌号,公寓号,农村送货路线,描述性说明或邮政信箱号。

PaymentAddress.country 只读

一个 DOMString,使用 ISO-3166-1 alpha-2 标准指定地址所在的国家。字符串始终以规范的大写形式给出。有效的 country 值的一些示例是:"US""GB""CN""JP"

PaymentAddress.city 只读

一个 DOMString,其中包含地址的城市或城镇部分。

PaymentAddress.dependentLocality 只读

一个 DOMString,给出城市内的依赖地区或子地区,例如邻里,自治市镇,地区或英国依赖地区。

PaymentAddress.organization 只读

一个 DOMString,在付款地址指定组织,公司,公司或机构的名称。

PaymentAddress.phone 只读

一个 DOMString,指定接收者或联系人的电话号码。

PaymentAddress.postalCode 只读

一个 DOMString,指定一个司法辖区用于邮件路由的代码,例如,美国的 ZIP 编码或印度的 PIN 码。

PaymentAddress.recipient 只读

一个 DOMString,指定付款地址上收件人,购买者或联系人的姓名。

PaymentAddress.region 只读

一个 DOMString,包含该国家/地区的顶级行政区划,例如州(state),省(province),州(oblast)或州(prefecture)。

PaymentAddress.regionCode 只读

一个 DOMString,指定地址的区域,表示为 ISO3166-2 国家/地区的 “代码元素” 细分名称(例如,澳大利亚的昆士兰州为 “QLD”,加利福尼亚州为 “CA”,依此类推)。

PaymentAddress.sortingCode 只读

一个 DOMString,提供了邮政分类代码,例如法国使用的代码。

注意: 未指定值的属性为空字符串。

过时的属性

以下属性已过时,不应再使用,但在某些浏览器版本中仍可能存在。

PaymentAddress.languageCode 只读

一个 DOMString,指示地址的语言代码。这标识了给出地址的语言,并旨在帮助定位地址的显示。

方法

PaymentAddress.toJSON()

一个标准的序列化程序,返回 PaymentAddress 对象的属性的 JSON 表示形式。

实例

在下面的实例中,PaymentRequest() 构造函数用于创建一个新的付款请求,该请求以三个对象为参数 - 一个包含可以实现以下操作的付款方式的详细信息用于付款,一个包含实际订单的详细信息(例如购买的物品和运输选项),以及一个包含其他选项的可选对象。

这三个中的第一个(在下面的示例中为 supportedInstruments)包含一个 data 属性,该属性必须符合 BasicCardRequest 字典所定义的结构。

const supportedInstruments = [
  {
    supportedMethods: "basic-card",
  },
];

const details = {
  total: { label: "Donation", amount: { currency: "USD", value: "65.00" } },
  displayItems: [
    {
      label: "原始捐款金额",
      amount: { currency: "USD", value: "65.00" },
    },
  ],
  shippingOptions: [
    {
      id: "standard",
      label: "标准运输",
      amount: { currency: "USD", value: "0.00" },
      selected: true,
    },
  ],
};

const options = { requestShipping: true };

async function doPaymentRequest() {
  const request = new PaymentRequest(supportedInstruments, details, options);
  // 在此处添加事件监听器。
  // 调用 show() 以触发浏览器的付款流程。
  const response = await request.show();
  // 处理付款。
  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
成功解析了,则 PaymentResponse 对象将在已解析的 promise 中可用(上述 instrumentResponse),它会有一个 PaymentResponse.details 属性,其中将包含响应详细信息。它必须符合 BasicCardResponse 字典所定义的结构,并且可能看起来像这样:

{
  "cardNumber' : '9999999999999999",
  "cardholderName' : 'Pat Straw",
  "cardSecurityCode" : "999",
  "expiryMonth" : "07",
  "expiryYear" : "2021",
  "billingAddress" : {
    "country" : "GB",
    // 等等。帐单邮寄地址是 PaymentAddress 对象
  }
}

规范

规范 状态 备注
Payment Request API
PaymentAddress 的定义
候选推荐 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持61 支持561 不支持 不支持 支持
addressLine6115561 不支持 不支持 支持
city6115561 不支持 不支持 支持
country6115561 不支持 不支持 支持
dependentLocality6115561 不支持 不支持 支持
languageCode611556 — 631 不支持 不支持 未知
organization6115561 不支持 不支持 支持
phone6115561 不支持 不支持 支持
postalCode6115561 不支持 不支持 支持
recipient6115561 不支持 不支持 支持
region6115561 不支持 不支持 支持
regionCode 不支持 未知641 不支持 不支持 未知
sortingCode6115561 不支持 不支持 支持
toJSON()6115621 不支持 不支持 支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 不支持53 未知561 未知 不支持 支持
addressLine 不支持53 未知561 未知 不支持 支持
city 不支持53 未知561 未知 不支持 支持
country 不支持53 未知561 未知 不支持 支持
dependentLocality 不支持53 未知561 未知 不支持 支持
languageCode 不支持53 未知56 — 631 未知 不支持 未知
organization 不支持53 未知561 未知 不支持 支持
phone 不支持53 未知561 未知 不支持 支持
postalCode 不支持53 未知561 未知 不支持 支持
recipient 不支持53 未知561 未知 不支持 支持
region 不支持53 未知561 未知 不支持 支持
regionCode 不支持 不支持 未知641 未知 不支持 未知
sortingCode 不支持53 未知561 未知 不支持 支持
toJSON() 不支持61 未知621 未知 不支持 支持

1. 仅在每晚的构建版本中可用。要求 dom.payments.request.supportedRegions 中用逗号描述的列表包含一个或多个受支持的 2 字符 ISO 语言环境,当前为 US 和 CA。