paypal3 Frage/2.7.1.2

Thema wurde von Avenger, 27. September 2016 erstellt.

  1. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ich habe im Shop die "PayPal-Plus"-Integration gewählt.

    paypalplus.jpg

    Wenn ich mir dann aber z.B. in "paypal3->pre_confirmation_check()"

    Code:
    $_SESSION['paypal_payment']['type']
    anschaue, dann ist der als "ecm" statt "plus" definiert, so dass da nicht die gewünschte PayPal-Seite aktiviert wird..

    Woran kann das liegen?
     
  2. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    Hallo,

    von Weitem schwer zu sagen. Wenn z.B. die Versandadresse in AR, BR, CA, CN, ID, IN, JP, MX, TH oder US liegt, fällt das Modul auf ECM zurück, um das Bundesland (Staat, Departement oder wie auch immer die Verwaltungsgliederungseinheit im Einzelfall auch heißen mag) sicher erfassen zu können.

    Oder es konnte keine Payment-Ressource für die PLUS-Wall erzeugt werden, was unterschiedlichste Gründe haben kann. Gängig ist dafür z.B. ein nicht konfiguriertes Darstellungsprofil.
     
  3. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Hallo Marco...

    In welchem Modul/Methode wird denn versucht, eine Payment-Ressource dafür zu erstellen?

    Dann kann ich das mal debuggen...

    "$_SESSION['paypal_payment']['type']" ist beim ersten Versuch NULL, hat also gar keinen Wert, und wird dann zum "default" "ecm"....
     
  4. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Mit "Darstellungsprofil" meinst Du das?

    darstellungseinheit.jpg
     
  5. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Ja, genau das ist gemeint, sieht aber ok aus.
     
  6. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    Das passiert im Zahlungsmodul (includes/modules/payment/paypal3.php) in der Methode _selectionPayPalPlus() in Zeile 236:
    PHP:
    $payPalPayment $payPalPaymentFactory->createPaymentFromOrder($order_and_totals['order'], 'plus');
     
  7. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    So, ich habe mich nun so weit durchgekämpft, dass PayPal den Plus-Modus aktivieren will.

    Aber natürlich wartet das nächste Problem hier... :)

    In der Paypal3-Klasse wird mit folgendem Code im Falle eines "Plus"-Paypals zu paypal verzweigt:

    Code:
                        $this->logger->notice('Redirecting to PayPal for Plus payment');
                        echo '<!DOCTYPE html><html><head><script src="https://www.paypalobjects.com/webstatic/ppplus/ppplus.min.js" type="text/javascript"></script></head>';
                        echo '<body><script>PAYPAL.apps.PPP.doCheckout();</script><p>'.$this->text->get_text('redirecting_to_paypal').'</p></body>';
                        xtc_db_close();
                        exit;
    Es wird dann auch versucht, das Script auszuführen, leider gelingt das nicht, wobei in der FireBug-Konsole der Fehler "could not get URLs" angezeigt wird.... :(

    Das das Javascript minimiert ist, ist es kaum möglich, das zu debuggen.

    Ansatzweise denke ich, dass da versucht wird, aus Cookies irgendwelche URLn zu extrahieren, was dann fehlschlägt...

    Im normalen PayPal-Modus wird korrekt zur PayPal-Seite verzweigt...

    Irgend jemand eine Idee, was das Problem sein könnte?
     
  8. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    Liegt der Shop auf einer Umlaut-Domain?
     
  9. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Nein, der liegt lokal bei mir auf localhost...
     
  10. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    Sonst irgendwas seltsam an den URLs? Ich kenne solche Zicken von der PLUS-Weiterleitung bislang vor allem von Umlaut-Domains, mit denen kommt da irgendwas im Javascript nicht klar.
     
  11. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Nein. alles nur ASCII-Zeichen...

    Weisst Du ob es eine unkomprimierte Version von "https://www.paypalobjects.com/webstatic/ppplus/ppplus.min.js" gibt???

    Dann könnte man das besser debuggen...
     
  12. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    Nein, gibt es leider nicht.

    Kannst du es zum Eingrenzen der Fehlerquelle mal auf einem anderen, nicht-lokalen Webspace ausprobieren?
     
  13. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ich habe mal versucht, mich durch das minimierte JS zu debuggen, bin da auch fündig geworden...

    Code:
        function N(a) {
            for (var b = a + '=', c = document.cookie.split(';'), d = 0; d < c.length; d++) {
                for (var e = c[d]; ' ' === e.charAt(0); ) e = e.substring(1);
                if (0 === e.indexOf(b)) {
                    var f = e.substring(b.length, e.length);
                    return JSON.parse(decodeURIComponent(f))
                }
            }
            return {
            }
        }
    In diesem JS-Code in "https://www.paypalobjects.com/webstatic/ppplus/ppplus.min.js" werden die Cookies nach dem Cookie "paypalplus_session_v2" durchsucht... (Parameter "a".)

    Dieses Cookie ist aber nicht vorhanden, so dass die darin wohl definierten URLn nicht gefunden werden, und daher die Fehlermeldung!

    Wer legt dieses Cookie wo an????
     
  14. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    Ich würde tippen, dass die PayPal-PLUS-Wall dieses Cookie eigentlich setzt. Ich kann es gerade nicht gut testen, weil die PLUS-Wall im Sandbox-Modus seit Tagen nur einen Internal Server Error wirft und daher unbenutzbar ist.
     
  15. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ich habe mal eine Anfrage an den PayPal-Support gerichtet, was es mit diesem Cookie auf sich hat, und wo das her kommt.....

    Was mir einfällt:

    ich habe in meinem Browser "third-party-cookies" deaktiviert, um dieses exzessive tracking meines Surfverhaltens zu unterbinden...

    Aus Sicht des Gambio-Shops wäre das PayPal-Cookie doch ein solches "third-party-cookies", oder?

    Könnte das die Ursache für das fehlende Cookie sein????
     
  16. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ein anderes Thema:

    was mir auffällt ist, dass im Shop bei einer PayPal-Express-Zahlung (aus dem Warenkorb) immer ein Gast-Account angelegt wird, wenn der Besucher nicht eingelogged ist.

    Wäre es nicht sinnvoll, anhand der von PayPal gelieferten Email-Adresse zu prüfen, ob unter dieser Adresse nicht schon ein Konto existiert, und, falls eines existiert, dann dieses zu verwenden?
     
  17. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    Ich gehe davon aus, dass das Cookiesetzen aus dem PLUS-IFrame heraus geschieht, also durch Content, der von PayPal kommt. Das dürfte dann eigentlich nicht unter Third Party fallen. Aber du kannst ja mal mit der Option herumexperimentieren, falls du da etwas heraus findest, das sich hinreichend buggy anfühlt, würden wir das mal bei PayPal vorstellen.

    Nein, ein Gast-Account wird nur angelegt, wenn der Kunde vorher nicht eingeloggt war und die E-Mail-Adresse im Shop nicht bekannt ist. Bei Übereinstimmung der Adresse, die von PayPal kommt, mit einem Account im Shop, bestimmt die Konfiguration
    „Login per ECS erlauben“, was passiert. Wenn die Option aktiviert ist, wird der Kunde direkt in seinen bestehenden Gambio-Account eingeloggt, sonst landet er auf der Loginseite. (Ja, da fehlt in der Situation noch ein Hinweistext, steht auf meiner ToDo-Liste. *g*)
     
  18. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Könnt Ihr bitte Eure PayPal-Kontakte mal anmorsen, dass PayPal endlich seine Sandbox wieder in Ordnung bringt!?

    Man kann da nix mehr testen.
     
  19. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Wir beschweren uns etwa einmal pro Werktag, seit einigen Wochen, wir könnten die nämlich auch gerade öfter für die eigene Entwicklung gebrauchen ;)
     
  20. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Vielleicht solltet Ihr mal auf stündliche Beschwerden wechseln. :)