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

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

shippingAddress 只读特性在 PaymentRequest interface returns the shipping address provided by the user. It is null 在默认情况下。

句法

var paymentAddress = PaymentRequest.shippingAddress;
					

范例

Generally, the user agent will fill the shippingAddress property value. 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 the sake of
//   brevity.
var payment = new PaymentRequest(supportedInstruments, details, options);
payment.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 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 definition of 'shippingaddress' in that specification.
候选推荐 初始定义。

浏览器兼容性

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.

No compatibility data found. Please contribute data for "api.PaymentRequest.shippingAddress" (depth: 1) to the MDN 兼容性数据存储库 .

元数据

  • 最后修改: