webinfowebinfo MemberComments: 4 Received thanks: 0 Member since: January 2015

Hallo,

wir haben derzeit hin und wieder Probleme bei Bestellungen über PayPal Plus. Der Kunde bestellt und wählt im Checkout eine PayPal Plus Option aus. Nachdem er den Checkout durchlaufen hat, wird er zu PayPal weitergeleitet und führt dort seine Zahlung aus. Anschließend wird der Kunde zum Shop zurück geleitet und bekommt dort eine Fehlermeldung BadRequest. Die Shopping-Cart ist anschließend leer.

Bei PayPal ist die Zahlung eingegangen nur die Bestellung im Shopware-System fehlt.

Im PlugIn Log von Shopware sieht man folgende Einträge zu diesem Problem:
[Webhook] Received webhook {"payload": XXXX .... "event_type":"PAYMENT.SALE.COMPLETED" ... XXX } 
[SaleComplete-Webhook] Could not find associated order with the temporaryID PAYID-XXXXXXXXXXXXXXXXXXX

Es sieht so aus, dass der Webhook aus dem nichts heraus aufgerufen wird. Bei Bestellungen die funktionieren, sieht man im log vorher folgendes:
Sending request [POST] to https://api.paypal.com/v1/payments/payment ...
Received data from https://api.paypal.com/v1/payments/payment {"payload":"{\"id\":\"PAYID-XXXXXXXXXXXXXXXXXXX\" ...

Sprich es wird ein Payment mit allen Daten (Betrag usw.) erstellt und man bekommt eine PAYID von PayPal zurück. 
Nur bei den fehlgeschlagenen Zahlungen wird scheinbar nie ein Payment erstellt oder die Kommunikation läuft über andere Code-Teile von Shopware die ich nicht logge. (Fallback auf das normale PayPal?).

Folgendes habe ich schon probiert "Aktivieren, um die Bestellnummer nach Abschluss an PayPal zu übermitteln." -> Ja/Nein

Kann mir jemand weiterhelfen? Ich bin ein bischen am verzweifeln.

Viele Dank
Gruß
webinfo

Answers

  • Michael TelgmannMichael Telgmann ModeratorComments: 937 Received thanks: 273 Member since: June 2014

    Hallo webinfo,

    Webhooks werden zeitlich versetzt nach der Bezahlung von PayPal zu Shopware geschickt. Der Fehler den du beschreibst, kann also nicht die Ursache für das Fehlschlagen der Zahlung sein, bzw für den Bad Request wenn dein Kunde von PayPal zurück kommt. Hast du mal versucht, dir direkt den Fehler ausgeben zu lassen? https://docs.shopware.com/de/shopware-5-de/tutorials-und-faq/fehlermeldungen-in-shopware-debuggen#erweitertes-error-debugging

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

  • webinfowebinfo MemberComments: 4 Received thanks: 0 Member since: January 2015

    Hallo,

    danke für die schnelle Antwort. Gibt es denn nicht die Möglichkeit diese Fehler in eine Log-Datei zu schreiben? So wie ich es verstehe, kann ich mit den Optionen aus dem Link die Fehler im Shopfrontend anzeigen lassen. Das Problem ist nur, dass wir es gar nicht hinbekommen den Fehler zu reproduzieren und somit das Shopfrontend inkl Fehler nicht sehen. Bin leider etwas newbie in Shopware. Ich würde solche Fehler im core_production-XX.log vermuten. Hier ist jedoch nichts zu sehen.

    Der Fehler ist ja, dass die Order nicht erstellt wird und das PayPal Problem ist ja im Prinzip nur ein Folgefehler. Aber warum wird die Order nicht erstellt? Wie gesagt etwas mehr Infos im Log wären super.

    Gruß

  • Moritz NaczenskiMoritz Naczenski AdministratorsComments: 7623 Received thanks: 2247 Member since: September 2013

    Die Fehler stehen auch im PHP Errorlog des Servers, aber dazu müsstest du schon die konkrete Urzeit wissen um das im log einzugrenzen.

  • webinfowebinfo MemberComments: 4 Received thanks: 0 Member since: January 2015

    Ich habe jetzt im PHP Error log geschaut. Dort ist nichts zu finden. Ich habe auch ein gutes Stück früher geschaut, da der PayPal Aufruf asynchron stattfindet. 

    Die Bestellung wird ja erst erstellt, wenn man von PayPal zurückkommt. Ist das korrekt? Welcher Teil wird denn anschließend ausgeführt, so dass ich dort mal ein paar Logs platzieren kann?

  • Moritz NaczenskiMoritz Naczenski AdministratorsComments: 7623 Received thanks: 2247 Member since: September 2013

    Es kommt drauf an, was du eingestellt hast.

    Entweder "Bestellung an Paypal übertragen: Ja" - das heißt hier konkret, dass die Bestellung vor der Weiterleitung an Paypal angelegt wird oder "Bestellung an Paypal übertragen: Nein" dann wird erst bei erfolgreicher Zahlung die Bestellung abgeschlossen.

     

    https://github.com/shopwareLabs/SwagPaymentPayPalUnified/blob/master/Controllers/Frontend/PaypalUnified.php#L242

    https://github.com/shopwareLabs/SwagPaymentPayPalUnified/blob/master/Controllers/Frontend/PaypalUnified.php#L289

  • webinfowebinfo MemberComments: 4 Received thanks: 0 Member since: January 2015

    Hallo,

    danke für die schnelle Antwort. Ich bin jetzt auch dazu gekommen, das ganze etwas genauer zu untersuchen. "Es kommt drauf an, was du eingestellt hast." ist diese Aussage korrekt? Wenn ich in dem Code schaue, dann wird die Order immer in der returnAction() ausgeführt. Wenn die Option "Bestellung an PayPal übertragen" aktiv ist, wird die Zahlung lediglich nochmals gepatched. Die Bestellung wird jedoch immer im nachhinein erstellt.

    Das Problem ist jedoch, dass bei ca. 25% der Kunden unseres Shops die returnAction() nicht ausgeführt wird (Ich habe das geloggt). Dadurch wird keine Bestellung erstellt und der spätere Webhook bekommt Probleme. Die sich in der Fehlermeldung "Could not find associated order with the temporaryID PAYID-XXXXXXXXXXXXXXXXXXX" äußern.

    Die Kunden berichten uns, dass sie einen BadRequest sehen und anschließend ist der Warenkorb leer. In den Logs sehen wir nichts. Keine BadRequests oder sonstige Fehlermeldungen.

    Habt ihr noch weitere Ideen?

    Viele Grüße

Sign In or Register to comment.