Start · Sprachen · JavaScript · Referenz · PaymentAddress.organization

PaymentAddress.organization

Eigenschaft

Schreibgeschützter String mit dem Namen der Organisation, Firma oder Institution einer über die Payment Request API gelieferten Adresse.

seit JavaScript Veraltet – nur eingeschränkt unterstützt (u. a. Ch deprecated seit ja Kategorie: webapi

Signatur

PaymentAddress.organization

Beschreibung

Die Eigenschaft organization des Interfaces PaymentAddress ist schreibgeschützt. Sie enthält den Namen der Organisation, Firma, des Unternehmens oder der Institution, die zur Adresse gehört, z. B. "Muster GmbH". Hat der Nutzer keine Organisation angegeben, ist der Wert ein leerer String.

Sie begegnet Ihnen vor allem im Checkout über die Payment Request API. Wenn Sie beim Erzeugen eines PaymentRequest die Option requestShipping: true setzen, liefert der Browser nach der Bestätigung durch den Nutzer in PaymentResponse.shippingAddress ein PaymentAddress-Objekt. Dasselbe Objekt finden Sie beim Ereignis shippingaddresschange in PaymentRequest.shippingAddress.

Typische Anwendungsfälle sind B2B-Shops, in denen der Firmenname auf Rechnung oder Lieferschein stehen muss, und die Frage, ob eine Lieferung an eine Geschäftsadresse geht (z. B. wegen der Zustellzeiten).

Beachten Sie: Im Ereignis shippingaddresschange können Browser aus Datenschutzgründen eine gekürzte Adresse übergeben. Dann ist organization oft leer. Den vollständigen Wert gibt es verlässlich erst nach show() in der PaymentResponse.

Rückgabewert

Typ
string
Beschreibung
Name der Organisation oder Firma an der Adresse. Ein leerer String "", wenn keine angegeben wurde oder der Browser den Wert zurückhält.

Beispiele

Firmennamen aus der Lieferadresse lesen

const methods = [{ supportedMethods: 'https://example.com/pay' }];
const details = {
  total: { label: 'Summe', amount: { currency: 'EUR', value: '49.90' } },
  shippingOptions: [{
    id: 'standard', label: 'Standardversand', selected: true,
    amount: { currency: 'EUR', value: '0.00' }
  }]
};

const checkout = async () => {
  const request = new PaymentRequest(methods, details, { requestShipping: true });
  const response = await request.show();
  const { organization, recipient } = response.shippingAddress;

  console.log(organization ? `Lieferung an: ${organization} (z. Hd. ${recipient})` : `Lieferung an: ${recipient}`);
  await response.complete('success');
};

document.querySelector('#buy').addEventListener('click', checkout);
Lieferung an: Muster GmbH (z. Hd. Erika Mustermann)

Geschäftsadresse beim Adresswechsel erkennen

const request = new PaymentRequest(
  [{ supportedMethods: 'https://example.com/pay' }],
  { total: { label: 'Summe', amount: { currency: 'EUR', value: '120.00' } } },
  { requestShipping: true }
);

request.addEventListener('shippingaddresschange', (event) => {
  // Wert kann hier leer sein, weil der Browser die Adresse kürzt
  const isBusiness = request.shippingAddress?.organization?.trim() !== '';
  console.log('Geschäftsadresse:', isBusiness);

  event.updateWith({
    total: { label: 'Summe', amount: { currency: 'EUR', value: '120.00' } },
    shippingOptions: [{
      id: isBusiness ? 'b2b' : 'privat',
      label: isBusiness ? 'Geschäftskunden-Versand' : 'Standardversand',
      selected: true,
      amount: { currency: 'EUR', value: isBusiness ? '0.00' : '4.90' }
    }]
  });
});

request.show().then((res) => res.complete('success'));
Geschäftsadresse: false

Sicherer Zugriff mit Feature-Prüfung

const getOrganization = (address) => {
  if (!address || !('organization' in address)) return null;
  return address.organization || null;
};

// Beispiel mit einem serialisierten Adressobjekt
const address = { organization: 'Stadtwerke Beispielstadt', city: 'Beispielstadt' };
console.log(getOrganization(address));
console.log(getOrganization({ city: 'Berlin', organization: '' }));
Stadtwerke Beispielstadt null

// Wichtig · Fallstricke

  • Veraltet: PaymentAddress ist aus der aktuellen Payment-Request-Spezifikation entfernt worden. Nachfolger ist das Interface ContactAddress mit derselben Eigenschaft organization. Browser unterstützen es nur uneinheitlich: Chromium-Browser und Safari ja, Firefox nie standardmäßig. Prüfen Sie immer vorher mit 'PaymentRequest' in window, ob die API da ist.
  • Leerer String statt null: Fehlt die Angabe, ist der Wert "". Prüfen Sie deshalb auf einen leeren Wert und nicht auf undefined.
  • Datenschutz: Bei shippingaddresschange können Browser Felder wie organization, recipient oder addressLine zurückhalten. Nutzen Sie diese Werte dort nur für eine grobe Einschätzung, etwa der Versandkosten.
  • Schreibgeschützt: Eine Zuweisung hat keine Wirkung. Wenn Sie den Wert ändern müssen, kopieren Sie ihn vorher, z. B. mit address.toJSON().
  • Nur sicherer Kontext: Die Payment Request API funktioniert nur über HTTPS. In iframes ist zusätzlich allow="payment" nötig.
  • Sicherheit: Behandeln Sie den Wert als nicht vertrauenswürdige Nutzereingabe. Geben Sie ihn nicht ungeprüft über innerHTML aus, weil das eine XSS-Lücke öffnet. Verwenden Sie stattdessen textContent.