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 属性。这必须符合支付方法提供者定义的结构。

浏览器兼容性