> ## 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.

# PPP- (PayPal PLUS)

> Die Zahlungsartenwand von PayPal PLUS im Template einbinden: den Container setzen, die Approval-URL für das PayPal-Skript holen, die Rücksprungadressen übergeben und die Antwort auswerten.

PayPal PLUS zeigt dem Käufer nicht eine Zahlungsart, sondern eine ganze Wand davon: PayPal selbst, Lastschrift, Kreditkarte und Rechnungskauf, alle von PayPal bereitgestellt. Diese Wand lädt PayPal als eigenen Bereich in die Seite des Shops.

Die `PPP-`Tags liefern die Bausteine dafür. Sie geben den Container aus, in den PayPal seine Wand einsetzt, holen die Adresse, mit der das PayPal-Skript arbeitet, und übergeben die beiden Adressen, auf die PayPal den Käufer zurückschickt.

Wegweiser: [PayPal PLUS](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/paypal-plus.md)

## Den Container für die Zahlungsartenwand setzen

`PPP-PayPalMethodsDivContainerID` gibt die Kennung des Bereichs aus, in den PayPal seine Zahlungsartenwand lädt. Sie legen den Bereich an, PayPal füllt ihn.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<div id="~PPP-PayPalMethodsDivContainerID~"></div>
```

> [!WARNING]
>
> Der Container muss mindestens einmal ausgegeben worden sein, bevor der Käufer zu PayPal weitergeleitet wird. Das Shopsystem merkt sich diese Ausgabe. Lassen Sie den Container weg, fehlt dem Vorgang eine Voraussetzung.

Legen Sie den Bereich leer und ohne feste Höhe an. Alles Weitere setzt das PayPal-Skript hinein.

## Die Wand ein- und ausblenden

Zwei Klammerungen steuern, wo die Wand erscheint.

| Tag | Greift |
| - | - |
| `PPP-ShowPayPalMethodsAtPayDeliv` | auf der Zahlungs- und Versandartenseite, wenn PayPal PLUS verfügbar ist |
| `PPP-ShowPayPalMethodsAtPlaceOrder` | auf der Bestellübersicht, wenn PayPal PLUS gewählt wurde |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PPP-ShowPayPalMethodsAtPayDeliv}
   <div id="~PPP-PayPalMethodsDivContainerID~"></div>
{/PPP-ShowPayPalMethodsAtPayDeliv}

{!PPP-ShowPayPalMethodsAtPayDeliv}
   <p>PayPal PLUS steht für diese Bestellung nicht zur Verfügung.</p>
{/!PPP-ShowPayPalMethodsAtPayDeliv}
```

> [!WARNING]
>
> `PPP-ShowPayPalMethodsAtPayDeliv` arbeitet ausschließlich auf der Zahlungs- und Versandartenseite `ws_pay_deliv.htm`. Auf der Bestellübersicht gilt es als ungültiges Tag. Für die Bestellübersicht ist `PPP-ShowPayPalMethodsAtPlaceOrder` zuständig.

`PPP-ShowPayPalMethodsAtPlaceOrder` gibt es nur als positive Klammerung. Es stellt sicher, dass die Wand auch beim Schnellbestellen einmal erscheint, wo der Käufer die Zahlungs- und Versandartenseite überspringt.

Beim Auswerten von `PPP-ShowPayPalMethodsAtPayDeliv` stößt das Shopsystem die Prüfung der verfügbaren Zahlungsarten an, falls sie noch nicht gelaufen ist. Die Klammerung sagt Ihnen damit verlässlich, ob PayPal PLUS für diesen Warenkorb überhaupt in Frage kommt.

## Die Angaben für das PayPal-Skript

Das Skript von PayPal braucht zwei Angaben aus dem Shop.

| Tag | Liefert |
| - | - |
| `PPP-ApprovalURL` | die Adresse des bei PayPal angelegten Vorgangs |
| `PPP-CountryCode` | den zweistelligen Ländercode aus der Rechnungsadresse |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PPP-ApprovalURL}
   <script>
      var ppp = PAYPAL.apps.PPP({
         approvalUrl: "~PPP-ApprovalURL~",
         placeholder: "~PPP-PayPalMethodsDivContainerID~",
         country: "~PPP-CountryCode~"
      });
   </script>
{/PPP-ApprovalURL}
```

> [!WARNING]
>
> `PPP-ApprovalURL` ist kein passiver Wert. Beim Auswerten legt das Shopsystem den Vorgang bei PayPal an und rechnet davor bei Bedarf die Summen des Warenkorbs aus. Setzen Sie das Tag deshalb nur dort, wo die Wand auch wirklich erscheinen soll, und nicht vorsorglich auf jeder Seite.

Mehrfaches Setzen auf derselben Seite ist unschädlich. Das Shopsystem fragt je Seitenaufruf nur einmal bei PayPal an.

`PPP-CountryCode` liefert immer einen Wert. Lässt sich aus der Rechnungsadresse kein Ländercode bestimmen, gibt das Tag `DE` aus. Die Klammerung greift deshalb immer, und ein negativer Bereich dafür wird nie angezeigt.

## Die Rücksprungadressen

Nach dem Vorgang bei PayPal kommt der Käufer auf eine der beiden Adressen zurück. Beide liefert das Shopsystem fertig, und beide übergeben Sie an PayPal.

| Tag | Wird aufgerufen |
| - | - |
| `PPP-WSReturnURL` | nach einem erfolgreichen Vorgang |
| `PPP-WSCancelURL` | nach einem Abbruch |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<input type="hidden" name="return_url" value="~PPP-WSReturnURL~">
<input type="hidden" name="cancel_url" value="~PPP-WSCancelURL~">
```

Beide sind ausschließlich Einzel-Tags. Als Klammerung gelten sie als ungültiges Tag.

## Die Antwort von PayPal auswerten

`PPP-ResponseJSONHexCoded` liefert die vollständige Antwort von PayPal zum abgeschlossenen Vorgang, hexkodiert zur Übergabe an die JSON-Schnittstelle. Darüber kommen Sie an einzelne Werte, beispielsweise an die von PayPal tatsächlich verwendete Zahlungsart.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{PPP-ResponseJSONHexCoded}
   ~EJD-SetRawDataHexCodedInput(~PPP-ResponseJSONHexCoded~)~
{/PPP-ResponseJSONHexCoded}
```

Das Tag steht auf der Bestelleingangsbestätigung und in der Bestätigungs-E-Mail zur Verfügung. Vorher liegt die Antwort noch nicht vor.

Referenz: [EJD- (JSON-Schnittstelle)](https://dokumentation.websale.de/v8s/referenz/tags/ejd.md)

## Die Tags im Überblick

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `PPP-PayPalMethodsDivContainerID` | ja | – | – | – |
| `PPP-ShowPayPalMethodsAtPayDeliv` | – | ja | ja | – |
| `PPP-ShowPayPalMethodsAtPlaceOrder` | – | ja | – | – |
| `PPP-ApprovalURL` | ja | ja | ja | – |
| `PPP-CountryCode` | ja | ja | ja | – |
| `PPP-WSReturnURL` | ja | – | – | – |
| `PPP-WSCancelURL` | ja | – | – | – |
| `PPP-ResponseJSONHexCoded` | ja | ja | ja | – |

`PPP-ShowPayPalMethodsAtPayDeliv` gilt nur auf der Zahlungs- und Versandartenseite, `PPP-ShowPayPalMethodsAtPlaceOrder` nur auf der Bestellübersicht. `PPP-ResponseJSONHexCoded` gehört auf die Bestelleingangsbestätigung und in die Bestätigungs-E-Mail. Die beiden Rücksprungadressen sind auf allen Templates zulässig, die übrigen Tags auf beiden Seiten des Bezahlvorgangs.

## Verwandte Themen

* Wegweiser: [PayPal PLUS](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/paypal-plus.md)
* Referenz: [PAY- (Zahlungsarten anzeigen und auswählen)](https://dokumentation.websale.de/v8s/referenz/tags/pay/zahlungsarten-anzeigen-und-auswaehlen.md)
* Referenz: [PPC- (PayPal Checkout)](https://dokumentation.websale.de/v8s/referenz/tags/ppc-paypal-checkout.md)
* Referenz: [EJD- (JSON-Schnittstelle)](https://dokumentation.websale.de/v8s/referenz/tags/ejd.md)


## Related topics

- [PayPal PLUS](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/paypal-plus.md)
- [payment - Zahlungsmethoden](https://dokumentation.websale.de/konfiguration/payment-zahlungsmethoden.md)
- [Zahlungsarten](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/zahlungsarten.md)
- [PayPal](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/paypal.md)
- [PayPal Checkout](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/paypal-checkout.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.