HTTP Permissions-Policy payment

Typ

Die payment-Direktive steuert den Zugriff auf die Payment Request API für streamlined Checkout-Prozesse.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die Payment Request verwenden dürfen.

http
Permissions-Policy: payment=(self)
Permissions-Policy: payment=(self "https://checkout.payment-provider.com")
Permissions-Policy: payment=()

Direktiven

Die Direktive unterstützt Standard-Allowlist-Werte für präzise Zugriffssteuerung.

self
Erlaubt Payment-Request-Zugriff nur für das Hauptdokument des gleichen Ursprungs. Eingebettete iFrames von anderen Ursprüngen werden blockiert.
origin-list
Liste von Ursprüngen in Anführungszeichen, z.B. "https://pay.stripe.com", die zusätzlich zum Hauptdokument Payment-API verwenden dürfen. Für Payment-Provider-Widgets.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für E-Commerce-Checkout und Subscription-Services.

E-Commerce-Checkout mit Payment Request

Ein Online-Shop nutzt Payment Request API für schnellen Checkout mit gespeicherten Zahlungsmethoden.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: payment=(self)

<!DOCTYPE html>
<html>
<head><title>Checkout</title></head>
<body>
  <button id="pay">Pay Now</button>
  <script>
    document.getElementById('pay').addEventListener('click', async () => {
      const request = new PaymentRequest([{
        supportedMethods: 'basic-card',
        data: {supportedNetworks: ['visa', 'mastercard']}
      }], {
        total: {label: 'Total', amount: {currency: 'EUR', value: '99.99'}}
      });
      const response = await request.show();
      await response.complete('success');
    });
  </script>
</body>
</html>

Platform mit Payment-Provider-Integration

Eine SaaS-Plattform erlaubt einem Payment-Provider-Widget Zugriff auf Payment Request API.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: payment=(self "https://checkout.stripe.com")

<!DOCTYPE html>
<html>
<head><title>Subscription</title></head>
<body>
  <iframe src="https://checkout.stripe.com/payment"
          allow="payment"></iframe>
</body>
</html>

REST-API ohne Payment-API

Ein API-Endpunkt deaktiviert Payment Request für Backend-Payment-Processing.

http
HTTP/1.1 200 OK
Content-Type: application/json
Permissions-Policy: payment=()

{
  "status": "success",
  "order_id": "ORD-12345",
  "payment_url": "https://api.example.com/payment/checkout"
}

Vorteile für die Systemarchitektur

  • Vereinfacht Checkout-Flows mit Browser-gespeicherten Zahlungsmethoden
  • Verhindert unerwünschten Payment-Request-Zugriff durch Drittanbieter
  • Unterstützt nahtlose Mobile-Payment-Integration (Apple Pay, Google Pay)
  • Reduziert Checkout-Friction durch standardisierte Payment-API

Spezifikation

Definiert in der W3C Payment Request API Spezifikation. Erfordert HTTPS und User-Gesture. Unterstützt verschiedene Payment-Handler inklusive Digital-Wallets.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header