Wenn Unzer Payment mit Shopware 5 nicht funktioniert

, ,

In diesem Beitrag erklären wir woran es liegen kann, wenn eine Bezahlung mit dem Zahlungsanbieter Unzer im Shopware-Onlineshop immer wieder fehlschlägt.

Das Problem

Wir beschreiben hier ein aktuelles Problem, das wir erst kürzlich bei dem Shopware-Shop eines Kunden hatten. Der Kunde betreibt einen Onlineshop mit Shopware 5 in der aktuellsten Version und wollte den Zahlungsanbieter Unzer intergrieren. Wir wurden beauftragt den Zahlungsanbieter einzubauen, also das erforderliche Plugin zu installieren und zu konfigurieren.

Der Kunde hatte einen Account bei Unzer angelegt, aber keinen Testaccount bzw. Sandbox-Account. Das deshalb, weil man bei Unzer (anders als z.B. bei Paypal) keinen Testaccount standardmäßig bei der Registrierung bekommt. Das sollte aber kein Problem darstellen, weil die Integration von Unzer in Shopware 5 normalerweise kein Problem ist und einfach durchgeführt werden kann.

Hier war das aber anders. Nach Einbau und Onlinestellung auf der Liveumgebung mussten wir leider feststellen, dass die Kunden nicht mit Unzer, bzw. den aktivierten Zahlungsarten wie z.B. Kreditkarte bezahlen konnten. Der Kunde erhielt im Checkout immer wieder eine Meldung, dass eine Zahlungs mittels Unzer nicht möglich war.

Wir machten uns also an die Fehleranalyse. Zuerst analysierten wir die Logs im Unzer-Account des Kunden, konnte darin aber nichts auffälliges entdecken. In den Logs von Shopware fanden wir aber seltsame Fehlereinträge von Unzer die besagten, dass eine Übermittlung an Unzer nicht möglich wäre da der übergebene Zahlbetrag zu viele Nachkommastellen hatte.

Anstatt eines Betrages von beispielsweise € 31,45 wurde im Plugin ein Betrag von € 31,45949391929489392021 übergeben, also mit sehr vielen Nachkommastellen. Die Fehlermeldung in den Logs von Shopware sagte aber aus, dass genau das der Fehler war, dass nämlich der Betrag mehr als 2 Nachkommastellen hatte!

Wie konnte das sein? Wir analysierten das Plugin nach Fehlern, spielten zur Sicherheit auch eine ältere Version des Plugins ein, da die aktuellste Version einige Fehler hatte. Aber auch das half nicht weiter.

Die Lösung

Nach längerer Fehleranalyse und Rücksprache mit dem Support von Unzer konnten wir Ursache aber schließlich lokalisieren: eine Php-Einstellungen am Webhost war falsch. Unzer verlangt nämlich, dass die Php-Variable „serialize_precision“ den Wert „-1“ hat, ansonsten funktioniert das Plugin nicht korrekt.

Die Lösung: es musste also die Php-Variable „serialize_precision“ auf „-1“ gesetzt werden, dann funktionierte auch das Unzer-Plugin korrekt und Zahlungen konnten korrekt abgewickelt werden.

An dieser Stelle aber ein Hinweis: diese Php-Variable kann man nicht bei allen Webhostern einfach so anpassen. Bei manchen muss man dafür den Support kontaktieren, damit die Variable direkt am Server geändert werden. Es funktioniert also nicht über normale Administrationsoberflächen wie Plesk oder CPanel.

Auch gibt es einige Hoster, bei denen diese Php-Variable überhaupt nicht geändert werden kann. In diesem Fall muss man leider zu einem anderen Webhoster, der auf Shopware spezialisiert ist wechseln.

Unser Tipp auch dazu: wenn Sie als Shopbetreiber einen Account bei Unzer anlegen, dann sollten Sie auf jeden Fall auch gleich einen Testaccount anfordern. Man muss diesen zwar extra anfordern, es kostet aber nichts.

Damit kann man die Integration von Unzer in den Shopware 5 Shop einfach testen und erkennt solche oder ähnliche Probleme schon bevor Unzer am echten Live-Onlineshop freigeschalten wird.

Gerne helfen wir auch Ihnen bei Problemen mit Shopware 5 oder 6

Sie betreiben selbst einen Onlineshop mit Shopware 5 und benötigen Unterstützung? Sie möchten Erweiterungen einbauen, Funktionalitäten ändern oder eine Migration auf Shopware 6 durchführen? Melden Sie sich einfach bei uns damit wir das Problem besprechen können. Hier können Sie uns kontaktieren!