PayPal(4.2.3) Payment type not found

Hallo zusammen,

seit heute nacht schlagen plötzlich alle PayPal Zahlungen fehl. Es wurde nix an der Konfiguration geändert.
Shopware 5.7.14
PayPal 4.2.3
Nur Standard-PayPal Zahlungen, bis dato (fast) problemlos, deshalb wurde auch nicht auf die neue PayPal-Version aktualisiert.

Man kommt zu PayPal, aber nach Bestätigung der Zahlung kommt man zur Fehlerseite.
Abgebucht wird scheinbar nichts.

Fehlermeldung

UnexpectedValueException: Payment type not found in /var/www/clients/client1/web1/web/custom/plugins/SwagPaymentPayPalUnified/Controllers/Frontend/AbstractPaypalPaymentController.php:491
Stack trace:
#0 /var/www/clients/client1/web1/web/custom/plugins/SwagPaymentPayPalUnified/Controllers/Frontend/PaypalUnifiedV2.php(131): SwagPaymentPayPalUnified\Controllers\Frontend\AbstractPaypalPaymentController->getPaymentType()
#1 /var/www/clients/client1/web1/web/engine/Library/Enlight/Controller/Action.php(186): Shopware_Controllers_Frontend_PaypalUnifiedV2->returnAction()
#2 /var/www/clients/client1/web1/web/engine/Library/Enlight/Controller/Dispatcher/Default.php(467): Enlight_Controller_Action->dispatch()
#3 /var/www/clients/client1/web1/web/engine/Library/Enlight/Controller/Front.php(225): Enlight_Controller_Dispatcher_Default->dispatch()
#4 /var/www/clients/client1/web1/web/engine/Shopware/Kernel.php(197): Enlight_Controller_Front->dispatch()
#5 /var/www/clients/client1/web1/web/vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php(85): Shopware\Kernel->handle()
#6 /var/www/clients/client1/web1/web/vendor/symfony/http-kernel/HttpCache/HttpCache.php(479): Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle()
#7 /var/www/clients/client1/web1/web/engine/Shopware/Components/HttpCache/AppCache.php(266): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward()
#8 /var/www/clients/client1/web1/web/vendor/symfony/http-kernel/HttpCache/HttpCache.php(452): Shopware\Components\HttpCache\AppCache->forward()
#9 /var/www/clients/client1/web1/web/vendor/symfony/http-kernel/HttpCache/HttpCache.php(346): Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch()
#10 /var/www/clients/client1/web1/web/engine/Shopware/Components/HttpCache/AppCache.php(192): Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup()
#11 /var/www/clients/client1/web1/web/vendor/symfony/http-kernel/HttpCache/HttpCache.php(224): Shopware\Components\HttpCache\AppCache->lookup()
#12 /var/www/clients/client1/web1/web/engine/Shopware/Components/HttpCache/AppCache.php(117): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle()
#13 /var/www/clients/client1/web1/web/shopware.php(122): Shopware\Components\HttpCache\AppCache->handle()
#14 {main}

Der Versuch auf einer Testumgebung mit PayPal-Version 4.3.3 schlägt (mit anderen Fehlermeldungen) auch fehl, insofern ist das erst mal keine Option …

Weiss jemand, ob aktuell bei PayPal etwas geändert wurde?
Grüße aus Köln
Helmut

Servus,

Wir hatten heute früh bei zahlreichen Shops genau das gleiche Problem mit gleicher Fehlermeldung. Die Zahlungen wurden aber bei Paypal durchgeführt, jedoch fehlten die Bestellungen im Shop. Man findet diese dann in den Warenkorb-Abbrüchen.

Paypal: 4.1.0+
SW: 5.6.10+

Wir haben dann jedoch problemlos ein Update auf die 4.3.3 machen können (schlimmer konnte es ja nicht mehr werden :smirk:). Seitdem sind die Zahlungen wieder durchgelaufen.

VG Danny

Hallo Danny,

danke für die Rückmeldung.
Dann wurde ja wohl was (ohne es zu kommunizieren …) auf der PayPal Seite geändert, aber da wundert einen ja sowieso nix mehr.

Werde dann wohl auch mal mein Glück mit 4.3.3 probieren.
Aber wenn man hier die Fehlermeldungen dazu liest wird einem bei jedem Update Angst und Bange …

LG Helmut

PS: der Fehler nach Update im Testshop ist der aus

{
  "message": "Client error: `GET https://api.sandbox.paypal.com/v2/checkout/orders/` resulted in a `404 Not Found` response",
  "payload": ""
}

Ist für unseren Shop also scheinbar nur die Wahl zwischen Pest und Cholera …

Wir haben mit 4.3.3. heute auch kaum Bestellungen und viele Abbrüche. Das Update kannst Du dir schenken. Wird immer schlimmer. Bei Paypal arbeiten anscheinend auch nur Vollhonks. Wenn man dort anruft sind grundsätzlich keine Probleme bekannt. Das schlimme ist, das Shopware die Probleme der alten Updates noch nicht in den Griff bekommen hat und Paypal schon wieder neue Baustellen eröffnet.

Das hatte in einem unserer Shops geholfen:

In der Datei „BaseURL“ (Pfad: /custom/plugins/SwagPaymentPayPalUnified/PayPalBundle) folgendes ändern:

const SANDBOX = ‚https://api.sandbox.paypal.com/‘; const LIVE = ‚https://api.paypal.com/‘;

ändern in

const SANDBOX = ‚https://api-m.sandbox.paypal.com/‘; const LIVE = ‚https://api-m.paypal.com/‘;

1 Like

Ach… kommt dann wohl für Shopware doch nicht so unerwartet:

Schon 13 Tage alt der commit

Warum wird sowas fest verdrahtet, und nicht in den Settings hinterlegt?

Gerade ausprobiert.

  • Datei geändert
  • alle Caches gelöscht
  • Bestellung gemacht: same problem, sowohl auf 4.2.3 (produktiv) als auch 4.3.3 (test)

:frowning:

Wenn Paypal bei uns ausfallen würde, dann könnten wir den Laden schließen. Mir ist es völlig unverständlich, dass hier nicht umgehend für Abhilfe gesorgt wird, mit allem was zu Verfügung steht. Stattdessen ist das nicht funktionierende Paypal-Plugin in egal welcher Version hier das Dauerthema. Ich frage mich langsam ernsthaft, ob irgendjemand bei Shopware, die, oder der Verantwortung trägt, überhaupt Kenntnis von diesem Desaster hier hat?

Naja, das darfst Du nicht ganz so dramatisch sehen. Die meisten nutzen halt Paypal weil sie zu faul sind, leider. Und natürlich wegen dem Käuferschutz. Nicht unbedingt jeder ist dann gleich weg, aber jeder, der weg ist, der kommt sicher nicht wieder. Ein Zahlungssystem im Shop laufen zu haben, das funktioniert, ist wohl Grundvoraussetzung.

Express hast Du ausgeschalten?

Anmerkung: nach wie vor werden auch die Paypal Referrer als solche verbucht und nicht mit den originalen, ursprünglichen ersetzt, ist bis dato noch nicht gelöst worden, wird wohl auch nicht mehr gelöst werden. Google und Paypal sind meine besten Kunden.

Teste mal mit:
alle Übertragungen an PP aus inkl Context = aus / und express komplett aus, läuft bei uns unter 5.7.14

image

Nein, wir nutzen Payone als Zahlungsdienstleister, die stellen uns eine stets funktionierende und getestete Paypal-Funktion zur Verfügung. Schnellbestellungen, ohne das Anlegen eines Kundekontos und der notwendige Datenabgleich mit Paypal funktionieren damit ohne Probleme.

Hallo @PCG,
danke, hat funktioniert.

Kurz die Daten für interessierte:

SW 5.7.14
PayPal 4.3.3
Konfig: Context-Modus aus
Warenkorb übertragen: aus
Bestellnummer übertragen ein
custom/plugins/SwagPaymentPayPalUnified/PayPalBundle/BaseURL.php

    const SANDBOX = 'https://api.sandbox.paypal.com/';
    const LIVE = 'https://api.paypal.com/';

SwagPaymentPayPalUnified aktiv. Express etc. alles aus.

2 Likes

Payone ist ein guter Tipp! Das werde ich mir gleich mal anschauen!

1 Like

Der Workaround scheint zu funktionieren. Unsere Testbestellungen gingen durch.

Wir nutzen SW 5.6.10 und PayPal 4.3.3 .
Ich habe das Paypal Plugin aber von 4.2.3 auf die neuste Version updaten müssen, da es sonst nicht funktioniert hat.

Die URLs in der BaseURL.php habe ich angepasst:

const SANDBOX = 'https://api-m.sandbox.paypal.com/';
const LIVE = 'https://api-m.paypal.com/';

@PCG Danke für den Tipp.

2 Likes

bei 4.2.3 und 5.6.10 funktioniert das „-m“ nicht!

@Steffi
Mal auf 4.3.3 updaten und wie oben beschrieben:

Express aus
Context-Modus aus
Warenkorb übertragen aus
Bestellnummer übertragen an

Und zusätzlich dann noch die URLs updaten. Das hat bei uns funktioniert.

Danke, aber 4.3.3 geht nicht da keine Kommentare mitgehen. Hat mir bis dato schon genug gekostet, KEINE Kommentare zu erhalten als Konfektionsfertiger.

Das Problem mit den fehlenden Kommentaren liegt darin, dass der Parameter „sComment“ des ursprünglichen POST „https://domain/de/checkout/payment“ in einer Weiterleitung über einen GET „/de/PaypalUnifiedV2“ via 302 nicht mitgegeben wird.

Wo genau das passieren müsste konnte ich noch nicht identifizieren.
Da die Kommentare aber vorher in der Session gespeichert werden kann man sie dort holen.
Für mich funktioniert folgendes (ich benutze 4.3.3, kein Express etc …!):
:exclamation: VORSICHT Auf eigene Gefahr, kein Support … :exclamation:
in
custom/plugins/SwagPaymentPayPalUnified/Controllers/Frontend/PaypalUnifiedV2.php
\Shopware_Controllers_Frontend_PaypalUnifiedV2::indexAction

        $this->handleComment();

ersetzen durch

//        $this->handleComment();
        $sComment = $session->offsetGet(self::COMMENT_KEY);
        $this->dependencyProvider->getModule('order')->sComment = $sComment;

:exclamation: VORSICHT Auf eigene Gefahr, kein Support … :exclamation:

In der Testinstallation hat es einwandfrei funktioniert, ob es irgendwelche Seiteneffekte gibt kann ich noch nicht sagen.
Gruß
Helmut

2 Likes

Danke.

Da frage ich mich doch ob das Shopware nicht auch könnte?

Wahrscheinlich sogar besser, da sie das gesamte Handling genau kennen.
In der Funktion handleComment

    /**
     * @return void
     */
    protected function handleComment()
    {
        $session = $this->dependencyProvider->getSession();
        $sComment = $this->request->get(self::COMMENT_KEY, '');

        $session->offsetSet(self::COMMENT_KEY, $sComment);
        $this->dependencyProvider->getModule('order')->sComment = $sComment;
    }

wird versucht den Kommentar aus dem Request zu ziehen und da es den dort nicht gibt wird er anschließend in der Session mit ‚‘ überschrieben.
Aber wie gesagt zur Warnung: k.A. ob es bei dem Workaround irgendwo Seiteneffekte gibt.

1 Like