Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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.

js
// 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

Browser-Kompatibilität