PayPal PLUS howto

Hallo Zusammen,

wir haben seit einiger Zeit ebenfalls das Problem, dass die Paypal Payments nicht immer funktionieren. Einige Kunden hatten uns zum Glück darauf aufmerksam gemacht. Bei einigen geht es, bei anderen wiederrum nicht. Dadurch gehen uns einige Bestellungen verloren, da die Kunden nicht bestellen können obwohl sie wollen.

Bei Paypa Developer unter „Live Transactions“ finde ich einige Transactions mit dem Fehler: PAYMENT_NOT_APPROVED_FOR_EXECUTION.

Einige unserer Kunden berichten ebenfalls von einer Endlosschleife beim Checkout über Paypal, ich weiß nicht ob es damit zusammen hängt.

Fakt ist: das Paypal Plugin funktioniert nicht einwandfrei und ich möchte die Shopware Entwickler bitten sich um das Problem zu kümmern

MfG

PPH

Bitte einmal folgendes ausprobieren:

In der Datei engine/Shopware/Plugins/Default/Frontend/SwagPaypmentPaypal/Controllers/Backend/PaymentPaypal.php

In der z.Zt. aktuellen Version des PP-Plugins die Zeile 267 anpassen:

Alt:

if (isset($details['CHECKOUTSTATUS']) && (!isset($details['PAYERID']) || !isset($details['ADDRESSSTATUS']))) {

Neu;

if (isset($details['CHECKOUTSTATUS']) && (!isset($details['PAYERID']) || !isset($details['PAYMENTREQUEST_0_ADDRESSSTATUS']))) {

Der Cache brauch nicht geleert werden.

2 „Gefällt mir“

@Carp‍

Kannst du auch sagen was die Änderung bewirken soll, nur so zur Info.

@Carp schrieb:

Bitte einmal folgendes ausprobieren:

In der Datei engine/Shopware/Plugins/Default/Frontend/SwagPaypmentPaypal/Controllers/Backend/PaymentPaypal.php

In der z.Zt. aktuellen Version des PP-Plugins die Zeile 267 anpassen:

Alt:

if (isset($details[‚CHECKOUTSTATUS‘]) && (!isset($details[‚PAYERID‘]) || !isset($details[‚ADDRESSSTATUS‘]))) {

Neu;

if (isset($details[‚CHECKOUTSTATUS‘]) && (!isset($details[‚PAYERID‘]) || !isset($details[‚PAYMENTREQUEST_0_ADDRESSSTATUS‘]))) {

Der Cache brauch nicht geleert werden.

Danke erstmal,

allerdings steht bei mir in der Zeile 267 etwas komplett anderes. Daraufhin habe ich in der ganzen Datei mal danach gesucht. Auch nichts gefunden. Ich habe die aktuelle Version von PayPal installiert. Was mache ich falsch?

 

Gruß

Pascal 

Ich hänge mich mal ganz dreist mit meinem Problem an. Und zwar teste ich gerade die Paypalbezahlung im Sandboxmode.

-> http://test.test/payment_paypal leitet wenn man auf zahlen klickt weiter zu https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&token=EC-4H408134AJ263884C

Dort logge ich mich mit einem Sandboxaccount ein und klicke auf jetzt zahlen

Dann werde ich zurückgeleitet auf:

http://test.test/payment_paypal/return?token=EC-4H408134AJ263884C&PayerID=CCDUHGTU65KLW

Diese Seite auf meinem Shop macht jedoch nichts anderes als mich wieder zur sandbox bei paypal zu schicken quasi in einer Dauerschleife. Auch wird die Bestellung nicht angelegt und die Zahlung taucht auch nicht auf.

Jemand vllt eine Idee?

@pasci2132 schrieb:

Danke erstmal,

allerdings steht bei mir in der Zeile 267 etwas komplett anderes. Daraufhin habe ich in der ganzen Datei mal danach gesucht. Auch nichts gefunden. Ich habe die aktuelle Version von PayPal installiert. Was mache ich falsch?

 

Gruß

Pascal 

Hallo Pascal,

es ist die  /Frontend/SwagPaymentPaypal/Controllers/ Frontend /PaymentPaypal.php , da steht es in der Zeile 267

Gruß Uwe

Hallo,

die Dauerschleife bei Paypal ist uns auch schon aufgefallen und wir arbeiten auch schon an einer Lösung. Paypal hat hier etwas umgestellt, was die Änderung, die @Carp‍ hier beschreibt nötig macht:

https://github.com/shopwareLabs/SwagPaymentPaypal/blob/master/Controllers/Frontend/PaymentPaypal.php#L266

‚ADDRESSSTATUS‘ durch ‚PAYMENTREQUEST_0_ADDRESSSTATUS​‘ ersetzen.

Ein Paypal-Update wird es hier in kürze geben. Es sollte hier in den aktuellen API-Versionen von Paypal zu diesem Problem kommen.

Moritz

@useg schrieb:

@pasci2132 schrieb:

Danke erstmal,

allerdings steht bei mir in der Zeile 267 etwas komplett anderes. Daraufhin habe ich in der ganzen Datei mal danach gesucht. Auch nichts gefunden. Ich habe die aktuelle Version von PayPal installiert. Was mache ich falsch?

 

Gruß

Pascal 

Hallo Pascal,

es ist die  /Frontend/SwagPaymentPaypal/Controllers/ Frontend /PaymentPaypal.php , da steht es in der Zeile 267

Gruß Uwe

Danke Uwe hab es gefunden.

Allerdings finde ich dieses Zeichen etwas komisch: [', ist das normal? Weil bei mir steht das so:

if (isset($details[‚CHECKOUTSTATUS‘]) && (!isset($details[‚PAYERID‘]) || !isset($details[‚ADDRESSSTATUS‘]))) {

 

Grüße

Pascal

@pasci2132 schrieb:

Danke Uwe hab es gefunden.

Allerdings finde ich dieses Zeichen etwas komisch: [', ist das normal? Weil bei mir steht das so:

if (isset($details[‚CHECKOUTSTATUS‘]) && (!isset($details[‚PAYERID‘]) || !isset($details[‚ADDRESSSTATUS‘]))) {

 

Grüße

Pascal

Nimm mal das von original Post von  Carp, da ist das mit den Zeichen korrekt, das was du oben angibst ist noch ein Bug im Forum mit fatalen Folgen, wenn einer den Code so kopiert.

Gruß Uwe

Danke Uwe,

ja das dachte ich mir auch. Hab es jetzt eingepflegt, werde es jetzt mal beobachten. Danke und einen schönen Abend euch.

Gruß

Pascal

Kann ich bestätigen, betrifft auch das normale Paypal Plugin nicht nur Paypal Plus!

Zeile 267:
 

if (isset($details['CHECKOUTSTATUS']) && (!isset($details['PAYERID']) || !isset($details['PAYMENTREQUEST_0_ADDRESSSTATUS']))) {

 

Hier wohl das selbe. Gerade ne Rückmeldung vom Kunden erhalten, den ich angeschrieben hatte da er die Bestellung abgebrochen hatte. Die Antwort war jetzt aber nicht wirklich aussagekräftig. „es gab probleme wegen paypal“

Gehe mal davon aus dass es einen Zusammenhang mit dem aktuellen Problem gibt. Hab den Fix nun auch mal reingehauen. In meinem Test eben lief alles einwandfrei.

Mal eine kleine Anregung: Wenn sowas elementares passiert, dann wäre eine Information dazu auf Facebook, Twitter und per Mail gut. Habe einige Kunden die dadurch seit gestern ziemlichen Umsatz verloren haben.

3 „Gefällt mir“

Also ich habe in meiner Shopware 5.0.3 Instalaltion alles wie beschrieben geändert…geht trotzdem nicht…

Das ist doch der Pfad?

/httpdocs/engine/Shopware/Plugins/Community/Frontend/SwagPaymentPaypal/Controllers/Frontend/PaymentPaypal.php

 

Ein Paypal-Update wird es hier in kürze geben. Es sollte hier in den aktuellen API-Versionen von Paypal zu diesem Problem kommen.

Moritz

Hallo Moritz,

was ist denn die aktuelle API-Version?

Beste Grüße

Sebastian

Weitere Informationen gibt es hier: http://forum.shopware.com/discussion/35426/informationen-zur-problematik-paypal-weiterleitung#latest

ist das so richtig ?

 

// Canceled payment
        if (isset($details[‘CHECKOUTSTATUS’]) && (!isset($details[‘PAYERID’]) || !isset($details[‘PAYMENTREQUEST_0_ADDRESSSTATUS’]))) {
            unset($this->session->PaypalResponse);
            return $this->forward(‘gateway’);

Haben es geändert, aber Zahlung funktioniert nicht. Im Gegenteil man gelangt nicht mal mehr auf die Paypalseite sondern nur auf die Startseite.

Wir haben es auch bei mehreren, von uns betreuten, Shops abgeändert. Bei denen auf Shopware 4 funktioniert es problemlos. Nur Shopware 5 schickt den Benutzer trotz Änderung immer noch hin und her… 

Vielen Dank für diese Lösung. Wir konnten das Problem so bei uns beheben!