PaymentResponse: shippingAddress Eigenschaft
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more support for this feature? Tell us why.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die schreibgeschützte shippingAddress-Eigenschaft der
PaymentRequest-Schnittstelle gibt ein PaymentAddress-Objekt zurück,
das die vom Benutzer angegebene Lieferadresse enthält.
Wert
Ein PaymentAddress-Objekt, das Details zur
vom Benutzer angegebenen Lieferadresse bereitstellt.
Beispiele
Im Allgemeinen wird die shippingAddress-Eigenschaft standardmäßig vom Benutzeragenten ausgefüllt.
Sie können dies auslösen, indem Sie
options.requestShipping auf true setzen, wenn Sie den
PaymentRequest-Konstruktor aufrufen.
Im untenstehenden Beispiel variieren die Versandkosten je nach geografischer Lage. Wenn das
shippingaddresschange-Ereignis
ausgelöst und empfangen wird, wird updateDetails() aufgerufen, um die Details des
PaymentRequest zu aktualisieren und dabei shippingAddress zu verwenden, um die korrekten
Versandkosten festzulegen.
// 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);
}
Spezifikationen
| Spezifikation |
|---|
| Payment Request API> # shippingaddress-attribute> |