Paypal - Umleitung zurück zum Shop

Habe Oxid 4.10.8 mit OE Paypal Standalone im Einsatz.

Paypal kann im Bestellprozess aktiviert werden, Login bei Paypal funktioniert auch, danach werde ich wieder zurück zum Shop geleitet, jedoch nicht um die Bestellung abzuschließen sondern im komme auf die Startseite (URL /index.php?). Der Fehler tritt sowohl beim Standard Checkout als auch beim Express Checkout auf.

Die Paypal Log sieht so aus, eigentlich kann ich nichts ungewöhnliches entdecken.

======================= CALLBACK REQUEST FROM PAYPAL [2019-10-04 08:04:59] ======================= #

SESS ID: 5fqtmpimt06is589uvrfub0vr0
array (
  'lang' => '0',
  'sid' => '5fqtmpimt06is589uvrfub0vr0',
  'rtoken' => '75e260bd',
  'shp' => 'oxbaseshop',
  'cl' => 'oePayPalExpressCheckoutDispatcher',
  'fnc' => 'processCallBack',
  'METHOD' => 'CallbackRequest',
  'CALLBACKVERSION' => '84.0',
  'TOKEN' => 'EC-63183286LB7656129',
  'LOCALECODE' => 'de_AT',
  'CURRENCYCODE' => 'EUR',
  'L_NAME0' => 'Gesamtsumme:',
  'L_NUMBER0' => '',
  'L_DESC0' => '',
  'L_AMT0' => '11.9',
  'L_QTY0' => '1',
  'L_ITEMWEIGHTUNIT0' => '',
  'L_ITEMWEIGHTVALUE0' => '',
  'L_ITEMHEIGHTUNIT0' => '',
  'L_ITEMHEIGHTVALUE0' => '',
  'L_ITEMWIDTHUNIT0' => '',
  'L_ITEMWIDTHVALUE0' => '',
  'L_ITEMLENGTHUNIT0' => '',
  'L_ITEMLENGTHVALUE0' => '',
  'SHIPTOSTREET' => 'xxx',
  'SHIPTOCITY' => 'xxx',
  'SHIPTOSTATE' => '',
  'SHIPTOCOUNTRY' => 'AT',
  'SHIPTOZIP' => 'xxxx',
  'SHIPTOSTREET2' => '',
)

======================= Request to PayPal [2019-10-04 08:31:52] ======================= #

SESS ID: bvhhtfaetan7gi9l6bq9251fe4
array (
  'VERSION' => '84.0',
  'PWD' => 'xxxx',
  'USER' => 'xxx',
  'SIGNATURE' => 'Apr.t.EcEOpoqL-foNGJ8DUMAhhuAgPM8.u1bDCdN4BhQhhyP7RzZoCY',
  'CALLBACKVERSION' => '84.0',
  'LOCALECODE' => 'de_DE',
  'SOLUTIONTYPE' => 'Mark',
  'BRANDNAME' => 'xxx',
  'CARTBORDERCOLOR' => '00CCFF',
  'RETURNURL' => 'https://www.xxx/index.php?lang=0&sid=bvhhtfaetan7gi9l6bq9251fe4&rtoken=9c990539&shp=oxbaseshop&cl=oePayPalStandardDispatcher&fnc=getExpressCheckoutDetails',
  'CANCELURL' => 'https://www.xxx/index.php?lang=0&sid=bvhhtfaetan7gi9l6bq9251fe4&rtoken=9c990539&shp=oxbaseshop&cl=payment',
  'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale',
  'NOSHIPPING' => '0',
  'PAYMENTREQUEST_0_AMT' => '23.90',
  'PAYMENTREQUEST_0_CURRENCYCODE' => 'EUR',
  'PAYMENTREQUEST_0_ITEMAMT' => '19.90',
  'PAYMENTREQUEST_0_SHIPPINGAMT' => '4.00',
  'PAYMENTREQUEST_0_SHIPDISCAMT' => '0.00',
  'L_SHIPPINGOPTIONISDEFAULT0' => 'true',
  'L_SHIPPINGOPTIONNAME0' => 'Post AG',
  'L_SHIPPINGOPTIONAMOUNT0' => '4.00',
  'PAYMENTREQUEST_0_DESC' => 'Ihre Bestellung bei xxx in H�he von 23,90 EUR',
  'PAYMENTREQUEST_0_CUSTOM' => 'Ihre Bestellung bei xxx in H�he von 23,90 EUR',
  'ADDROVERRIDE' => '1',
  'MAXAMT' => '24.90',
  'L_PAYMENTREQUEST_0_NAME0' => 'Artikel',
  'L_PAYMENTREQUEST_0_AMT0' => '19.90',
  'L_PAYMENTREQUEST_0_QTY0' => '1',
  'L_PAYMENTREQUEST_0_ITEMURL0' => 'http://www.xxx/Spiele/Playstation-4/Agents-Of-Mayhem-Steelbox.html?force_sid=bvhhtfaetan7gi9l6bq9251fe4&',
  'L_PAYMENTREQUEST_0_NUMBER0' => '11475',
  'EMAIL' => '[email protected]',
  'PAYMENTREQUEST_0_SHIPTONAME' => 'xxx',
  'PAYMENTREQUEST_0_SHIPTOSTREET' => 'xxxx',
  'PAYMENTREQUEST_0_SHIPTOCITY' => 'xxxx',
  'PAYMENTREQUEST_0_SHIPTOZIP' => 'xxxx',
  'PAYMENTREQUEST_0_SHIPTOPHONENUM' => '',
  'PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE' => 'AT',
  'METHOD' => 'SetExpressCheckout',
)

======================= Response from PayPal [2019-10-04 08:31:53] ======================= #

SESS ID: bvhhtfaetan7gi9l6bq9251fe4
array (
  'TOKEN' => 'EC-01Y83953BJ4972645',
  'TIMESTAMP' => '2019-10-04T06:31:53Z',
  'CORRELATIONID' => 'b62b182d58256',
  'ACK' => 'Success',
  'VERSION' => '84.0',
  'BUILD' => '53688488',
)

======================= Request to PayPal [2019-10-04 08:32:07] ======================= #

SESS ID: bvhhtfaetan7gi9l6bq9251fe4
array (
  'VERSION' => '84.0',
  'PWD' => 'xxxx',
  'USER' => 'xxx',
  'SIGNATURE' => 'Apr.t.EcEOpoqL-foNGJ8DUMAhhuAgPM8.u1bDCdN4BhQhhyP7RzZoCY',
  'TOKEN' => 'EC-01Y83953BJ4972645',
  'METHOD' => 'GetExpressCheckoutDetails',
)

======================= Response from PayPal [2019-10-04 08:32:08] ======================= #

SESS ID: bvhhtfaetan7gi9l6bq9251fe4
array (
  'TOKEN' => 'EC-01Y83953BJ4972645',
  'BILLINGAGREEMENTACCEPTEDSTATUS' => '0',
  'CHECKOUTSTATUS' => 'PaymentActionNotInitiated',
  'TIMESTAMP' => '2019-10-04T06:32:08Z',
  'CORRELATIONID' => 'e9251b01c453e',
  'ACK' => 'Success',
  'VERSION' => '84.0',
  'BUILD' => '53688488',
  'EMAIL' => 'xxx',
  'PAYERID' => '6T8XCQBYLE6K2',
  'PAYERSTATUS' => 'verified',
  'FIRSTNAME' => 'xxx',
  'LASTNAME' => 'xxx',
  'COUNTRYCODE' => 'AT',
  'SHIPTONAME' => 'xxx',
  'SHIPTOSTREET' => 'xxx',
  'SHIPTOCITY' => 'xxx',
  'SHIPTOZIP' => 'xxx',
  'SHIPTOCOUNTRYCODE' => 'AT',
  'SHIPTOCOUNTRYNAME' => 'Austria',
  'ADDRESSSTATUS' => 'Confirmed',
  'CURRENCYCODE' => 'EUR',
  'AMT' => '23.90',
  'ITEMAMT' => '19.90',
  'SHIPPINGAMT' => '4.00',
  'HANDLINGAMT' => '0.00',
  'TAXAMT' => '0.00',
  'CUSTOM' => 'Ihre Bestellung bei xxx in H�he von 23,90 EUR',
  'DESC' => 'Ihre Bestellung bei xxx in H�he von 23,90 EUR',
  'INSURANCEAMT' => '0.00',
  'SHIPDISCAMT' => '0.00',
  'INSURANCEOPTIONOFFERED' => 'false',
  'L_NAME0' => 'Artikel',
  'L_NUMBER0' => '11475',
  'L_QTY0' => '1',
  'L_TAXAMT0' => '0.00',
  'L_AMT0' => '19.90',
  'PAYMENTREQUEST_0_CURRENCYCODE' => 'EUR',
  'PAYMENTREQUEST_0_AMT' => '23.90',
  'PAYMENTREQUEST_0_ITEMAMT' => '19.90',
  'PAYMENTREQUEST_0_SHIPPINGAMT' => '4.00',
  'PAYMENTREQUEST_0_HANDLINGAMT' => '0.00',
  'PAYMENTREQUEST_0_TAXAMT' => '0.00',
  'PAYMENTREQUEST_0_CUSTOM' => 'Ihre Bestellung bei xxx in H�he von 23,90 EUR',
  'PAYMENTREQUEST_0_DESC' => 'Ihre Bestellung bei xxx in H�he von 23,90 EUR',
  'PAYMENTREQUEST_0_INSURANCEAMT' => '0.00',
  'PAYMENTREQUEST_0_SHIPDISCAMT' => '0.00',
  'PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID' => 'xxx',
  'PAYMENTREQUEST_0_INSURANCEOPTIONOFFERED' => 'false',
  'PAYMENTREQUEST_0_SHIPTONAME' => 'xxx',
  'PAYMENTREQUEST_0_SHIPTOSTREET' => 'xxx',
  'PAYMENTREQUEST_0_SHIPTOCITY' => 'xxx',
  'PAYMENTREQUEST_0_SHIPTOZIP' => 'xxx',
  'PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE' => 'AT',
  'PAYMENTREQUEST_0_SHIPTOCOUNTRYNAME' => 'Austria',
  'PAYMENTREQUEST_0_ADDRESSSTATUS' => 'Confirmed',
  'L_PAYMENTREQUEST_0_NAME0' => 'Artikel',
  'L_PAYMENTREQUEST_0_NUMBER0' => '11475',
  'L_PAYMENTREQUEST_0_QTY0' => '1',
  'L_PAYMENTREQUEST_0_TAXAMT0' => '0.00',
  'L_PAYMENTREQUEST_0_AMT0' => '19.90',
  'PAYMENTREQUESTINFO_0_ERRORCODE' => '0',
)

Danke für die Hilfe!

@DevilRN: Wenn die Umleitung auf die Startseite erfolgt, dann ist das ein Fallback von OXID wenn etwas schief gelaufen ist. Das muss nicht mal unbedingt an Paypal liegen. Du wirst in der log\oxideshop.log den Fehler finden, denn OXID schreibt kurz vor der Rückleitung auf die Startseite ein Errorlog.

Habe nur eine Exception Log, hier finde ich einen Eintrag der zeitlich passen würde.

oxSystemComponentException-oxException (time: 2019-10-08 09:26:12): [0]: Function 'isExpressCheckoutEnabledInDetails' does not exist or is not accessible! (oxViewConfig)

Habe das Paypal Modul komplett deinstalliert und neu installiert (lt. Anleitung).
In der Datenbank unter [oxtplblocks] finde ich auch keine Einträge.

Habe testweise das Standard-Template aktiviert, auch hier komme ich nach dem Paypal-Login auf die Startseite statt in den Checkout Prozess.

Wie könnte ich jetzt noch auf Fehlersuche gehen?

ist das PayPal Modul den aktiviert?

@DevilRN: Die Frage von @indianer3c ist durchaus berechtigt. Wenn das Modul vorher einmal installiert war und von Dir neu installiert wurde, geht bei allen Prozessen die eingerichtete Zahlart “paypal” nicht verloren. D.h. Die Zahlart kann existieren, ohne dass das Modul aktiviert ist.

Schau auch noch einmal unter Admin > Erweiterungen > Module > Reiter “Installierte Shop-Module” und suche in der Übersicht nach “OxidEsales\Eshop\Core\ViewConfig”. Da drunter muss der Punkt “OxidEsales\PayPalModule\Core\ViewConfig” stehen. Der darf auch nicht durchgestrichen sein.
Falls unter dem Oberpunkt “OxidEsales\Eshop\Core\ViewConfig” mehrere Einträge stehen, sortiere den Paypal-Eintrag an erste Stelle (Speichern nicht vergessen) und probiere noch einmal. Mglw. beharken sich hier auch mehrere Module…

Ja das Modul ist aktiviert und funktioniert ja bis zu Zurückleitung von Paypal zum Shop korrekt.
Statt den Kauf abschließen zu können werde ich auf die Startseite geleitet.

Hab die komplette Auflistung der Modul-Einträge:

Danke für Eure Hilfe!

Hm, das sieht alles gut aus. In Deinen Paypal-Logs ist mir nur noch aufgefallen, das Du Deine Seite mit http:// und https:// aufrufen kannst? Wenn ja und Du beginnst immer mit http://, fang mal von Anfang an mit https://.

Und noch eine zweite Sache:
Prüfe mal hier : \modules\oe\oepaypal\core\oepaypaloxviewconfig.php ob Du die Zeile public function isExpressCheckoutEnabledInDetails() findest. Das ist die Methode die als fehlend im Errorlog notiert wurde. Achte bitte auf Groß- und Kleinschreibung.

Solltest Du nicht fündig werden, scheinst Du ein veraltetes Paypal-Modul zu nutzen. Die letzte OXID4-Paypal-Modul-Version war: 3.4.0

Die Adresse mit http taucht auf wenn im Paypal Modul “Warenkorb bei PayPal anzeigen” aktiviert ist. Ist dann scheinbar der Link zum Produkt. Hab nun in der config.inc.php auch die Standard Shop-URL auf https umgestellt und jetzt ist alles https. Geändert hat es aber leider auch nichts.

Ich verwende das Paypal Modul Version 3.4

Und noch eine zweite Sache:
Prüfe mal hier : \modules\oe\oepaypal\core\oepaypaloxviewconfig.php ob Du die Zeile public function isExpressCheckoutEnabledInDetails() findest. Das ist die Methode die als fehlend im Errorlog notiert wurde. Achte bitte auf Groß- und Kleinschreibung.

Die Zeile finde ich in meiner oepaypaloxviewconfig.php.

Am Server ist PHP 5.5.38 aktiv. Soll ich 5.6 versuchen? Leider kann ich dann nicht mehr auf 5.5 zurück (eine blöde Beschränkung beim Hoster).

@DevilRN: Das ist gut so, das Du nicht mehr zurück zu PHP5.5 kannst :wink: (aber ich weiß was Du meinst).

Ich habe jetzt aber eine starke Vermutung. Dein PHP+Apache wird mlgw. nicht den Anforderungen für das das von Paypal geforderte TLS1.2 SSL-Protokoll erfüllen. (siehe google: Paypal + tls)

Bevor Du an den PHP-Versionseinstellungen arbeitest, stelle für Dich sicher, das Du keine verschlüsselten OXID-Module verwendest. Die sind in der Regel an genau die PHP-Version gebunden. Wenn Du das geklärt hast, dann hier mein Vorschlag:

Variante 1) Richte bei Deinem Hoster unter einer Sub-Domain ein Test-System ein. Schalte hier auf PHP5.6. Viele Hoster haben Tools bei der Hand, mit denen Du 1:1 Kopien von DBs und Filesystemen machen kannst. Probiere anschließend in der Testumgebung den Checkout aus.

Variante 2) Viele Hoster ermöglichen durch ein htaccess-Regel die Umschaltung des PHPs auf Filesystembasis. (Stichwort : addHandler). Probiere es so mit Deinem Shop aus.

Kommst Du durch den Checkout, kannst Du zentral auf PHP5.6 wechseln.

Mit weiteren überschaubaren Anpassungen kannst Du den Shop auch mit PHP7.1 laufen lassen. Schau Dir dann dazu das hier die Links in dem Kommentar an: Fatal error nach Umstellung von PHP5 auf PHP 7, CE 4.7.5

Habe mit https://www.cdn77.com/tls-test einen Test gemacht. TLS 1.2 wird unterstützt.

Der Hoster (world4you) hat leider etwas bescheidene Einstellmöglichkeiten. PHP nur zentral umstellbar (keine eigene Version für Subdomain) auch via htaccess ist Umstellen auf eine andere Version nicht möglich.

Also bleibt fast nur Augen zu und umstellen.

Nutze im Shop (COMMUNITY EDITION 4.10.8) genau dieses Paypal Modul:

PE 4.10.x - 3.4.0 for 4.10.x
https://exchange.oxid-esales.com/de/tag/paypal/OXID-eFire-Extension-PayPal-3-0-1-for-5-0-8-Stable-EE-PE-4-7-x-5-0-x.html

Sollte doch passen oder?

@Mario_Lorenz hast du noch eine Idee woran es liegen kann?

Habe nun auf PHP 5.6 umgestellt, Shop läuft wie gewohnt, aber Rückleitung von Paypal immer noch zur Startseite.

Habe eben bemerkt dass ich in der htaccess
Options +FollowSymLinks
auskommentiert habe (leider eine Beschränkung beim Hoster).

Kann das u.U. die Ursache sein?

@DevilRN: Entschuldige, ich war eine Woche im Urlaub. An Options +FollowSymLinks liegt es nicht. Das ist eine Apache-Server-Einstellung, die hier keine Rolle spielt.

Für die Community-Edition gibt es ein eigenes Paypal-Modul:

CE 4.10.x - 3.4.0 for 4.10.x
https://exchange.oxid-esales.com/de/en/OXID-Produkte/OXID-eFire-Extensions/OXID-eFire-Extension-PayPal-3-4-0-for-4-10-x-Stable-CE-4-10-x-4-9-x.html

Im OXID CE 4.10.8 Installationspaket findest Du auch genau dies passende Paypal-Modul-Version.

Hoffentlich ist das jetzt die Lösung :wink: