> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# $wsPayPalCheckout - PayPal

> Modul $wsPayPalCheckout: PayPal Express Checkout, Google Pay und Apple Pay im Frontend einbinden und den aktuellen Zahlungsstatus auswerten.

Mit dem `$wsPayPalCheckout` Modul können Sie PayPal-Zahlungsdaten dynamisch im Frontend verwenden. Es unterstützt verschiedene Zahlungsmethoden wie PayPal Express Checkout, Google Pay und Apple Pay. In diesem Abschnitt erfahren Sie, wie Sie den Zahlungsstatus abfragen und die Payment-Daten für die Integration nutzen können.

***

## Modulübersicht

**Beispiel / Ausschnitt über** `$wsPayPalCheckout`

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{= $wsPayPalCheckout | json }}
```

**JSON-Ausgabe**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "integrationDate": "...",
  "status": "...",
  "paymentCanceled": false,
  "paymentFailed": false,
  "paymentDeclined": false,
  "expressCheckout": false,
  "expressCheckoutGooglePay": false,
  "expressCheckoutApplePay": false,
  "googlePay": {
    "paymentData": "...",
    "transactionInfo": {
      "countryCode": "...",
      "currencyCode": "...",
      "displayItems": [...],
      "totalPrice": "...",
      "totalPriceLabel": "...",
      "totalPriceStatus": "..."
    }
  },
  "applePay": {
    "billingContact": { },
    "brandName": "...",
    "payLineItems": [...],
    "paymentData": "...",
    "shippingOptions": [...]
  },
  "loadData": "ƒ()"
}
```

**Anmerkung:** `ƒ()` kennzeichnet eine Funktion.

**Variablen und Methoden in der Übersicht**

| **Variable**               | **Rückgabe-Typ** | **Beschreibung**                                   |
| -------------------------- | ---------------- | -------------------------------------------------- |
| `integrationDate`          | string           | Gibt das PayPal Checkout Integrationsdatum aus.    |
| `status`                   | string           | Gibt den aktuellen Payment-Status der Session aus. |
| `paymentCanceled`          | bool             | Gibt an, ob die Zahlung abgebrochen wurde.         |
| `paymentFailed`            | bool             | Gibt an, ob die Zahlung fehlgeschlagen ist.        |
| `paymentDeclined`          | bool             | Gibt an, ob die Zahlung abgelehnt wurde.           |
| `expressCheckout`          | bool             | Gibt an, ob PayPal Express Checkout möglich ist.   |
| `expressCheckoutGooglePay` | bool             | Gibt an, ob Google Pay Express möglich ist.        |
| `expressCheckoutApplePay`  | bool             | Gibt an, ob Apple Pay Express möglich ist.         |
| `googlePay`                | map              | Gibt Google-Pay-spezifische Daten aus.             |
| `applePay`                 | map              | Gibt Apple-Pay-spezifische Daten aus.              |
| `loadData()`               | map              | Lädt alle Payment-Daten für PayPal Checkout.       |

***

## Templates

Das \$wsPayPalCheckout Modul wird typischerweise im Checkout-Bereich verwendet, insbesondere auf der Zahlungsseite und der Bestellbestätigung. Die PayPal-Buttons können auch auf Produktseiten oder im Warenkorb für Express-Checkout eingebunden werden.

***

## Variablen

### \$wsPayPalCheckout.integrationDate

Gibt das Integrationsdatum der PayPal-Anbindung aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Integrationsdatum: {{= $wsPayPalCheckout.integrationDate }}
```

### \$wsPayPalCheckout.status

Gibt den Status der PayPal-Zahlung aus(leer, wenn kein Zahlungsvorgang aktiv).

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Status: {{= $wsPayPalCheckout.status }}
```

### \$wsPayPalCheckout.paymentCanceled

Gibt `true` aus, wenn der Kunde die Zahlung abgebrochen hat.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsPayPalCheckout.paymentCanceled }}
    // Zahlung wurde abgebrochen
{{ /if }}
```

### \$wsPayPalCheckout.paymentFailed

Gibt `true` aus, wenn ein technischer Fehler bei der Zahlung aufgetreten ist.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsPayPalCheckout.paymentFailed }}
    // Zahlung ist fehlgeschlagen
{{ /if }}
```

### \$wsPayPalCheckout.paymentDeclined

Gibt `true` aus, wenn die Zahlung von PayPal oder der Bank abgelehnt wurde.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsPayPalCheckout.paymentDeclined }}
    // Zahlung wurde abgelehnt
{{ /if }}
```

### \$wsPayPalCheckout.expressCheckout

Gibt an, ob PayPal Express Checkout möglich ist.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsPayPalCheckout.expressCheckout }}
    // PayPal Express Checkout anzeigen
{{ /if }}
```

### \$wsPayPalCheckout.expressCheckoutGooglePay

Gibt an, ob Google Pay Express möglich ist.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsPayPalCheckout.expressCheckoutGooglePay }}
    // Google Pay anzeigen
{{ /if }}
```

### \$wsPayPalCheckout.expressCheckoutApplePay

Gibt an, ob Apple Pay Express möglich ist.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsPayPalCheckout.expressCheckoutApplePay }}
    // Apple Pay anzeigen
{{ /if }}
```

### \$wsPayPalCheckout.googlePay

Gibt eine Map mit Google Pay spezifischen Inhalten aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Google-Pay-Daten: {{= $wsPayPalCheckout.googlePay }}
```

### \$wsPayPalCheckout.applePay

Gibt eine Map mit Apple Pay spezifischen Daten aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Apple-Pay-Daten: {{= $wsPayPalCheckout.applePay }}
```

***

## Methoden

### \$wsPayPalCheckout.loadData()

Lädt alle Payment-Daten für PayPal Checkout. Gibt `null` zurück, wenn kein aktiver Zahlungsvorgang vorhanden ist.

**Signatur**\
`$wsPayPalCheckout.loadData(expressCheckout)`

**Rückgabe**\
`Map` - Map mit Payment-Daten oder `null`.

**Parameter**

| **Name**          | **Typ** | **Pflicht** | **Beschreibung**                               |
| ----------------- | ------- | ----------- | ---------------------------------------------- |
| `expressCheckout` | bool    | nein        | `true` lädt zusätzlich Express-Checkout-Daten. |

**Beispiel,** das die Payment-Daten lädt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myPaypalDataVariable = $wsPayPalCheckout.loadData() }}
{{ if $myPaypalDataVariable }}
    // Payment-Daten verfügbar
{{ /if }}
```

<Info>
  Mit Verwendung der Funktion `$wsPayPalCheckout.loadData()` stehen verschiedene Variablen zur Verfügung, um Payment-Daten abzurufen und auszugeben. Nachfolgend eine Übersicht, welche Variablen verfügbar sind.
</Info>

### Payment-Daten (Rückgabe von `$wsPayPalCheckout.loadData()` )

Zunächst ist es notwendig, die Map mit den Payment-Daten, wie im obigen Beispiel dargestellt, einer lokalen Variable zuzuweisen. Diese kann anschließend an verschiedenen Stellen im Template verwendet werden.

**JSON-Ausgabe der Variablen**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "sandbox": true/false,
  "merchantId": "...",
  "payerId": "...",
  "clientId": "...",
  "paymentType": "paypal",
  "languageCode": "...",
  "intent": "capture",
  "approvalUrl": "...",
  "cancelUrl": "...",
  "errorUrl": "...",
  "expressApprovalUrl": "...",
  "getClientToken": "ƒ()",
  "orderId": "...",
  "googlePay": { ... },
  "applePay": { ... }
}
```

**Variablen in der Übersicht**

Allgemeine Eigenschaften:

| **Variable**         | **Typ**  | **Beschreibung**                                                          |
| -------------------- | -------- | ------------------------------------------------------------------------- |
| `sandbox`            | bool     | Gibt an, ob der Sandbox-Modus (Testmodus für Zahlungsarten) aktiv ist.    |
| `merchantId`         | string   | PayPal Merchant-ID.                                                       |
| `payerId`            | string   | PayPal Payer-ID.                                                          |
| `clientId`           | string   | PayPal Client-ID.                                                         |
| `paymentType`        | string   | Zahlungstyp (Standard: “`paypal`”).                                       |
| `languageCode`       | string   | Sprachcode.                                                               |
| `approvalUrl`        | string   | URL für die Payment-Bestätigung.                                          |
| `cancelUrl`          | string   | URL bei Abbruch der Zahlung.                                              |
| `errorUrl`           | string   | URL bei aufgetretenen Fehlern.                                            |
| `expressApprovalUrl` | string   | URL bei erfolgreicher Express-Zahlung.                                    |
| `getClientToken`     | function | Funktion, die den Client-Token für die PayPal-SDK-Integration zurückgibt. |
| `orderId`            | string   | PayPal Order-ID der aktuellen Transaktion.                                |

**Eigenschaften von** **Google Pay und Apple Pay**

Google Pay:

| **Variable**      | **Typ** | **Beschreibung**                             |
| ----------------- | ------- | -------------------------------------------- |
| `paymentData`     | string  | Antwortdaten von Google Pay (unverarbeitet). |
| `transactionInfo` | map     | Map mit Transaktionsinfos von Google Pay.    |

Apple Pay:

| **Variable**      | **Typ** | **Beschreibung**                            |
| ----------------- | ------- | ------------------------------------------- |
| `shippingOptions` | array   | Versandoptionen.                            |
| `billingContact`  | map     | Rechnungsadresse.                           |
| `payLineItems`    | array   | Apple Pay Positionen.                       |
| `brandName`       | string  | Markenname.                                 |
| `paymentData`     | string  | Antwortdaten von Apple Pay (unverarbeitet). |

***

## Aktionen

Für `$wsPayPalCheckout` stehen keine Aktionen zur Verfügung.

***

## Weiterführende Links

* [\$wsCheckout](/frontend/referenz/module/wscheckout)
