支付地址

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

已弃用:此功能不再推荐。尽管某些浏览器可能仍然支持它,但它可能已从相关的 Web 标准中删除,可能正在被弃用,或者可能仅出于兼容性目的而保留。避免使用它,并尽可能更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此功能可能随时停止工作。

非标准:此功能是非标准的,并且不在标准轨道上。不要在面向 Web 的生产网站上使用它:它不会对每个用户都起作用。实现之间也可能存在很大的不兼容性,并且行为将来可能会发生变化。

PaymentAddress支付请求 API的接口,用于存储送货或支付地址信息。

建议参考万国邮联网站的地址 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 只读 已弃用 非标准

一个字符串,指定司法管辖区用于邮件路由的代码,例如,美国的邮政编码或印度的 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属性,其中包含响应详细信息。这必须符合支付方式提供商定义的结构。

浏览器兼容性

BCD 表格仅在浏览器中加载