xt:Commerce mit Paypal in einer Endlosschleife

Die Codesuppe bei xt:Commerce hält einige Überraschungen bereit, unter anderem beim Paypal-Modul, das sich unter bestimmten Konfigurationen in eine Endlosschleife begibt. Der Kunde kann zwar bei Paypal auf “Jetzt zahlen” klicken, die Rückleitung in den Shop führt aber nur zu einem erneuten Paypal-Aufruf, wo der Kunde sich wieder neu einloggen muß.

Die Lösung zu diesem Problem zu finden hat mich gute zwei Stunden gekostet, und am Ende waren es genau fünf Zeichen die geändert werden mussten. Für die Ungeduldigen hier die Lösung des Problems in der checkout_process.php:

// check if tmp order id exists
// :ORG:     if (isset ($_SESSION['tmp_oID']) && is_int($_SESSION['tmp_oID'])) {
if (isset ($_SESSION['tmp_oID']) && is_numeric($_SESSION['tmp_oID'])) {

Wie man sieht, wurde die Abfrage “is_int” zu “is_numeric” geändert. Der technische Hintergrund ist, daß die temporäre ID der Bestellung in der Session kein Integer sondern eine Zeichenkette ist, und so diese if-Abfrage niemals erfüllt werden kann.

Die Folge davon ist die oben beschriebene Endlosschleife, in der permanent neue (temporäre) Bestellungen erzeugt werden, der Kunde aber nie seine Zahlung und damit seine Bestellung abschließen kann. Ich hoffe diese kurze Beitrag erspart jemandem die gleiche Sucherei im xt:Commerce Kot Code.

Suchworte: xt:Commerce, xt commerce, paypal, endlosschleife, redirect_url, redirect, return_url, return url, paypal API, api

Werbung

Verwandte Beiträge

3 Reaktionen zu “xt:Commerce mit Paypal in einer Endlosschleife”

  1. Das rettet mir wirklich den Tag, ich bin schon fast wahnsinnig geworden, weil ich den Fehler nicht finden konnte!!!! Funktioniert jetzt super, vielen Dank!

  2. Vielen, vielen Dank – der Tipp ist Gold wert.

  3. Kam es bei euch bei jeder Bestellung zu diesem Fehler oder nur manchmal? Den bei mir häufen sich die letzte Zeit die Abbrüche bei Zahlung via PayPal. Vielleicht ist das ja die Lösung?!

Einen Kommentar schreiben