安全上下文
此特征只可用于 安全上下文 (HTTPS),在某些或所有 支持浏览器 .

这是 实验性技术
检查 浏览器兼容性表格 要小心谨慎在生产中使用这之前。

shippingAddress 只读特性在 PaymentRequest interface returns a PaymentAddress object containing the shipping address provided by the user.

句法

var shippingAddress = PaymentRequest.shippingAddress;
					

A PaymentAddress object providing details comprising the shipping address provided by the user.

范例

Generally, the user agent will fill the shippingAddress property for you. You can trigger this by setting PaymentOptions.requestShipping to true when calling the PaymentRequest 构造函数。

In the example below, the cost of shipping varies by geography. When the PaymentRequest.onshippingaddresschange is called, updateDetails() is called to update the details of the PaymentRequest ,使用 shippingAddress to set the correct shipping cost.

// Initialization of PaymentRequest arguments are excerpted for brevity.
var payment = new PaymentRequest(supportedInstruments, details, options);
request.addEventListener('shippingaddresschange', function(evt) {
  evt.updateWith(new Promise(function(resolve) {
    updateDetails(details, request.shippingAddress, resolve);
  }));
});
payment.show().then(function(paymentResponse) {
  // Processing of paymentResponse exerpted for the same of brevity.
}).catch(function(err) {
  console.error("Uh oh, something bad happened", err.message);
});
function updateDetails(details, shippingAddress, resolve) {
  if (shippingAddress.country === 'US') {
    var shippingOption = {
      id: '',
      label: '',
      amount: {currency: 'USD', value: '0.00'},
      selected: true
    };
    if (shippingAddress.region === 'MO') {
      shippingOption.id = 'mo';
      shippingOption.label = 'Free shipping in Missouri';
      details.total.amount.value = '55.00';
    } else {
      shippingOption.id = 'us';
      shippingOption.label = 'Standard shipping in US';
      shippingOption.amount.value = '5.00';
      details.total.amount.value = '60.00';
    }
    details.displayItems.splice(2, 1, shippingOption);
    details.shippingOptions = [shippingOption];
  } else {
    delete details.shippingOptions;
  }
  resolve(details);
}
					

规范

规范 状态 注释
支付请求 API 候选推荐 初始定义。

浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request. 更新 GitHub 上的兼容性数据
桌面 移动
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
shippingAddress Chrome 61 Edge 15 Firefox 56 Disabled
56 Disabled
Available only in nightly builds.
Disabled ). To change preferences in Firefox, visit about:config.
IE No Opera No Safari Yes WebView Android No Chrome Android 56
56
不支持 53 — 56 Disabled
Disabled ). To change preferences in Chrome, visit
Firefox Android 56 Disabled
56 Disabled
Available only in nightly builds.
Disabled ). To change preferences in Firefox, visit about:config.
Opera Android No Safari iOS Yes Samsung Internet Android 6.0

图例

完整支持

完整支持

不支持

不支持

见实现注意事项。

用户必须明确启用此特征。

用户必须明确启用此特征。

元数据

  • 最后修改:
  1. 支付请求 API
  2. PaymentResponse
  3. 特性
    1. details
    2. methodName
    3. onpayerdetailchange
    4. payerEmail
    5. payerName
    6. payerPhone
    7. requestId
    8. shippingAddress
    9. shippingOption
  4. 方法
    1. complete()
    2. retry()
  5. 继承:
    1. EventTarget
  6. Related pages for Payment Request API
    1. HTMLIFrameElement.allowPaymentRequest
    2. MerchantValidationEvent
    3. PaymentAddress
    4. PaymentMethodChangeEvent
    5. PaymentRequest
    6. PaymentRequestUpdateEvent

版权所有  © 2014-2026 乐数软件    

工业和信息化部: 粤ICP备14079481号-1