Paypal Checkout 1.0 troubleshooting

Hallo zusammen,
Hallo @Mario_Lorenz ,

Ich habe PE 6.1.5 im Einsatz
und habe “OXID-solution-catalysts/paypal-module”: “^1.0.0”
erfolgreich im local container installiert.

Mit eurem mega thread hier habe ich dann auch das onboarding überstanden. (webhook ID einfach von einem anderen Sandbox Account geklaut.)

Nun habe ich aber das Problem, dass er mir bei den Zahlungsmethoden die unterkategoerien nicht anzeigt. bzw. mich beim klicken auf weiter zu paypal weiter leitet.

So wie er das bei paypal plus macht(alle anderen Paypal Zahlungsmethoden hatte ich auch schon deaktiviert). Ich kann es selektieren, und weiter klicken, dann spring er aber nicht zu Paypal sondern direkt zu “jetzt zahlungpflichtig bestellen” hier wirft er mich zu Zaahlungsmethoden zurück und sagt Zahlung nicht bestätigt.
Ich muss also irgend wie diese unterkategorien einschalten. Wie bekomme ich da hin? (RDFa habe PayPal und Rechnung aktiviert)
Giropay und Sofort hat er mir übrigens komischerweise auch aktiviert nachdem das onboarding durch war. Die gab es vorher auch nicht.

Könnt Ihr mir sagen wo mir hier die Einstellungen fehlen.

Selektieren des neuen paypal Checkout (ist wieder umbenannt zum Default Wert)

Es gibt mittlerweile wie im anderen Thread erwähnt die Version 1.1.3 vom Modul. Daher um die aktuellste Version mit den ein oder anderen gelösten Bug/Unschönheit zu bekommen müsstest z.B.

composer require oxid-solution-catalysts/paypal-module ^1.1

So bekommst bei einem composer update --no-dev immer die neuste veröffentliche Modulversion. Mit der Angabe ^1.1 bekommst alle die Vorne mit 1.1 beginnen. Sollte z.B. eine Version 1.1.4 erscheinen würde Dir Composer diese auch reinladen.

Wichtig dabei ist immer bei der Nachfrage ob das entsprechende Modul im source Verzeichnis aktualisiert werden soll musst immer bejahen mit “y”. Im Modulverzeichnis solltest darauf achten keine Template Dateien direkt dort angepasst zu haben, weil diese werden Dir dann überschrieben!

Dein Problem kann man nicht nachvollziehen. Das neue PayPal Checkout Modul löst das PayPal Plus Modul ab und die Ansicht von PayPal Plus wird so nicht wieder kommen.

Das neue PayPal Checkout Modul aktiviert alle Zahlungsarten die es neu mitbringt von selbst, solltest Du in den jeweiligen Land verkaufen wofür eine Zahlungsart gedacht ist.

Würde vorschlagen Du ziehst Dir die aktuelle Modulversion die Heute früh erschienen, konfigurierst nochmal die Zahlungsarten welche Du haben möchtest deaktivierst einfach.

Anschließend testest erneut ob die Probleme noch auftreten und beschreibst die Probleme dann besser z.B.

  • Wie wird es Dir angezeigt?
  • Wie erwartest Du es, dass es angezeigt wird etc?
1 Like

Guten morgen, ich habe deine Änderungen ausgeführt.

version 1.1. und composer update --no-dev ausgeführt und Moduldaten überschrieben.
mein Problem besteht weiterhin

Das Problem ist: Das beim klicken auf “Weiter”, er nicht wie erwartet paypal öffnet, sondern direkt zum nächsten schritt im Checkout springt. (Bestellung überprüfen). Wenn ich dann auf “Zahlungspflichtig bestellen” klicke, kommt eine Fehlermeldung

Autorisierung der Zahlung fehlgeschlagen. Bitte prüfen Sie Ihre Eingabe!

Was auch sinn macht da er mich ja nicht zu paypal weiter geleitet hat.

In vorheriger Konfiguration mit Paypal Plus (Siehe Screenshot oben), musste ich die Optionbox selektieren, woraufhin sich alle paypal zahlungen geöffnet haben (diese waren übrigens nicht als Zahlungsarten angelegt,sondern nur paypal plus). Hier musste dann eine der Zahlungen ausgewählt werden. Erst dann war die Zahlungsmethode selektiert und Paypal Plus hat sich beim klick auf weiter geöffnet.

Diese selektierung unter der Optionsbox der Zahlungsarten scheint zu fehlen, bzw das ist jetzt anders und alle Paypal Zahlungsarten werden als überkategorie (Optionsbox ) angezeigt. Aber dann muss er ja beim klick auf Weiter diese auch öffnen, was er leider nicht macht.

Moin @JBlanck :slight_smile:

dies ist das normale neue Verhalten. Nur beim Klick auf PayPal Express Button wird PayPal direkt geöffnet.

Bei Auswahl einer PayPal Zahlungsart im Checkout ist es “normal”, dass er auf den nächsten Schritt springt. Erst mit Klick auf “Zahlungspflichtig bestellen” sollte sich PayPal öffnen.

Dies bedeutet im Prinzip die ausgewählte Zahlungsart wurde nicht aktzeptiert bzw. abgelehnt nach Prüfung und der Kunde soll eine andere Zahlungsart wählen.

Dies wird wahrscheinlich bei Rechnungskauf am häufigsten vorkommen, dass diese Zahlungsart abgelehnt weil die z.B. die Schufa Bewertung negativ oder andere Kriterien.

Genau dies ist das alte Verhalten. Dies wurde aber nicht beibehalten und PayPal Plus Zahlungsart kann man anscheinend ab Oktober 2022 nicht mehr nutzen, weil die API Version 1 dahinter Ende September 2022 abgeschaltet wird von PayPal.

Dies fehlt nicht. Das neue PayPal Checkout Modul löst dies völlig anders als sein Vorgänger.

Nein, dies schon so korrekt, dass es zum nächsten Bestellschritt geht… Dies ist das neue Verhalten vom PayPal Checkout Modul.

ok, verstehe. Neues Verhalten. Paypal soll sich erst bei “Zahlungspflichtig Bestellen” öffnen

Das tut es leider auch nicht. Aber dann gibts jetzt auch eine Fehlermeldung in den logs.

> [2022-06-29 09:35:28] OXID Logger.ERROR: Error on order create call. ["[object] (OxidSolutionCatalysts\\PayPalApi\\Exception\\ApiException(code: 401): POST https://api.sandbox.paypal.com/v1/oauth2/token returned: 401 Unauthorized\nResponse: \n{\"error\":\"invalid_client\",\"error_description\":\"Client Authentication failed\"}\n\nThe following curl request could be used to simulate a similar request:\n        \ncurl -v -X POST \"https://api.sandbox.paypal.com/v1/oauth2/token\" -H \"User-Agent: GuzzleHttp/7\" -H \"Host: api.sandbox.paypal.com\" -H \"Authorization: Basic somelongIDs=\" -H \"Content-Type: application/x-www-form-urlencoded\" -H \"Accept: application/json\" -d grant_type=client_credentials at /var/www/html/vendor/oxid-solution-catalysts/paypal-client/src/Service/BaseService.php:45)\n[stacktrace]\n#0 /var/www/html/vendor/oxid-solution-catalysts/paypal-client/generated/Service/Orders.php(55): OxidSolutionCatalysts\\PayPalApi\\Service\\BaseService->send('POST', '/orders', Array, Array, '{\"intent\":\"CAPT...')\n#1 /var/www/html/vendor/oxid-solution-catalysts/paypal-module/src/Service/Payment.php(110): OxidSolutionCatalysts\\PayPalApi\\Service\\Orders->createOrder(Object(OxidSolutionCatalysts\\PayPalApi\\Model\\Orders\\OrderRequest), 'Oxid_Cart_Payme...', '', 'return=minimal', '')\n#2 /var/www/html/vendor/oxid-solution-catalysts/paypal-module/src/Service/Payment.php(373): OxidSolutionCatalysts\\PayPal\\Service\\Payment->doCreatePayPalOrder(Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), 'CAPTURE', NULL, NULL, NULL, '', '', 'Oxid_Cart_Payme...', 'https://oxid6.l...', 'https://oxid6.l...')\n#3 /var/www/html/vendor/oxid-solution-catalysts/paypal-module/src/Model/Order.php(223): OxidSolutionCatalysts\\PayPal\\Service\\Payment->doExecuteStandardPayment(Object(OxidSolutionCatalysts\\PayPal\\Model\\Order), Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), 'CAPTURE')\n#4 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Application/Model/Order.php(519): OxidSolutionCatalysts\\PayPal\\Model\\Order->_executePayment(Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), Object(OxidEsales\\Eshop\\Application\\Model\\UserPayment))\n#5 /var/www/html/source/modules/digidesk/dd_r6connect/application/models/dd_r6connect_oxorder.php(38): OxidEsales\\EshopCommunity\\Application\\Model\\Order->finalizeOrder(Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), Object(OxidSolutionCatalysts\\PayPal\\Model\\User), false)\n#6 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Application/Controller/OrderController.php(217): dd_r6connect_oxorder->finalizeOrder(Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), Object(OxidSolutionCatalysts\\PayPal\\Model\\User))\n#7 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Core/Controller/BaseController.php(524): OxidEsales\\EshopCommunity\\Application\\Controller\\OrderController->execute()\n#8 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(332): OxidEsales\\EshopCommunity\\Core\\Controller\\BaseController->executeFunction('execute')\n#9 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(274): OxidEsales\\EshopCommunity\\Core\\ShopControl->executeAction(Object(OxidSolutionCatalysts\\PayPal\\Controller\\OrderController), 'execute')\n#10 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(137): OxidEsales\\EshopCommunity\\Core\\ShopControl->_process('OxidEsales\\\\Esho...', 'execute', NULL, NULL)\n#11 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Core/Oxid.php(26): OxidEsales\\EshopCommunity\\Core\\ShopControl->start()\n#12 /var/www/html/source/index.php(15): OxidEsales\\EshopCommunity\\Core\\Oxid::run()\n#13 {main}\n"] []
> [2022-06-29 09:35:29] OXID Logger.ERROR: Could not create PayPal order. ["[object] (OxidSolutionCatalysts\\PayPal\\Exception\\PayPalException(code: 0): Could not create PayPal order. at /var/www/html/vendor/oxid-solution-catalysts/paypal-module/src/Exception/PayPalException.php:16)\n[stacktrace]\n#0 /var/www/html/vendor/oxid-solution-catalysts/paypal-module/src/Service/Payment.php(388): OxidSolutionCatalysts\\PayPal\\Exception\\PayPalException::createPayPalOrderFail()\n#1 /var/www/html/vendor/oxid-solution-catalysts/paypal-module/src/Model/Order.php(223): OxidSolutionCatalysts\\PayPal\\Service\\Payment->doExecuteStandardPayment(Object(OxidSolutionCatalysts\\PayPal\\Model\\Order), Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), 'CAPTURE')\n#2 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Application/Model/Order.php(519): OxidSolutionCatalysts\\PayPal\\Model\\Order->_executePayment(Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), Object(OxidEsales\\Eshop\\Application\\Model\\UserPayment))\n#3 /var/www/html/source/modules/digidesk/dd_r6connect/application/models/dd_r6connect_oxorder.php(38): OxidEsales\\EshopCommunity\\Application\\Model\\Order->finalizeOrder(Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), Object(OxidSolutionCatalysts\\PayPal\\Model\\User), false)\n#4 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Application/Controller/OrderController.php(217): dd_r6connect_oxorder->finalizeOrder(Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), Object(OxidSolutionCatalysts\\PayPal\\Model\\User))\n#5 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Core/Controller/BaseController.php(524): OxidEsales\\EshopCommunity\\Application\\Controller\\OrderController->execute()\n#6 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(332): OxidEsales\\EshopCommunity\\Core\\Controller\\BaseController->executeFunction('execute')\n#7 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(274): OxidEsales\\EshopCommunity\\Core\\ShopControl->executeAction(Object(OxidSolutionCatalysts\\PayPal\\Controller\\OrderController), 'execute')\n#8 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(137): OxidEsales\\EshopCommunity\\Core\\ShopControl->_process('OxidEsales\\\\Esho...', 'execute', NULL, NULL)\n#9 /var/www/html/vendor/oxid-esales/oxideshop-ce/source/Core/Oxid.php(26): OxidEsales\\EshopCommunity\\Core\\ShopControl->start()\n#10 /var/www/html/source/index.php(15): OxidEsales\\EshopCommunity\\Core\\Oxid::run()\n#11 {main}\n"] []

Hier scheint er authentificationsporbleme zu haben
Liegt das an der localen domain oxid6.localhost ? Oder möglicherweise an dem webhook, der auf domain.com andgelegt ist, dessen ID ich verwendet habe? (geklaut von anderer sandbox konfig)
Kann ich denn einen Webhook anlegen mit.

https://www.oxid6.localhost/index.php?cl=oscpaypalwebhook

Der bräuchte dann warscheinlich access vom internet oder?

Weil das Modul sagt konfiguration ist alles tutti

Problem behoben:
Ich habe alle Sandbox konfigurationen noch einmal gelöscht.
neue Sandbox accounts erstellt
neue Sandbox API erstellt
Webhook auf meine domain.com neu angelegt unter der selben app.
habe die vorher gelöschte Paypal Checkout Modul konfiguration daten neu eingetragen und jetzt funltioniert es.

Interessanten BUG gefunden: Wenn ich alle 3 Konfig keys im PayPal Checkout Modul auf einmal eintrage,speichert er bei mir nicht sondern leitet auf eine weiße seite weiter.
Workaround: ID und passwort eintragen und speichern Dann Webhook eintragen und speichern. Dann geht es.

@JBlanck cool wäre wenn Du dies als Bug-Report unter Main - OXID eShop bugtrack einreichen könntest. Damit bei Problemen Struktur einkommt und die dort gemeldeten Auffälligkeiten nach einer Priorität Reihenfolge abgearbeitet werden können und dies an einer zentralen Stelle verwaltet.

Wir haben Version 1.1.5 seit gestern laufen und bei Paypal-Express werden die Versandkosten nicht berechnet, im OXID Abschluss und in der anschliessenden Bestellbestätigung sind sie drin, in der Paypalabrechnung nur der Artikelbetrag.

@CreativeDog: Das ist ungewöhnlich. Du wirst nach der Rückkehr vom PayPal-PopUp auf die letzte Seite im Checkout geleitet. Dort siehst Du noch einmal die komplette Order. Der Total-Betrag der die Versandkosten enthält, ist der der bei PayPal auch abgebucht wird. Insofern sind die Versandkosten enthalten.

@Mario_Lorenz
So sollte es sein und visuell scheint es auch so, aber es sieht halt nur so aus.
Zahlungsart Paypal-Express direkt aus Artikel oder Warenkorb
Einloggen bei Paypal, dort wird erstmal nur der Artikelpreis angezeigt und authorisiert, es erfolgt im Hintergrund kein Abgleich mit dem Shop was den Versand angeht, wie beim alten Modul.
Zahlung wird von mir bestätigt und ich lande auf der abschliessenden Übersichtseite von OXID, mit Versandkosten. Bestellung wird bestätigt und im OXID wie auch in der Bestätigungsemail mit Versandkosten ausgewiesen. Belastet wird das Kundenkonto durch Paypal aber leider ohne die Versandkosten.