PaymentResponse: свойство shippingAddress
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Чтение-только свойство shippingAddress интерфейса PaymentRequest возвращает объект PaymentAddress, содержащий адрес доставки, предоставленный пользователем.
Значение
Объект PaymentAddress, предоставляющий подробную информацию об адресе доставки, предоставленном пользователем.
Примеры
Обычно пользовательский агент заполняет свойство shippingAddress за вас. Вы можете активировать это, установив options.requestShipping в true при вызове конструктора PaymentRequest.
В примере ниже стоимость доставки зависит от региона. Когда срабатывает событие shippingaddresschange и оно обрабатывается, вызывается updateDetails(), чтобы обновить данные PaymentRequest, используя shippingAddress для установки правильной стоимости доставки.
// Initialization of PaymentRequest arguments are excerpted for brevity.
const payment = new PaymentRequest(supportedInstruments, details, options);
request.addEventListener("shippingaddresschange", (evt) => {
evt.updateWith(
new Promise((resolve) => {
updateDetails(details, request.shippingAddress, resolve);
}),
);
});
payment
.show()
.then((paymentResponse) => {
// Processing of paymentResponse excerpted for the same of 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);
}
Спецификации
| Спецификация |
|---|
| Payment Request API # shippingaddress-attribute |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | Нет | 41 | 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/PaymentResponse/shippingAddress