PaymentAddress - 用于存储送货或付款地址信息
PaymentAddress
是 Payment 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 的定义 |
候选推荐 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 61 | 支持 | 561 | 不支持 | 不支持 | 支持 |
addressLine | 61 | 15 | 561 | 不支持 | 不支持 | 支持 |
city | 61 | 15 | 561 | 不支持 | 不支持 | 支持 |
country | 61 | 15 | 561 | 不支持 | 不支持 | 支持 |
dependentLocality | 61 | 15 | 561 | 不支持 | 不支持 | 支持 |
languageCode | 61 | 15 | 56 — 631 | 不支持 | 不支持 | 未知 |
organization | 61 | 15 | 561 | 不支持 | 不支持 | 支持 |
phone | 61 | 15 | 561 | 不支持 | 不支持 | 支持 |
postalCode | 61 | 15 | 561 | 不支持 | 不支持 | 支持 |
recipient | 61 | 15 | 561 | 不支持 | 不支持 | 支持 |
region | 61 | 15 | 561 | 不支持 | 不支持 | 支持 |
regionCode | 不支持 | 未知 | 641 | 不支持 | 不支持 | 未知 |
sortingCode | 61 | 15 | 561 | 不支持 | 不支持 | 支持 |
toJSON() | 61 | 15 | 621 | 不支持 | 不支持 | 支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS 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。