{"id":841321,"date":"2026-09-09T12:21:13","date_gmt":"2026-09-09T12:21:13","guid":{"rendered":"https:\/\/www.knowband.com\/blog\/?p=841317\/"},"modified":"2026-09-10T12:11:29","modified_gmt":"2026-09-10T12:11:29","slug":"prestashop-payment-gateway-integration","status":"publish","type":"post","link":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/","title":{"rendered":"Integration eines benutzerdefinierten Zahlungsgateways in PrestaShop: Technische Anforderungen, API-Ablauf und Herausforderungen im Bereich OPC in der Praxis"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Die Integration eines Zahlungsgateways in PrestaShop mag auf dem Papier unkompliziert erscheinen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Das Gateway stellt API-Dokumentation, Sandbox-Zugangsdaten, Authentifizierungsschl\u00fcssel, Callback-URLs und einige Endpunkte bereit. Das PrestaShop-Modul sendet anschlie\u00dfend die Zahlungsanfrage, empf\u00e4ngt die Antwort, erstellt die Bestellung und leitet den Kunden zur Best\u00e4tigungsseite weiter.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In einem realen PrestaShop-Shop arbeitet das Zahlungsgateway jedoch selten allein.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Sobald ein Shop ein One Page Checkout (OPC)-Modul wie SuperCheckout verwendet, k\u00f6nnen mehrere Zahlungsmodule, benutzerdefinierte Zahlungsabl\u00e4ufe, iFrames, JavaScript-basierte Zahlungsmethoden und zus\u00e4tzliche Checkout-Anpassungen miteinander interagieren.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Hier sto\u00dfen viele Zahlungsintegrationen auf Schwierigkeiten.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Im Rahmen der Kompatibilit\u00e4tsarbeiten mit Zahlungsgateways sind wir auf F\u00e4lle gesto\u00dfen, in denen eine Zahlungsmethode im Standard-Checkout von PrestaShop einwandfrei funktionierte, sich aber innerhalb von OPC anders verhielt. Beispielsweise konnte ein Zahlungsanbieter im Standard-Checkout korrekt angezeigt werden, w\u00e4hrend Optionen wie BLIK, Bankauswahl oder BNPL in SuperCheckout nicht mehr verf\u00fcgbar waren.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die wichtigste Erkenntnis war, dass die Integration eines Zahlungs-Gateways nicht nur bedeutet, den API-Aufruf zum Laufen zu bringen. Es geht darum, den gesamten Zahlungszyklus innerhalb des PrestaShop-Checkouts korrekt abzuwickeln.<\/span><\/p>\n<h2><strong>1.0 Was ben\u00f6tigt ein kundenspezifisches Zahlungsgateway tats\u00e4chlich?<\/strong><\/h2>\n<p><a href=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-2-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-841332 size-full\" src=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-2-1.jpg\" alt=\"Was ben\u00f6tigt ein individueller Zahlungsdienstleister eigentlich?\" width=\"700\" height=\"700\" srcset=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-2-1.jpg 700w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-2-1-300x300.jpg 300w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-2-1-150x150.jpg 150w, https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-2-1-60x60.jpg 60w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Im Wesentlichen muss eine PrestaShop-Zahlungsintegration f\u00fcnf Dinge ber\u00fccksichtigen:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Die Zahlungsmethode wird im Bestellvorgang angezeigt.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Senden Sie die Kunden- oder Zahlungsdaten an das Zahlungsportal.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Empfangen und validieren Sie die Gateway-Antwort.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Erstellen oder aktualisieren Sie die PrestaShop-Bestellung korrekt.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Leiten Sie den Kunden zur entsprechenden Best\u00e4tigungs- oder Fehlerseite zur\u00fcck.<\/span><\/li>\n<\/ol>\n<p dir=\"ltr\">Ein typisches Zahlungsmodul erweitert die Basisklasse, anstatt sie zu erweitern.<\/p>\n<p dir=\"ltr\">Das Zahlungsmodul arbeitet normalerweise mit Hooks wie:<\/p>\n<p dir=\"ltr\">Der Hook sorgt daf\u00fcr, dass die Zahlungsmethode im Checkout verf\u00fcgbar ist.<\/p>\n<p dir=\"ltr\">Der Hook steuert, was der Kunde nach der R\u00fcckkehr vom Zahlungsvorgang sieht.<\/p>\n<p><span style=\"font-weight: 400;\">Beispielsweise:<\/span><\/p>\n<pre>public function hookPaymentOptions($params) { if (!$this-&gt;active || !$this-&gt;checkCurrency($params['cart'])) { return []; } $paymentOption = new PaymentOption(); $paymentOption -&gt;setCallToActionText($this-&gt;l('Mit Karte bezahlen')) -&gt;setAction( $this-&gt;context-&gt;link-&gt;getModuleLink( $this-&gt;name, 'redirect', [], true ) ); return [$paymentOption]; }<\/pre>\n<p><span style=\"font-weight: 400;\">Wichtig ist, dass dieser Hook nicht einfach davon ausgehen sollte, dass die Zahlungsmethode immer angezeigt werden kann.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">W\u00e4hrung, Land, Zahlungsdienstleister, Kundenstatus, Warenkorbwert, Modulkonfiguration und Verf\u00fcgbarkeit des Zahlungsgateways k\u00f6nnen Einfluss darauf haben, ob die Zahlungsmethode angezeigt werden soll.<\/span><\/p>\n<h2><strong>2.0 Der Teil, der alles ver\u00e4ndert: OPC<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Der standardm\u00e4\u00dfige PrestaShop-Checkout und ein OPC-Modul verarbeiten Zahlungsmethoden nicht unbedingt auf genau die gleiche Weise.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dies war eine der wichtigsten Erkenntnisse aus der Arbeit mit verschiedenen Zahlungsmodulen.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Bei der Standard-Kasse steuert ein Zahlungsmodul im Allgemeinen die Darstellung seiner eigenen Zahlungsoptionen und den Zahlungsablauf.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Mit einem OPC wird das Checkout-Modul zu einer weiteren Schicht zwischen dem Zahlungsmodul und dem Kunden. Das bedeutet, dass folgende Komponenten interagieren k\u00f6nnen:<\/span><\/p>\n<pre><b>Durch den<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>OPC \/ SuperCheckout<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsm\u00f6glichkeiten<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsmodul<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gateway-API<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gateway-Antwort<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsmodul<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>OPC \/ PrestaShop<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Auftragsbest\u00e4tigung<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Ein Zahlungsmodul kann daher aus API-Sicht v\u00f6llig korrekt sein und dennoch innerhalb eines OPC nicht korrekt funktionieren.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Deshalb sollte die Pr\u00fcfung der Zahlungskompatibilit\u00e4t immer beides umfassen:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">PrestaShop Standard-Checkout<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Der tats\u00e4chliche OPC, der vom Gesch\u00e4ft verwendet wird<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Wenn man nur den Standard-Checkout testet, kann das f\u00e4lschlicherweise den Eindruck erwecken, die Integration sei abgeschlossen.<\/span><\/p>\n<h2><strong>3.0 Ein Beispiel aus der Praxis: Fehlende PayU-Optionen in OPC<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Eines der praktischen Probleme, auf die wir stie\u00dfen, betraf die Zahlungsoptionen von PayU.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Im Standard-Checkout von PrestaShop wurden die verf\u00fcgbaren Zahlungsmethoden von PayU korrekt angezeigt. Im SuperCheckout fehlten jedoch einige Zahlungsoptionen.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Zum Beispiel abh\u00e4ngig von der Konfiguration und dem Warenkorb:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">BLIK war nicht durchgehend sichtbar.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Die Bankauswahlliste wurde nicht korrekt erweitert.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Einige BNPL-\/Zahlungszeilen fehlten.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">In einigen F\u00e4llen erschien BLIK und verschwand dann wieder.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Auf den ersten Blick sah das nach einem Problem mit der PayU-API aus. War es aber nicht.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Der wichtigste Diagnoseschritt war der Vergleich des Zahlungsablaufs zwischen dem Standard-Checkout und SuperCheckout.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Wenn dasselbe Zahlungsmodul im Standard-Checkout funktioniert, aber innerhalb von OPC fehlschl\u00e4gt, sollte die Untersuchung \u00fcber die Gateway-API hinausgehen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Wir m\u00fcssen \u00fcberpr\u00fcfen, wie der OPC die Zahlungsmethoden erstellt und welche Informationen er an die Zahlungsmodule weitergibt.<\/span><\/p>\n<h2><strong>4.0 Die H\u00f6he des Zahlungsbetrags kann die Sichtbarkeit der Zahlungsmethode beeinflussen<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Ein besonders wichtiger Aspekt dieser Untersuchung war der Warenkorbwert. Zahlungsanbieter haben h\u00e4ufig Mindest- und H\u00f6chstbetr\u00e4ge f\u00fcr Transaktionen. Zum Beispiel:<\/span><\/p>\n<pre><b>Bezahlverfahren<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Warenkorbbetrag pr\u00fcfen<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Mindestbetrag? H\u00f6chstbetrag?<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Berechtigt \/ Nicht berechtigt<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Im Rahmen der PayU-Kompatibilit\u00e4tsuntersuchung konnten wir feststellen, dass die Logik zur Filterung der Zahlungsmethoden darin besteht, dass der Warenkorbbetrag die Pr\u00fcfungen der Zahlungsmethoden durchl\u00e4uft.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Der relevante Ablauf umfasste die Warenkorbberechnung und die Filterung der Zahlungsmethoden von PrestaShop, einschlie\u00dflich der Logik rund um Folgendes:<\/span><\/p>\n<pre>Warenkorb::BEIDE<\/pre>\n<p><span style=\"font-weight: 400;\">und:<\/span><\/p>\n<pre><b>PayMethodsCache::checkMinMax<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Dies ist deshalb wichtig, weil eine Zahlungsoption im Bezahlvorgang verschwinden kann, ohne dass die API selbst einen Fehler zur\u00fcckgibt.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Das Zahlungsgateway kann schlichtweg als nicht berechtigt f\u00fcr den vom Zahlungsmodul empfangenen Betrag angesehen werden. Daraus ergibt sich eine wichtige Regel f\u00fcr die Fehlersuche:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Wenn eine Zahlungsoption in einem OPC nicht mehr angezeigt wird, gehen Sie nicht sofort davon aus, dass die Zahlungs-API defekt ist. \u00dcberpr\u00fcfen Sie zun\u00e4chst den Warenkorbwert, die W\u00e4hrung, die Mindest- und H\u00f6chstbetr\u00e4ge sowie die Werte, die die Pr\u00fcfungen zur Zahlungsberechtigung erf\u00fcllen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dies gewinnt noch mehr an Bedeutung, wenn Rabatte, Versandkosten, Steuern, Gutscheine oder individuelle Berechnungen im Bestellprozess ins Spiel kommen.<\/span><\/p>\n<h2><strong>5.0 Warum Zahlungsmethoden im Standard-Checkout funktionieren, aber im SuperCheckout fehlschlagen<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Eine hilfreiche Methode zur Untersuchung dieser Probleme ist der Vergleich der beiden Checkout-Umgebungen.<\/span><\/p>\n<h3><strong>5.1 Standard-PrestaShop-Checkout<\/strong><\/h3>\n<pre><b>Warenkorb<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsoptionenfinder<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsoptionen-Hooks<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsmodule<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsm\u00f6glichkeiten<\/b><\/pre>\n<h3><strong>5.2 OPC-Checkout<\/strong><\/h3>\n<pre><b>Warenkorb<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>SuperCheckout<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsmethoden<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsmodule<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zus\u00e4tzliche OPC-Verarbeitung<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gerenderte Zahlungs-UI<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Der zweite Durchfluss weist zus\u00e4tzliche bewegliche Teile auf.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Deshalb pr\u00fcfen wir bei der Fehlersuche in Zahlungsproblemen nicht nur: \u201eFunktioniert das Zahlungsmodul?\u201c<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Wir \u00fcberpr\u00fcfen: <\/span><span style=\"font-weight: 400;\">Funktioniert das Zahlungsmodul, wenn seine Ausgabe von dieser speziellen Checkout-Implementierung verarbeitet und dargestellt wird?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Diese Unterscheidung sparte eine betr\u00e4chtliche Menge an Fehlersuchezeit.<\/span><\/p>\n<h2><strong>6.0 Die Zahlungsoption ist nur ein Teil der Integration.<\/strong><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Ab PrestaShop 1.7 verwenden Zahlungsmodule im Allgemeinen die \u00e4ltere Methode des Payment Hooks, um Zahlungs-HTML auszugeben.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Eine Zahlungsoption kann beispielsweise folgende Informationen enthalten:<\/span><\/p>\n<pre><b>Zahlungsoption<\/b>\r\n<b>-&gt;setCallToActionText(...)<\/b>\r\n<b>-&gt;setAction(...)<\/b>\r\n<b>-&gt;setInputs(...)<\/b>\r\n<b>-&gt;setAdditionalInformation(...)<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Objekte statt direkt<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Unterschiedliche Gateways erfordern unterschiedliche Kombinationen.<\/span><\/p>\n<h3><strong>6.1 Umleitungsbasiertes Gateway<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Der Kunde klickt auf die Zahlungsmethode und wird zum Zahlungsportal weitergeleitet.<\/span><\/p>\n<pre><b>Zur Kasse<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsoption<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Modulsteuerung<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gateway<\/b><\/pre>\n<h3><strong>6.2 Eingebettetes Zahlungsformular<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Die Zahlungsfelder werden direkt im Checkout angezeigt.<\/span><\/p>\n<pre><b>Zur Kasse<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsoption<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Karten-\/Zahlungsformular<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gateway-API<\/b><\/pre>\n<h3><strong>6.3 Iframe-basierte Zahlung<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Die Schnittstelle des Zahlungsportals ist in den Bezahlvorgang integriert.<\/span><\/p>\n<pre><b>Zur Kasse<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlungsoption<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Iframe<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gateway<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Die letzten beiden Ans\u00e4tze erfordern besondere Aufmerksamkeit, da JavaScript, DOM-Manipulation, das Laden von iFrames und OPC-Aktualisierungen die Zahlungsschnittstelle beeintr\u00e4chtigen k\u00f6nnen.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<h2><strong>7.0 JavaScript wird mit OPC unerl\u00e4sslich.<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Dies ist ein Bereich, der in allgemeinen Leitf\u00e4den zur Zahlungsintegration oft vernachl\u00e4ssigt wird.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ein OPC kann Teile des Checkouts dynamisch aktualisieren, wenn sich die Kundendaten \u00e4ndern:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Lieferadresse<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Land<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Tr\u00e4ger<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Zahlungsmethode<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Abrechnungsdaten<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Versandart<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Wenn das passiert, kann der zahlungsbezogene HTML-Code ersetzt werden.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ein JavaScript-Ereignis, das beim ersten Laden der Seite noch funktionierte, kann daher nach einer AJAX-Aktualisierung m\u00f6glicherweise nicht mehr funktionieren.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Beispielsweise:<\/span><\/p>\n<pre><b>Erster Checkout-Ladevorgang<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Payment JS initialisiert<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Kunde \u00e4ndert Zahlungs-\/Versandinformationen<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>OPC aktualisiert den Zahlungsbereich<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Original DOM ersetzt<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Payment JS ist nicht mehr angeh\u00e4ngt<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Dies kann zu verwirrenden Symptomen f\u00fchren.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die Zahlungsmethode wird m\u00f6glicherweise zun\u00e4chst angezeigt, aber ein Klick darauf hat keine Auswirkung. Ein iFrame kann verschwinden.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Eine Bankenliste k\u00f6nnte nicht weiter erweitert werden.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Eine Zahlungsoption kann erscheinen und wieder verschwinden, nachdem sich ein anderes Feld im Bestellprozess ge\u00e4ndert hat.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Daher erfordern Kompatibilit\u00e4tsarbeiten oft \u00c4nderungen nicht nur im PHP-Code, sondern auch im JavaScript des Zahlungsmoduls.<\/span><\/p>\n<h2><strong>8.0 Ein praktisches Beispiel: SimplyLease + SuperCheckout<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Ein weiteres Beispiel betraf die Integration von SimplyLease mit SuperCheckout. Das Problem beschr\u00e4nkte sich nicht auf die Gateway-API.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Einige Informationen und Rechnerelemente von SimplyLease waren Teil der Checkout-\/Zahlungsdarstellung und mussten innerhalb des SuperCheckout-Ablaufs korrekt funktionieren.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die Kompatibilit\u00e4ts\u00e4nderungen betrafen sowohl Modulvorlagen als auch die JavaScript-Integration auf SuperCheckout-Seite. Zu den betroffenen Dateien geh\u00f6rten:<\/span><\/p>\n<pre><b>modules\/simplylease\/views\/templates\/hook\/payment_info.tpl modules\/simplylease\/views\/templates\/hook\/product_calculator.tpl<\/b>\r\n\r\n<b>modules\/supercheckout\/controllers\/front\/SupercheckoutCore.php modules\/supercheckout\/views\/js\/front\/supercheckout.js\r\n<\/b><b>modules\/supercheckout\/views\/js\/front\/simplylease_supercheckout.js<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Dies ist ein gutes Beispiel daf\u00fcr, warum die Zahlungskompatibilit\u00e4t manchmal \u00c4nderungen au\u00dferhalb des Zahlungsgateway-Moduls selbst erfordert.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Der Zahlungsanbieter mag die korrekten Daten anzeigen, aber der Bezahlvorgang muss dennoch Folgendes leisten:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Rendere es.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Behalten Sie es bei Aktualisierungen des Bestellvorgangs bei.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Initialisieren Sie das ben\u00f6tigte JavaScript.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Halten Sie die Zahlungsinformationen mit dem aktuellen Warenkorb synchronisiert.<\/span><\/li>\n<\/ol>\n<h2><strong>9.0 Ein weiteres h\u00e4ufiges Problem: Zahlungsmethode wird nicht angezeigt<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Wir stie\u00dfen auch auf F\u00e4lle, in denen eine Zahlungsmethode wie Comfino in SuperCheckout nicht angezeigt wurde, obwohl das Zahlungsmodul selbst installiert und konfiguriert war.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Diese Art von Problem sollte systematisch untersucht werden.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pr\u00fcfen:<\/span><\/p>\n<h3><strong>9.1 Ist das Modul aktiv?<\/strong><\/h3>\n<pre><b>$this-&gt;active<\/b><\/pre>\n<h3><strong>9.2 Wird die W\u00e4hrung unterst\u00fctzt?<\/strong><\/h3>\n<pre><b>$this-&gt;checkCurrency($params['cart'])<\/b><\/pre>\n<h3><strong>9.3 Wird das Land unterst\u00fctzt?<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Manche Zahlungsanbieter schr\u00e4nken die Zahlungsmethoden je nach Land des Kunden ein.<\/span><\/p>\n<h3><strong>9.4 Liegt der Gesamtbetrag im Warenkorb innerhalb der vom Zahlungsanbieter festgelegten Grenzen?<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Minimale und maximale Transaktionswerte k\u00f6nnen verhindern, dass eine Methode angezeigt wird.<\/span><\/p>\n<h3><strong>9.5 Wird der Mobilfunkanbieter unterst\u00fctzt?<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Manche Zahlungsmodule beschr\u00e4nken die Zahlungsmethoden nach Anbieter.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<h3><strong>9.6 Ist OPC-Filterung die Methode?<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Das Zahlungsmodul kann g\u00fcltige Zahlungsmethoden zur\u00fcckgeben, die gesammelt, gefiltert oder gerendert werden.<\/span><span style=\"font-weight: 400;\"> Die OPC kann aber weiterhin die Zahlungsweise \u00e4ndern.<\/span><\/p>\n<h3><strong>9.7 Wird das Element durch JavaScript ausgeblendet oder ersetzt?<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Eine Zahlungsmethode kann technisch gesehen von PHP zur\u00fcckgegeben werden, ist aber im endg\u00fcltigen Bezahlvorgang trotzdem nicht sichtbar.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Aus diesem Grund sind Browser-Entwicklertools bei der Fehlersuche in Zahlungsintegrationen genauso wichtig wie PHP-Protokolle.<\/span><\/p>\n<h2><strong>10.0 Haken, auf die wir tats\u00e4chlich achten m\u00fcssen<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Eine kundenspezifische Zahlungsintegration sollte nicht als Einzel-Hook-Implementierung behandelt werden.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die genauen Schnittstellen h\u00e4ngen von der Architektur des Zahlungsportals und des Bezahlvorgangs ab, einige sind jedoch besonders wichtig.<\/span><\/p>\n<h3>10.1 Zahlungsoptionen<\/h3>\n<p><span style=\"font-weight: 400;\">Dies ist der prim\u00e4re Ansatzpunkt, um die Zahlungsmethode im Checkout-Prozess anzuzeigen.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Es ist f\u00fcr die R\u00fcckgabe verantwortlich<\/span> Zahlungsoptionen <span style=\"font-weight: 400;\">Objekte.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Typische Pr\u00fcfungen umfassen:<\/span><\/p>\n<pre><b>if (!$this-&gt;active) { return [];<\/b>\r\n<b>}<\/b>\r\n<b>if (!$this-&gt;checkCurrency($params['cart'])) { return [];<\/b>\r\n<b>}<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Anschlie\u00dfend k\u00f6nnen zus\u00e4tzliche gatewayspezifische Beschr\u00e4nkungen angewendet werden.<\/span><\/p>\n<h3>10.2 Zahlungsr\u00fcckgaben<\/h3>\n<p><span style=\"font-weight: 400;\">Dies wird verwendet, nachdem der Kunde den Zahlungsvorgang abgeschlossen oder abgebrochen hat. Es kann Folgendes anzeigen:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Bestellnummer<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Zahlungsstatus<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">zus\u00e4tzliche Zahlungsanweisungen<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Gatewayspezifische Informationen<\/span><\/li>\n<\/ul>\n<h3>10.3 actionPresentPaymentOptions<\/h3>\n<p><span style=\"font-weight: 400;\">Dieser Hook wird besonders interessant, wenn mehrere Zahlungsmodule und ein OPC involviert sind.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Es arbeitet mit den zusammengestellten Zahlungsoptionen und kann n\u00fctzlich sein, wenn der Checkout die gesamte Sammlung an Zahlungsoptionen \u00fcberpr\u00fcfen oder \u00e4ndern muss.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dies unterscheidet sich von der Implementierung der Zahlungsoptionen eines einzelnen Zahlungsgateways.<\/span> <span style=\"font-weight: 400;\">Haken.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die Unterscheidung ist wichtig:<\/span><\/p>\n<pre><b>Zahlungsoptionen<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Jedes Zahlungsmodul tr\u00e4gt seine Option bei<\/b>\r\n<b>actionPresentPaymentOptions<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Die zusammengestellten Zahlungsoptionen k\u00f6nnen verarbeitet werden<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Bei der Fehlersuche in Bezug auf die OPC-Kompatibilit\u00e4t kann das Verst\u00e4ndnis daf\u00fcr, wo Zahlungsoptionen erfasst und wo sie letztendlich angezeigt werden, den entscheidenden Unterschied ausmachen, ob man das Problem schnell findet oder stundenlang im Gateway-Modul verbringen muss.<\/span><\/p>\n<h2><strong>11.0 Auftragserstellung: Vertrauen Sie niemals dem Browser<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Sobald die Zahlung beim Zahlungsportal eingegangen ist, ist der n\u00e4chste entscheidende Schritt die Erstellung der Bestellung. Die wichtigste PrestaShop-Methode hierf\u00fcr ist:<\/span><\/p>\n<pre>validateOrder()<\/pre>\n<p><span style=\"font-weight: 400;\">Ein vereinfachtes Beispiel ist:<\/span><\/p>\n<pre><b>$this-&gt;module-&gt;validateOrder(<\/b>\r\n<b>$cart-&gt;id, Configuration::get('PS_OS_PAYMENT'),<\/b>\r\n<b>Bezahlter Betrag<\/b>\r\n<b>$paymentMethod,<\/b>\r\n<b>$message, [],<\/b>\r\n<b>null, falsch,<\/b>\r\n<b>$customer-&gt;secure_key<\/b>\r\n<b>);<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Drei Werte verdienen besondere Beachtung:<\/span><\/p>\n<h3><strong>11.1 Warenkorb-ID<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Der Warenkorb muss zum erwarteten Kunden\/zur erwarteten Sitzung geh\u00f6ren und g\u00fcltig sein.<\/span><\/p>\n<h3><strong>11.2 Zahlungsbetrag<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Nicht blind verwenden:<\/span><\/p>\n<pre><b>$cart-&gt;getOrderTotal()<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">als Beweis daf\u00fcr, dass das Gateway diesen Betrag erhalten hat.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Der Betrag sollte anhand der Antwort des Gateways \u00fcberpr\u00fcft werden.<\/span><\/p>\n<h3><strong>11.3 Sicherer Schl\u00fcssel<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Die Kunden <\/span><span style=\"font-weight: 400;\">muss korrekt dem Warenkorb-\/Bestellprozess zugeordnet sein.<\/span><\/p>\n<h2><strong>12.0 Webhooks m\u00fcssen idempotent sein<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Ein Zahlungsportal kann denselben Webhook mehrmals senden. Zum Beispiel:<\/span><\/p>\n<pre><b>Gateway<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Webhook<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Ihr Server<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>200 Antwort<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Wenn die Antwort ausbleibt:<\/span><\/p>\n<pre><b>Gateway<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Webhook<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Ihr Server<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Antwort verloren<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gateway-Wiederholungsversuche<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Wenn die Integration bei jedem Webhook-Empfang eine Bestellung erstellt, k\u00f6nnen doppelte Bestellungen entstehen. Daher sollte der Callback pr\u00fcfen, ob sich bereits eine Bestellung im Warenkorb befindet, bevor eine weitere erstellt wird. Konzeptionell:<\/span><\/p>\n<pre><b>if ($cart-&gt;OrderExists()) {<\/b>\r\n<b>\/\/ Bereits verarbeitet<\/b>\r\n<b>\/\/ Erfolgreiche Antwort zur\u00fcckgeben<\/b>\r\n<b>}<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Der Webhook-Handler sollte so konzipiert sein, dass er wiederholte Benachrichtigungen sicher verarbeiten kann.<\/span><\/p>\n<h2><strong>13.0 Synchrone vs. asynchrone Zahlung<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Nicht alle Zahlungsanbieter best\u00e4tigen die Zahlung sofort.<\/span><\/p>\n<h3><strong>13.1 Synchron<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Das Zahlungsportal best\u00e4tigt die Transaktion umgehend.<\/span><\/p>\n<pre><b>Durch den<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gateway<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlung genehmigt<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>validateOrder()<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>PS_OS_ZAHLUNG<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Best\u00e4tigung<\/b><\/pre>\n<h3><strong>13.2 Asynchron<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Der Kunde kann vor Erhalt der endg\u00fcltigen Zahlungsbest\u00e4tigung zur\u00fcckkehren.<\/span><\/p>\n<pre><b>Durch den<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gateway<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gehen Sie zum Speicher zur\u00fcck<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Ausstehende Bestellung<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Webhook<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlung pr\u00fcfen<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Status der Auftrags\u00e4nderung<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Zahlung akzeptiert<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Bei asynchronen Zahlungsgateways ist die Verwendung eines dedizierten Status \u201eAuftrag ausstehend\u201c oft sicherer als die sofortige Kennzeichnung des Auftrags als bezahlt.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Sobald der Webhook die Zahlung best\u00e4tigt hat:<\/span><\/p>\n<pre><b>$history = new OrderHistory();<\/b>\r\n<b>$history-&gt;id_order = (int) $order-&gt;id;<\/b>\r\n<b>$history-&gt;changeIdOrderState( Configuration::get('PS_OS_PAYMENT'),<\/b>\r\n<b>$Bestellung<\/b>\r\n<b>);<\/b>\r\n<b>$history-&gt;addWithemail(true);<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Dadurch wird sichergestellt, dass der Bestellstatus\u00fcbergang \u00fcber den Bestellhistorienmechanismus von PrestaShop erfolgt und nicht einfach der Datenbankwert ge\u00e4ndert wird.<\/span><\/p>\n<h2><strong>14.0 Eine der n\u00fctzlichsten Debugging-Techniken: Vergleich der Checkout-Abl\u00e4ufe<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Wenn eine Zahlungsmethode im Standard-Checkout funktioniert, aber nicht im OPC-Checkout, empfehlen wir, den gesamten Ablauf zu vergleichen.<\/span><\/p>\n<h3><strong>Schritt 1: PHP \u00fcberpr\u00fcfen<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Ist hookPaymentOptions() <\/span><span style=\"font-weight: 400;\">ausgef\u00fchrt?<\/span><\/p>\n<h3><strong>Schritt 2: \u00dcberpr\u00fcfen Sie die zur\u00fcckgegebenen Optionen<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Gibt das Zahlungsmodul tats\u00e4chlich einen Wert zur\u00fcck?<\/span> Zahlungsoption<span style=\"font-weight: 400;\">?<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<h3><strong>Schritt 3: Warenkorb \u00fcberpr\u00fcfen<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Vergleichen Sie:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">gesamt<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">W\u00e4hrung<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Kunde<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Land<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Tr\u00e4ger<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">exklusive Rabatte <\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Steuern<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Versand<\/span><\/li>\n<\/ul>\n<h3><strong>Schritt 4: \u00dcberpr\u00fcfen Sie den Browser<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Suchen:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">JavaScript-Fehler<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">fehlende DOM-Elemente<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">AJAX-Anfragen<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">fehlgeschlagene Anfragen<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">iFrame-Fehler<\/span><\/li>\n<\/ul>\n<h3><strong>Schritt 5: \u00dcberpr\u00fcfen Sie den OPC<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Ermitteln Sie, ob SuperCheckout Folgendes ist:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Filtern der Zahlungsoption<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">ersetzt dessen HTML<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Aktualisierung des Zahlungsbereichs<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Die \u00c4nderung des Warenkorbs erfolgt, bevor das Zahlungsmodul ausgef\u00fchrt wird.<\/span><\/li>\n<\/ul>\n<h3><strong>Schritt 6: Gateway \u00fcberpr\u00fcfen<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Erst wenn der lokale Checkout-Prozess best\u00e4tigt ist, sollte die Untersuchung in folgende Bereiche vertieft werden:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">API-Authentifizierung<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Anfragenutzdaten<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Stempel, Unterschrift<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Antwort<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Webhook<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Gateway-Protokolle<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Dieser mehrschichtige Ansatz ist wesentlich schneller, als jedes Mal mit der Gateway-API zu beginnen.<\/span><\/p>\n<h2><strong>15.0 H\u00e4ufige Probleme bei der Zahlungsintegration, die wir beobachtet haben<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Kompatibilit\u00e4tspr\u00fcfungen in der Praxis decken in der Regel Probleme auf, die aus der Gateway-Dokumentation nicht ersichtlich sind.<\/span><\/p>\n<h3><strong>15.1 Die Zahlungsoption verschwindet<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">M\u00f6gliche Ursachen:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">nicht unterst\u00fctzte W\u00e4hrung<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">L\u00e4nderbeschr\u00e4nkung<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Warenkorbmenge au\u00dferhalb der Gateway-Limits<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Beschr\u00e4nkung des Anbieters<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">OPC-Filterung<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Konfiguration des Zahlungsmoduls<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">JavaScript, das die Methode ausblendet<\/span><\/li>\n<\/ul>\n<h3><strong>15.2 BLIK oder eine andere Zahlungsoption erscheint und verschwindet<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">M\u00f6gliche Ursachen:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Checkout-AJAX-Aktualisierung<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Zahlungsoption erneut rendern<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">JavaScript-Initialisierung<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Warenkorbwert \u00e4ndert sich<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Die Zulassungsvoraussetzungen werden neu berechnet<\/span><\/li>\n<\/ul>\n<h3><strong>15.3 Die Bankenliste wird nicht erweitert<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">H\u00e4ufig untersuchen:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">JavaScript-Fehler<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">dynamisch ersetzte DOM-Elemente<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ereignisbehandler wurden vor der OPC-Aktualisierung angeh\u00e4ngt.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">JavaScript-Initialisierung des Zahlungsanbieters<\/span><\/li>\n<\/ul>\n<h3><strong>15.4 Iframe verschwindet<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Untersuchen:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Aktualisierung des Kassenvorgangs<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">iFrame-Initialisierung<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">DOM-Ersatz<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">JavaScript-Ausf\u00fchrung nach AJAX-Aktualisierungen<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<\/ul>\n<h3><strong>15.5 Zahlung erfolgreich, Bestellung bleibt aber ausstehend<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Pr\u00fcfen:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Webhook-URL<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Webhook-Zustellung<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Signaturpr\u00fcfung<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Warenkorb-\/Bestellabfrage<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ordnungszustands\u00fcbergang<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Callback-Authentifizierung<\/span><\/li>\n<\/ul>\n<h3><strong>15.6 Die Zahlungsmethode funktioniert im Standard-Checkout, aber nicht im OPC-Checkout.<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Dies ist ein starkes Indiz daf\u00fcr, dass das Problem eher in der Interaktion zwischen dem Zahlungsmodul und dem OPC als in der Gateway-API selbst liegt.<\/span><\/p>\n<h2><strong>16.0 Sicherheitsanforderungen an ein Zahlungsmodul<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Da Zahlungsmodule sensible Vorg\u00e4nge verarbeiten, darf Sicherheit nicht als optionale Verbesserung betrachtet werden. Mindestens erforderlich:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Callback-Signaturen validieren.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\u00dcberpr\u00fcfen Sie die Beziehung zwischen Warenkorb und Kunde.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Verwenden Sie HTTPS.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">TLS-Zertifikate validieren.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Vertrauen Sie niemals ausschlie\u00dflich dem Zahlungsstatus, der vom Browser angezeigt wird.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Speichern Sie niemals Rohdaten von Kartendaten, es sei denn, die Architektur und die Compliance-Anforderungen lassen dies ausdr\u00fccklich zu.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Sensible Zahlungsinformationen d\u00fcrfen nicht protokolliert werden.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<pre><span style=\"font-weight: 400;\">Vermeiden Sie serialize() und unserialize(). <\/span>\/ f\u00fcr nicht vertrauensw\u00fcrdige externe Daten.<\/pre>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Eingehende Werte pr\u00fcfen und umwandeln.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Sch\u00fctzen Sie benutzerdefinierte AJAX- und Callback-Endpunkte.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Verwenden Sie gegebenenfalls sichere Token.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Die Webhook-Verarbeitung soll idempotent sein.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Eine Zahlungsbest\u00e4tigungsseite ist kein Zahlungsnachweis.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die vom Gateway verifizierte serverseitige Antwort sollte dar\u00fcber entscheiden, ob die Bestellung als bezahlt gilt.<\/span><\/p>\n<h2><strong>17.0 Was \u00e4ndert sich bei der Unterst\u00fctzung mehrerer Zahlungsmodule?<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Eine weitere Erkenntnis aus der Arbeit zur OPC-Kompatibilit\u00e4t ist, dass das Hinzuf\u00fcgen eines zweiten oder dritten Zahlungsmoduls Probleme aufdecken kann, die nicht sichtbar waren, als nur eine Zahlungsmethode existierte.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Beispielsweise:<\/span><\/p>\n<pre><b>PayPal <\/b><b>PayU<\/b>\r\n<b>Comfino<\/b>\r\n<b>SimplyLease<\/b>\r\n<b>Bank\u00fcberweisung<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Alle diese Zahlungsoptionen k\u00f6nnen zum selben Checkout beitragen. Der Checkout muss daher mit verschiedenen Zahlungsarten umgehen:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">HTML-Strukturen<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">JavaScript<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Anforderungen an iFrames<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Umleitungen<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">API-Abl\u00e4ufe<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Zulassungsregeln<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Mindest-\/H\u00f6chstbetr\u00e4ge<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">asynchrone R\u00fcckrufe<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Eine \u00c4nderung an einer Zahlungsmethode kann versehentlich Auswirkungen auf andere haben. Deshalb sollten Korrekturen zur Verbesserung der Zahlungskompatibilit\u00e4t eng gefasst sein.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Anstatt beispielsweise die gesamte Logik der Zahlungsoptionenverarbeitung global zu \u00e4ndern, sollte man die jeweilige Zahlungsmethode identifizieren und die Kompatibilit\u00e4tsbehandlung nur dort anwenden, wo sie erforderlich ist.<\/span><\/p>\n<h2><strong>18.0 Die Tests sollten reale Warenkorb-Szenarien umfassen.<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Es gen\u00fcgt nicht, ein Zahlungsportal mit einem einfachen Produkt im Wert von 10 \u20ac zu testen. Eine ordnungsgem\u00e4\u00dfe Testmatrix sollte Folgendes beinhalten:<\/span><\/p>\n<table class=\"table table-hover\">\n<tbody>\n<tr>\n<td><strong>Szenario<\/strong><\/td>\n<td><strong>Was zu \u00fcberpr\u00fcfen ist<\/strong><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Einzelnes Produkt<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Zahlungsoption wird angezeigt<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Mehrere Produkte<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Der korrekte Betrag erreicht das Gateway<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Rabatt<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Der endg\u00fcltige Zahlungsbetrag ist korrekt.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Versandkosten<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Das Gateway empf\u00e4ngt den korrekten Gesamtbetrag<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Steuerrecht<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Der Betrag am Gateway entspricht der Bestellung.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Mindestbetrag am Gateway<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Die Methode wird korrekt angezeigt\/verschwindet korrekt.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Maximaler Gateway-Betrag<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Die Methode wird korrekt angezeigt\/verschwindet korrekt.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Nicht unterst\u00fctzte W\u00e4hrung<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Die Methode ist verborgen.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Nicht unterst\u00fctztes Land<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Die Methode ist verborgen.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Standard-Checkout<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Zahlungsfunktionen<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">OPC<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Zahlungsfunktionen<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Mobile Kasse<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Die Benutzeroberfl\u00e4che funktioniert<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Zahlung fehlgeschlagen<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Korrekter Bestell-\/Zahlungsstatus<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Erfolgreiche Zahlung<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Die Bestellung wurde korrekt erstellt.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Webhook-Wiederholungsversuch<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Keine Doppelbestellung<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Kundenabwanderung<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Keine falsch bezahlte Bestellung<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Gateway-Timeout<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Korrekte Behandlung von ausstehenden\/Fehlern<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">Testen Sie bei OPC-Integrationen auch die Aktualisierung des Checkouts. \u00c4ndern Sie Folgendes:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Adresse<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Tr\u00e4ger<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Land<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Zahlungsmethode<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Menge<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Rabatt<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">und \u00fcberpr\u00fcfen Sie, ob die Zahlungsoptionen nach jeder Aktualisierung noch korrekt sind.<\/span><\/p>\n<h2><strong>19.0 Ein praktischer Entwicklungsansatz<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Ausgehend von den Problemen, die h\u00e4ufig bei realen Integrationen auftreten, ist folgende Entwicklungsreihenfolge sicherer:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<h3><strong>19.1 Das Gateway mit dem Standard-PrestaShop-Checkout kompatibel machen<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Zun\u00e4chst muss Folgendes festgestellt werden:<\/span><\/p>\n<pre><b>Zahlungsoption<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gateway-Anfrage<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Gateway-Antwort<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>validateOrder()<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Best\u00e4tigung<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">funktioniert richtig.<\/span><\/p>\n<h3><strong>19.2 Hinzuf\u00fcgen von Callback-\/Webhook-Verarbeitung<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Die asynchrone Best\u00e4tigung sollte nicht bis zum Schluss aufgeschoben werden.<\/span><\/p>\n<h3><strong>19.3 Korrekte Auftragsstatusbehandlung hinzuf\u00fcgen<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Test:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Erfolg<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Fehler<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">schwebend<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Timeout<\/span><\/li>\n<\/ul>\n<h3><strong>19.4 Test mit realistischen Wagen<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Nutzen Sie Rabatte, Versandkosten, Steuern, verschiedene W\u00e4hrungen und unterschiedliche Gesamtbetr\u00e4ge.<\/span><\/p>\n<h3><strong>19.5 Integration mit OPC<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Erst wenn der grundlegende Gateway-Ablauf stabil ist, sollten Sie die SuperCheckout-Kompatibilit\u00e4t untersuchen.<\/span><\/p>\n<h3><strong>19.6 JavaScript und dynamische Aktualisierungen testen<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Dies ist besonders wichtig f\u00fcr eingebettete Zahlungsformulare, iFrames, BLIK-\/Bankauswahlschnittstellen und andere interaktive Zahlungskomponenten.<\/span><\/p>\n<h3><strong>19.7 Testen Sie alle Zahlungsmethoden gleichzeitig<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Ein Checkout-System, das f\u00fcnf Zahlungsmethoden unterst\u00fctzt, muss als Gesamtsystem getestet werden, nicht als f\u00fcnf isolierte Module.<\/span><\/p>\n<h2><strong>20.0 Sollten Sie ein benutzerdefiniertes Gateway entwickeln oder ein vorhandenes Modul verwenden?<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Nicht jedes Gateway rechtfertigt eine individuelle Integration. Ein individuelles Modul ist sinnvoll, wenn:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Das Gateway ist regional oder Nischenprodukt.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Es gibt kein gepflegtes PrestaShop-Modul.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Das Gateway erfordert benutzerdefinierte Gesch\u00e4ftslogik<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Sie ben\u00f6tigen einen bestimmten Abonnement- oder Abrechnungsablauf.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Sie ben\u00f6tigen Funktionen, die bestehende Module nicht bereitstellen k\u00f6nnen.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Die Entwicklung einer Zahlungsintegration bedeutet aber auch die \u00dcbernahme der Wartungsverantwortung. PrestaShop \u00e4ndert sich.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">PHP \u00e4ndert sich. Gateway-APIs \u00e4ndern sich.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die Sicherheitsanforderungen \u00e4ndern sich. Die Checkout-Module \u00e4ndern sich.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Und schlie\u00dflich \u00e4ndert der Zahlungsanbieter etwas, was eine ansonsten stabile Integration beeintr\u00e4chtigt.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">F\u00fcr g\u00e4ngige Zahlungsgateways kann ein etabliertes und gepflegtes Modul daher deutlich g\u00fcnstiger sein als die jahrelange Pflege eines individuellen Zahlungscodes.<\/span><\/p>\n<h2><strong>21.0 Die wichtigste Erkenntnis aus der PrestaShop-Zahlungsintegration<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Die wichtigste Erkenntnis aus der Arbeit mit Zahlungsportalen ist, dass die API oft nicht der schwierigste Teil ist. Senden:<\/span><\/p>\n<pre><b>API-Anfrage <\/b><span style=\"font-weight: 400;\">\u2192 <\/span><b>API-Antwort<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">ist in der Regel unkompliziert.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Das Schwierige ist alles drumherum:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">\u250c\u2500\u2500 <\/span><b>W\u00e4hrungsregeln<\/b>\r\n<span style=\"font-weight: 400;\">\u251c\u2500\u2500 <\/span><b>Landesregeln<\/b>\r\n<span style=\"font-weight: 400;\">\u251c\u2500\u2500 <\/span><b>Warenkorbmenge<\/b>\r\n<span style=\"font-weight: 400;\">\u251c\u2500\u2500 <\/span><b>Beschr\u00e4nkungen des Mobilfunkanbieters<\/b>\r\n<span style=\"font-weight: 400;\">\u251c\u2500\u2500 <\/span><b>OPC<\/b>\r\n<span style=\"font-weight: 400;\">\u251c\u2500\u2500 <\/span><b>JavaScript<\/b>\r\n<span style=\"font-weight: 400;\">\u251c\u2500\u2500 <\/span><b>Iframes<\/b>\r\n<span style=\"font-weight: 400;\">\u251c\u2500\u2500 <\/span><b>AJAX-Aktualisierungen<\/b>\r\n<span style=\"font-weight: 400;\">\u251c\u2500\u2500 <\/span><b>Webhooks<\/b>\r\n<span style=\"font-weight: 400;\">\u251c\u2500\u2500 <\/span><b>Die Anordnung besagt:<\/b>\r\n<span style=\"font-weight: 400;\">\u2514\u2500\u2500 <\/span><b>Doppelte Benachrichtigungen<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Durch den <\/b><span style=\"font-weight: 400;\">\u2192 <\/span><b>Zur Kasse <\/b><span style=\"font-weight: 400;\">\u2192 <\/span><b>Zahlungsmodul <\/b><span style=\"font-weight: 400;\">\u2192 <\/span><b>Gateway<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Auftragserstellung<\/b>\r\n<span style=\"font-weight: 400;\">\u2193<\/span>\r\n<b>Auftragsbest\u00e4tigung<\/b><\/pre>\n<p><span style=\"font-weight: 400;\">Eine Zahlungsintegration ist nur dann erfolgreich, wenn sich die gesamte Kette einheitlich verh\u00e4lt.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Aus diesem Grund sollte ein Problem wie \u201eBLIK fehlt\u201c oder \u201eDie Bankenliste l\u00e4sst sich nicht \u00f6ffnen\u201c nicht sofort als Gateway-API-Problem behandelt werden.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die eigentliche Ursache k\u00f6nnte eine Berechnung des Warenkorbwerts, eine \u00dcberpr\u00fcfung der Berechtigung f\u00fcr die Zahlungsmethode, eine OPC-Darstellung, eine JavaScript-Initialisierung oder eine AJAX-Aktualisierung sein, die die Zahlungsschnittstelle ersetzt.<\/span><\/p>\n<h2><strong>22.0 Abschlie\u00dfende Checkliste f\u00fcr ein benutzerdefiniertes PrestaShop-Zahlungsgateway<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Bevor Sie die Integration als abgeschlossen betrachten, \u00fcberpr\u00fcfen Sie Folgendes:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Das Zahlungsmodul erweitert<\/span> <strong>Zahlungsmodul<\/strong>.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><b>Zahlungsoptionen <\/b><span style=\"font-weight: 400;\">ist korrekt implementiert.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><b>Zahlungsr\u00fcckgabe <\/b><span style=\"font-weight: 400;\">wird bei Bedarf umgesetzt.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Zahlungsoptionen<\/span> Zahlungsoptionen.<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">W\u00e4hrungsbeschr\u00e4nkungen werden gepr\u00fcft.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">L\u00e4nderspezifische und Fluggesellschaftsbeschr\u00e4nkungen werden gegebenenfalls gepr\u00fcft.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Die Warenkorbsummen wurden \u00fcberpr\u00fcft.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Die Gateway-Antworten werden \u00fcberpr\u00fcft.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Callback-Signaturen werden validiert.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><strong>Bestellung validieren()<\/strong> wird erst nach erfolgreicher Zahlungsbest\u00e4tigung aufgerufen.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Der f\u00fcr die Bestellung verwendete Betrag wird anhand der Antwort des Zahlungsportals validiert.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Webhooks sind idempotent.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Doppelte Benachrichtigungen f\u00fchren nicht zu doppelten Bestellungen.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Die korrekte Reihenfolge der Zust\u00e4nde wird verwendet.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Fehlgeschlagene und ausstehende Zahlungen werden separat behandelt.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Sensible Zahlungsdaten werden niemals unn\u00f6tig protokolliert oder gespeichert.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">HTTPS wird erzwungen.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Der Standard-Checkout von PrestaShop wurde getestet.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">OPC wurde separat getestet.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">JavaScript wurde nach Aktualisierungen des AJAX-Checkouts getestet.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Es wurden Iframes und interaktive Zahlungselemente getestet.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Es wurden mehrere Zahlungsmodule gemeinsam getestet.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Realistische Warenk\u00f6rbe mit Rabatten und Versandkosten wurden getestet.<\/span><\/li>\n<\/ul>\n<h2><strong>Fazit<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Ein individuelles Zahlungsgateway in PrestaShop ist mehr als nur eine API-Integration.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die API ist nur ein Teil der Implementierung. Die eigentliche technische Herausforderung beginnt, wenn das Zahlungsmodul mit dem PrestaShop-Checkout, einem OPC wie SuperCheckout, anderen Zahlungsmodulen, dynamischem JavaScript, Warenkorb-Neuberechnungen und asynchronen Gateway-Callbacks koexistieren muss.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Unsere Erfahrungen mit Kompatibilit\u00e4tsproblemen bei Zahlungen haben uns einen wichtigen Ansatz verdeutlicht: Man muss immer zuerst herausfinden, wo der Fehler auftritt, bevor man den Code \u00e4ndert.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Wird die Zahlungsmethode von PHP nicht zur\u00fcckgegeben, \u00fcberpr\u00fcfen Sie das Zahlungsmodul und dessen Berechtigungsregeln. Gibt PHP die Zahlungsmethode zur\u00fcck, der Kunde sieht sie aber nicht, \u00fcberpr\u00fcfen Sie OPC und Frontend-Rendering. Wird die Benutzeroberfl\u00e4che angezeigt, reagiert aber nicht, \u00fcberpr\u00fcfen Sie JavaScript- und AJAX-Aktualisierungen. Ist die Zahlung erfolgreich, die Bestellung aber noch ausstehend, \u00fcberpr\u00fcfen Sie den Callback und den Bestellstatusablauf.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dieser Ansatz ist wesentlich zuverl\u00e4ssiger als die Annahme, dass jedes Zahlungsproblem ein API-Problem ist.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">F\u00fcr Entwickler, die an PrestaShop-Zahlungsintegrationen arbeiten, sollte das Ziel nicht einfach darin bestehen, dass ein Zahlungsgateway eine Transaktion akzeptiert. Vielmehr geht es darum, den gesamten Zahlungszyklus zuverl\u00e4ssig zu gestalten \u2013 vom ersten Rendern des Checkouts bis zum endg\u00fcltigen, best\u00e4tigten Bestellstatus \u2013, selbst bei der Verwendung mehrerer Zahlungsmethoden und eines benutzerdefinierten OPC-Codes.<\/span><\/p>\n<div class=\"thecontent\">\n<div class=\"thecontent\">\n<p>Wenn Sie Fragen zur Performance oder Migration Ihrer Website haben oder Unterst\u00fctzung ben\u00f6tigen, helfen Ihnen unsere Experten gerne weiter. Kontaktieren Sie das Knowband-Team unter\u00a0<a href=\"\/de\/cdn-cgi\/l\/email-protection#e695939696899492a68d88899184878882c885898b\" target=\"_blank\" rel=\"noopener\"><span class=\"__cf_email__\" data-cfemail=\"f3808683839c8187b3989d9c8491929d97dd909c9e\">[E-Mail gesch\u00fctzt] <\/span><\/a> Heute noch auf der Suche nach zuverl\u00e4ssigen E-Commerce-Plugins, die auf Ihre E-Commerce-Anforderungen zugeschnitten sind.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Die Integration eines Zahlungsgateways in PrestaShop mag auf dem Papier unkompliziert erscheinen. Das Gateway stellt API-Dokumentation, Sandbox-Zugangsdaten, Authentifizierungsschl\u00fcssel, Callback-URLs und einige Endpunkte bereit. Das PrestaShop-Modul sendet anschlie\u00dfend die Zahlungsanfrage, empf\u00e4ngt die Antwort, erstellt die Bestellung und leitet den Kunden zur Best\u00e4tigungsseite weiter. In einem realen PrestaShop-Shop arbeitet das Zahlungsgateway jedoch selten allein. Sobald ein Shop [&hellip;]<\/p>\n","protected":false},"author":43,"featured_media":841330,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kbui_enabled":"","footnotes":""},"categories":[31262,2335,32850],"tags":[53332,53315,53246,53248,53336,39332,53323,53338,53247,53334,39318,39345,53317,12784,53335,53333,53229,53328,53329,53340,53321,53326,53319,53330,53331,53339,53313,53314,53316,53322,34578,53318,53325,53337,53324,53249,53230,53327,53320],"class_list":["post-841321","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-commerce-electronique-de","category-prestashop-de","category-unkategorisiert","tag-anpassung-des-prestashop-checkouts","tag-benutzerdefiniertes-zahlungsgateway-prestashop","tag-blik-prestashop","tag-comfino-prestashop","tag-eingebettetes-zahlungsformular","tag-enviar-clave-de-servicio-web-de-forma-segura","tag-kompatibilitt-mit-zahlungsportalen","tag-kundenspezifische-zahlungsintegration","tag-payu-prestashop","tag-prestashop-ajax-checkout","tag-prestashop-api-integration","tag-prestashop-benutzerdefiniertes-zahlungsmodul","tag-prestashop-eine-seite-zur-kasse","tag-prestashop-iframe-zahlung","tag-prestashop-javascript-checkout","tag-prestashop-opc","tag-prestashop-bestellerstellung","tag-prestashop-bestellstatus","tag-prestashop-gateway-integration","tag-prestashop-kasse","tag-prestashop-webhooks","tag-prestashop-zahlungs-api","tag-prestashop-zahlungsablauf","tag-prestashop-zahlungsabwicklung","tag-prestashop-zahlungsentwicklung","tag-prestashop-zahlungsgateway","tag-prestashop-zahlungsgateway-integration","tag-prestashop-zahlungsintegration","tag-prestashop-zahlungskompatibilitt","tag-prestashop-zahlungsmethoden","tag-prestashop-zahlungsmodul","tag-prestashop-zahlungsoptionen","tag-prestashop-zahlungssicherheit","tag-problembehebung-bei-prestashop-zahlungen","tag-simplylease-prestashop","tag-supercheckout-prestashop","tag-webhooks-fr-zahlungsgateways","tag-zahlungsgateway-api-integration"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Integration eines Zahlungsdienstleisters in PrestaShop: Leitfaden zu API &amp; OPC<\/title>\n<meta name=\"description\" content=\"Erfahren Sie, wie Sie einen individuellen Zahlungsdienstleister in PrestaShop integrieren, mit APIs, Webhooks und Bestellstatus umgehen und Probleme bei der OPC-Kompatibilit\u00e4t beheben.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Integration eines Zahlungsdienstleisters in PrestaShop: Leitfaden zu API &amp; OPC\" \/>\n<meta property=\"og:description\" content=\"Erfahren Sie, wie Sie einen individuellen Zahlungsdienstleister in PrestaShop integrieren, mit APIs, Webhooks und Bestellstatus umgehen und Probleme bei der OPC-Kompatibilit\u00e4t beheben.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/\" \/>\n<meta property=\"og:site_name\" content=\"Knowband Blog | Ecommerce Modules\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Knowband\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-09T12:21:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-10T12:11:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"760\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sophie\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@KnowbandPlugin\" \/>\n<meta name=\"twitter:site\" content=\"@KnowbandPlugin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sophie\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/\"},\"author\":{\"name\":\"Sophie\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#\\\/schema\\\/person\\\/ca485d026e41cbf45ae99b67d0c9ac74\"},\"headline\":\"Integration eines benutzerdefinierten Zahlungsgateways in PrestaShop: Technische Anforderungen, API-Ablauf und Herausforderungen im Bereich OPC in der Praxis\",\"datePublished\":\"2026-09-09T12:21:13+00:00\",\"dateModified\":\"2026-09-10T12:11:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/\"},\"wordCount\":3356,\"publisher\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/German-1.jpg\",\"keywords\":[\"Anpassung des PrestaShop-Checkouts\",\"Benutzerdefiniertes Zahlungsgateway PrestaShop\",\"BLIK PrestaShop\",\"Comfino PrestaShop\",\"eingebettetes Zahlungsformular\",\"Enviar clave de servicio web de forma segura\",\"Kompatibilit\u00e4t mit Zahlungsportalen\",\"kundenspezifische Zahlungsintegration\",\"PayU PrestaShop\",\"PrestaShop AJAX-Checkout\",\"PrestaShop API integration\",\"PrestaShop API-Integration\",\"PrestaShop benutzerdefiniertes Zahlungsmodul\",\"Prestashop Eine Seite zur Kasse\",\"PrestaShop iFrame-Zahlung\",\"PrestaShop JavaScript-Checkout\",\"PrestaShop OPC\",\"PrestaShop-Bestellerstellung\",\"PrestaShop-Bestellstatus\",\"PrestaShop-Gateway-Integration\",\"PrestaShop-Kasse\",\"PrestaShop-Webhooks\",\"PrestaShop-Zahlungs-API\",\"PrestaShop-Zahlungsablauf\",\"PrestaShop-Zahlungsabwicklung\",\"PrestaShop-Zahlungsentwicklung\",\"PrestaShop-Zahlungsgateway\",\"PrestaShop-Zahlungsgateway-Integration\",\"PrestaShop-Zahlungsintegration\",\"PrestaShop-Zahlungskompatibilit\u00e4t\",\"PrestaShop-Zahlungsmethoden\",\"PrestaShop-Zahlungsmodul\",\"PrestaShop-Zahlungsoptionen\",\"PrestaShop-Zahlungssicherheit\",\"Problembehebung bei PrestaShop-Zahlungen\",\"SimplyLease PrestaShop\",\"SuperCheckout PrestaShop\",\"Webhooks f\u00fcr Zahlungsgateways\",\"Zahlungsgateway-API-Integration\"],\"articleSection\":[\"Commerce \u00e9lectronique\",\"Prestashop\",\"Unkategorisiert\"],\"inLanguage\":\"de-DE\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/\",\"name\":\"Integration eines Zahlungsdienstleisters in PrestaShop: Leitfaden zu API & OPC\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/German-1.jpg\",\"datePublished\":\"2026-09-09T12:21:13+00:00\",\"dateModified\":\"2026-09-10T12:11:29+00:00\",\"description\":\"Erfahren Sie, wie Sie einen individuellen Zahlungsdienstleister in PrestaShop integrieren, mit APIs, Webhooks und Bestellstatus umgehen und Probleme bei der OPC-Kompatibilit\u00e4t beheben.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/German-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/German-1.jpg\",\"width\":760,\"height\":300,\"caption\":\"Integration eines Zahlungsdienstleisters in PrestaShop \u2013 Leitfaden zu API & OPC\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/prestashop-de\\\/prestashop-payment-gateway-integration\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integration eines benutzerdefinierten Zahlungsgateways in PrestaShop: Technische Anforderungen, API-Ablauf und Herausforderungen im Bereich OPC in der Praxis\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/\",\"name\":\"Knowband Blog | Ecommerce Modules\",\"description\":\"Magento, Prestashop, Opencart, Shopify\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de-DE\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#organization\",\"name\":\"Knowband Blog | Ecommerce Modules\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/09\\\/cropped-knowband_logo-v2.png\",\"contentUrl\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/09\\\/cropped-knowband_logo-v2.png\",\"width\":153,\"height\":61,\"caption\":\"Knowband Blog | Ecommerce Modules\"},\"image\":{\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Knowband\",\"https:\\\/\\\/x.com\\\/KnowbandPlugin\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/fr\\\/#\\\/schema\\\/person\\\/ca485d026e41cbf45ae99b67d0c9ac74\",\"name\":\"Sophie\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/plugins\\\/wp-user-avatar\\\/deprecated\\\/wp-user-avatar\\\/images\\\/wpua-96x96.png\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/plugins\\\/wp-user-avatar\\\/deprecated\\\/wp-user-avatar\\\/images\\\/wpua-96x96.png\",\"contentUrl\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/wp-content\\\/plugins\\\/wp-user-avatar\\\/deprecated\\\/wp-user-avatar\\\/images\\\/wpua-96x96.png\",\"caption\":\"Sophie\"},\"description\":\"We are experts in the eCommerce industry, specializing in high-quality plugin development. With years of experience, we deliver reliable and feature-rich modules for platforms such as Magento, PrestaShop, OpenCart, and Shopify. In addition to ready-made plugins, we also provide custom module development and tailored modification services to meet unique business needs. Our team stays ahead of industry trends, ensuring every solution we build enhances store performance, user experience, and overall functionality. With a strong customer-centric approach, we have become a trusted partner for businesses seeking powerful and scalable eCommerce plugin solutions.\",\"url\":\"https:\\\/\\\/www.knowband.com\\\/blog\\\/de\\\/author\\\/titiksha-dwivedi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Integration eines Zahlungsdienstleisters in PrestaShop: Leitfaden zu API & OPC","description":"Erfahren Sie, wie Sie einen individuellen Zahlungsdienstleister in PrestaShop integrieren, mit APIs, Webhooks und Bestellstatus umgehen und Probleme bei der OPC-Kompatibilit\u00e4t beheben.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/","og_locale":"de_DE","og_type":"article","og_title":"Integration eines Zahlungsdienstleisters in PrestaShop: Leitfaden zu API & OPC","og_description":"Erfahren Sie, wie Sie einen individuellen Zahlungsdienstleister in PrestaShop integrieren, mit APIs, Webhooks und Bestellstatus umgehen und Probleme bei der OPC-Kompatibilit\u00e4t beheben.","og_url":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/","og_site_name":"Knowband Blog | Ecommerce Modules","article_publisher":"https:\/\/www.facebook.com\/Knowband","article_published_time":"2026-09-09T12:21:13+00:00","article_modified_time":"2026-09-10T12:11:29+00:00","og_image":[{"width":760,"height":300,"url":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-1.jpg","type":"image\/jpeg"}],"author":"Sophie","twitter_card":"summary_large_image","twitter_creator":"@KnowbandPlugin","twitter_site":"@KnowbandPlugin","twitter_misc":{"Written by":"Sophie","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/#article","isPartOf":{"@id":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/"},"author":{"name":"Sophie","@id":"https:\/\/www.knowband.com\/blog\/fr\/#\/schema\/person\/ca485d026e41cbf45ae99b67d0c9ac74"},"headline":"Integration eines benutzerdefinierten Zahlungsgateways in PrestaShop: Technische Anforderungen, API-Ablauf und Herausforderungen im Bereich OPC in der Praxis","datePublished":"2026-09-09T12:21:13+00:00","dateModified":"2026-09-10T12:11:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/"},"wordCount":3356,"publisher":{"@id":"https:\/\/www.knowband.com\/blog\/fr\/#organization"},"image":{"@id":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-1.jpg","keywords":["Anpassung des PrestaShop-Checkouts","Benutzerdefiniertes Zahlungsgateway PrestaShop","BLIK PrestaShop","Comfino PrestaShop","eingebettetes Zahlungsformular","Enviar clave de servicio web de forma segura","Kompatibilit\u00e4t mit Zahlungsportalen","kundenspezifische Zahlungsintegration","PayU PrestaShop","PrestaShop AJAX-Checkout","PrestaShop API integration","PrestaShop API-Integration","PrestaShop benutzerdefiniertes Zahlungsmodul","Prestashop Eine Seite zur Kasse","PrestaShop iFrame-Zahlung","PrestaShop JavaScript-Checkout","PrestaShop OPC","PrestaShop-Bestellerstellung","PrestaShop-Bestellstatus","PrestaShop-Gateway-Integration","PrestaShop-Kasse","PrestaShop-Webhooks","PrestaShop-Zahlungs-API","PrestaShop-Zahlungsablauf","PrestaShop-Zahlungsabwicklung","PrestaShop-Zahlungsentwicklung","PrestaShop-Zahlungsgateway","PrestaShop-Zahlungsgateway-Integration","PrestaShop-Zahlungsintegration","PrestaShop-Zahlungskompatibilit\u00e4t","PrestaShop-Zahlungsmethoden","PrestaShop-Zahlungsmodul","PrestaShop-Zahlungsoptionen","PrestaShop-Zahlungssicherheit","Problembehebung bei PrestaShop-Zahlungen","SimplyLease PrestaShop","SuperCheckout PrestaShop","Webhooks f\u00fcr Zahlungsgateways","Zahlungsgateway-API-Integration"],"articleSection":["Commerce \u00e9lectronique","Prestashop","Unkategorisiert"],"inLanguage":"de-DE"},{"@type":"WebPage","@id":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/","url":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/","name":"Integration eines Zahlungsdienstleisters in PrestaShop: Leitfaden zu API & OPC","isPartOf":{"@id":"https:\/\/www.knowband.com\/blog\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/#primaryimage"},"image":{"@id":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/#primaryimage"},"thumbnailUrl":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-1.jpg","datePublished":"2026-09-09T12:21:13+00:00","dateModified":"2026-09-10T12:11:29+00:00","description":"Erfahren Sie, wie Sie einen individuellen Zahlungsdienstleister in PrestaShop integrieren, mit APIs, Webhooks und Bestellstatus umgehen und Probleme bei der OPC-Kompatibilit\u00e4t beheben.","breadcrumb":{"@id":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/"]}]},{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/#primaryimage","url":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-1.jpg","contentUrl":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2026\/09\/German-1.jpg","width":760,"height":300,"caption":"Integration eines Zahlungsdienstleisters in PrestaShop \u2013 Leitfaden zu API & OPC"},{"@type":"BreadcrumbList","@id":"https:\/\/www.knowband.com\/blog\/de\/prestashop-de\/prestashop-payment-gateway-integration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.knowband.com\/blog\/fr\/"},{"@type":"ListItem","position":2,"name":"Integration eines benutzerdefinierten Zahlungsgateways in PrestaShop: Technische Anforderungen, API-Ablauf und Herausforderungen im Bereich OPC in der Praxis"}]},{"@type":"WebSite","@id":"https:\/\/www.knowband.com\/blog\/fr\/#website","url":"https:\/\/www.knowband.com\/blog\/fr\/","name":"Knowband Blog | Ecommerce Modules","description":"Magento, Prestashop, Opencart, Shopify","publisher":{"@id":"https:\/\/www.knowband.com\/blog\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.knowband.com\/blog\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de-DE"},{"@type":"Organization","@id":"https:\/\/www.knowband.com\/blog\/fr\/#organization","name":"Knowband Blog | Ecommerce Modules","url":"https:\/\/www.knowband.com\/blog\/fr\/","logo":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/www.knowband.com\/blog\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2016\/09\/cropped-knowband_logo-v2.png","contentUrl":"https:\/\/www.knowband.com\/blog\/wp-content\/uploads\/2016\/09\/cropped-knowband_logo-v2.png","width":153,"height":61,"caption":"Knowband Blog | Ecommerce Modules"},"image":{"@id":"https:\/\/www.knowband.com\/blog\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Knowband","https:\/\/x.com\/KnowbandPlugin"]},{"@type":"Person","@id":"https:\/\/www.knowband.com\/blog\/fr\/#\/schema\/person\/ca485d026e41cbf45ae99b67d0c9ac74","name":"Sophie","image":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/www.knowband.com\/blog\/wp-content\/plugins\/wp-user-avatar\/deprecated\/wp-user-avatar\/images\/wpua-96x96.png","url":"https:\/\/www.knowband.com\/blog\/wp-content\/plugins\/wp-user-avatar\/deprecated\/wp-user-avatar\/images\/wpua-96x96.png","contentUrl":"https:\/\/www.knowband.com\/blog\/wp-content\/plugins\/wp-user-avatar\/deprecated\/wp-user-avatar\/images\/wpua-96x96.png","caption":"Sophie"},"description":"We are experts in the eCommerce industry, specializing in high-quality plugin development. With years of experience, we deliver reliable and feature-rich modules for platforms such as Magento, PrestaShop, OpenCart, and Shopify. In addition to ready-made plugins, we also provide custom module development and tailored modification services to meet unique business needs. Our team stays ahead of industry trends, ensuring every solution we build enhances store performance, user experience, and overall functionality. With a strong customer-centric approach, we have become a trusted partner for businesses seeking powerful and scalable eCommerce plugin solutions.","url":"https:\/\/www.knowband.com\/blog\/de\/author\/titiksha-dwivedi\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.knowband.com\/blog\/de\/wp-json\/wp\/v2\/posts\/841321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.knowband.com\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.knowband.com\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.knowband.com\/blog\/de\/wp-json\/wp\/v2\/users\/43"}],"replies":[{"embeddable":true,"href":"https:\/\/www.knowband.com\/blog\/de\/wp-json\/wp\/v2\/comments?post=841321"}],"version-history":[{"count":2,"href":"https:\/\/www.knowband.com\/blog\/de\/wp-json\/wp\/v2\/posts\/841321\/revisions"}],"predecessor-version":[{"id":841333,"href":"https:\/\/www.knowband.com\/blog\/de\/wp-json\/wp\/v2\/posts\/841321\/revisions\/841333"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.knowband.com\/blog\/de\/wp-json\/wp\/v2\/media\/841330"}],"wp:attachment":[{"href":"https:\/\/www.knowband.com\/blog\/de\/wp-json\/wp\/v2\/media?parent=841321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.knowband.com\/blog\/de\/wp-json\/wp\/v2\/categories?post=841321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.knowband.com\/blog\/de\/wp-json\/wp\/v2\/tags?post=841321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}