PaymentRequest: свойство shippingAddress
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или всех поддерживающих браузерах.
Устаревшее: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её всё ещё поддерживать, она может быть удалена из соответствующих веб-стандартов, может быть в процессе удаления или сохранена только для совместимости. Избегайте её использования и обновите существующий код, если это возможно; см. таблицу совместимости в нижней части этой страницы для принятия решения. Помните, что эта функция может перестать работать в любое время.
Нестандартно: Эта функция нестандартна и не соответствует стандартам. Не используйте её на производственных сайтах, обращённых к Вебу: она не будет работать для каждого пользователя. Также могут существовать значительные несовместимости между реализациями, и поведение может измениться в будущем.
Свойство shippingAddress только для чтения интерфейса PaymentRequest возвращает адрес доставки, предоставленный пользователем. Оно null по умолчанию.
Значение
Примеры
Как правило, пользовательский агент заполнит значение свойства shippingAddress. Вы можете инициировать это, установив options.requestShipping в true при вызове конструктора PaymentRequest.
В примере ниже стоимость доставки варьируется в зависимости от географического положения. При вызове shippingaddresschange вызывается updateDetails(), чтобы обновить детали PaymentRequest, используя shippingAddress для установки правильной стоимости доставки.
// Initialization of PaymentRequest arguments are excerpted for the sake of
// brevity.
const payment = new PaymentRequest(supportedInstruments, details, options);
payment.addEventListener("shippingaddresschange", (evt) => {
evt.updateWith(
new Promise((resolve) => {
updateDetails(details, request.shippingAddress, resolve);
}),
);
});
payment
.show()
.then((paymentResponse) => {
// Processing of paymentResponse excerpted for brevity.
})
.catch((err) => {
console.error("Uh oh, something bad happened", err.message);
});
function updateDetails(details, shippingAddress, resolve) {
if (shippingAddress.country === "US") {
const 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);
}
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
shippingAddress |
60 | 15 | 55 | 47 | 11.1 | 53 | Нет | 44 | 11.3 | 6.0 | Нет |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PaymentRequest/shippingAddress