CE 6.4 & PayPal Checkout 2.1 - Troubleshooting

Das trifft es auf den Punkt, ich bin nur dabei alle “Not finished” Bestellungen hinterher-zumailen und stelle fest das einige glauben Sie haben eine erfolgreiche Bestellung getätigt. Also 1.1.6 eher Verschlimm-Besserung

gerade wurde wieder eine PayPal-Express Bestellung “not finished” angelegt. in der oxideshop.log wurde gespeichert:

[2022-08-17 10:29:18] OXID Logger.ERROR: Error on order capture call. ["[object] (OxidSolutionCatalysts\PayPalApi\Exception\ApiException(code: 422): POST https://api.paypal.com/v2/checkout/orders/32V293485P3274241/capture returned: 422 Unprocessable Entity
Returned Message: The requested action could not be performed, semantically incorrect, or failed business validation.
Error Details:
[{"issue":"PAYER_ACTION_REQUIRED","description":"Payer needs to perform the following action before proceeding with payment."}]

Response:
{"name":"UNPROCESSABLE_ENTITY","debug_id":"2bb3b3fdd6754","links":[{"href":"https:\/\/developer.paypal.com\/docs\/api\/orders\/v2\/#error-PAYER_ACTION_REQUIRED","rel":"information_link","method":"GET"}]}

The following curl request could be used to simulate a similar request:

	curl -v -X POST \"https://api.paypal.com/v2/checkout/orders/32V293485P3274241/capture\" -H \"User-Agent: GuzzleHttp/7\" -H \"Host: api.paypal.com\" -H \"PayPal-Client-Metadata-Id: \" -H \"Content-Type: application/json\" -H \"PayPal-Auth-Assertion: \" -H \"Prefer: return=minimal\" -H \"Authorization: Bearer A21AAMhdpx6nhN_QTGR-4xll7Otlqky4ePXfeeWAmVBY0elZnpXRtjC2UYxVrAb14gHQT20tGeo5BTyLNVrxdJkW92pr1epRw\" -d {} at /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-client/src/Service/BaseService.php:45)
	[stacktrace]
	#0 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-client/generated/Service/Orders.php(271): OxidSolutionCatalysts\\PayPalApi\\Service\\BaseService->send('POST', '/orders/32V2934...', Array, Array, '{}')
	#1 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Service/Payment.php(220): OxidSolutionCatalysts\\PayPalApi\\Service\\Orders->capturePaymentForOrder('', '32V293485P32742...', Object(OxidSolutionCatalysts\\PayPalApi\\Model\\Orders\\OrderCaptureRequest), '')
	#2 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Model/PaymentGateway.php(76): OxidSolutionCatalysts\\PayPal\\Service\\Payment->doCapturePayPalOrder(Object(SendCloud\\Oxid\\Extend\\Application\\Models\\Order), '32V293485P32742...', 'oscpaypal_expre...')
	#3 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Model/PaymentGateway.php(41): OxidSolutionCatalysts\\PayPal\\Model\\PaymentGateway->doExecutePayPalExpressPayment(Object(SendCloud\\Oxid\\Extend\\Application\\Models\\Order))
	#4 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Application/Model/Order.php(918): OxidSolutionCatalysts\\PayPal\\Model\\PaymentGateway->executePayment(44.85, Object(SendCloud\\Oxid\\Extend\\Application\\Models\\Order))
	#5 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Model/Order.php(244): OxidEsales\\EshopCommunity\\Application\\Model\\Order->_executePayment(Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), Object(OxidEsales\\Eshop\\Application\\Model\\UserPayment))
	#6 /home/users/my-resource/www/oxid-shop/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))
	#7 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Application/Controller/OrderController.php(217): OxidEsales\\EshopCommunity\\Application\\Model\\Order->finalizeOrder(Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), Object(SendCloud\\Oxid\\Extend\\Application\\Models\\User))
	#8 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/Controller/BaseController.php(524): OxidEsales\\EshopCommunity\\Application\\Controller\\OrderController->execute()
	#9 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(332): OxidEsales\\EshopCommunity\\Core\\Controller\\BaseController->executeFunction('execute')
	#10 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(274): OxidEsales\\EshopCommunity\\Core\\ShopControl->executeAction(Object(SendCloud\\Oxid\\Extend\\Application\\Controllers\\Order), 'execute')
	#11 /home/users/my-resource/www/oxid-shop/source/modules/oe/statistics/core/oestatisticsoxshopcontrol.php(48): OxidEsales\\EshopCommunity\\Core\\ShopControl->_process('OxidEsales\\\\Esho...', 'execute', NULL, NULL)
	#12 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(137): oeStatisticsOxShopControl->_process('OxidEsales\\\\Esho...', 'execute', NULL, NULL)
	#13 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/Oxid.php(26): OxidEsales\\EshopCommunity\\Core\\ShopControl->start()
	#14 /home/users/my-resource/www/oxid-shop/source/index.php(15): OxidEsales\\EshopCommunity\\Core\\Oxid::run()
	#15 {main}
	"] []

[2022-08-17 10:29:18] OXID Logger.ERROR: Error on order capture call. ["[object] (OxidEsales\Eshop\Core\Exception\StandardException(code: 0): OXPS_PAYPAL_ORDEREXECUTION_ERROR at /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/UtilsObject.php:231)
[stacktrace]
#0 /home/users/my-resource/www/oxid-shop/source/oxfunctions.php(101): OxidEsales\EshopCommunity\Core\UtilsObject->oxNew(‘OxidEsales\\Esho…’, ‘OXPS_PAYPAL_ORD…’)
#1 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Service/Payment.php(234): oxNew(‘OxidEsales\\Esho…’, ‘OXPS_PAYPAL_ORD…’)
#2 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Model/PaymentGateway.php(76): OxidSolutionCatalysts\PayPal\Service\Payment->doCapturePayPalOrder(Object(SendCloud\OXID\Extend\Application\Models\Order), ‘32V293485P32742…’, ‘oscpaypal_expre…’)
#3 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Model/PaymentGateway.php(41): OxidSolutionCatalysts\PayPal\Model\PaymentGateway->doExecutePayPalExpressPayment(Object(SendCloud\OXID\Extend\Application\Models\Order))
#4 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Application/Model/Order.php(918): OxidSolutionCatalysts\PayPal\Model\PaymentGateway->executePayment(44.85, Object(SendCloud\OXID\Extend\Application\Models\Order))
#5 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Model/Order.php(244): OxidEsales\EshopCommunity\Application\Model\Order->_executePayment(Object(OxidSolutionCatalysts\PayPal\Model\Basket), Object(OxidEsales\Eshop\Application\Model\UserPayment))
#6 /home/users/my-resource/www/oxid-shop/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))
#7 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Application/Controller/OrderController.php(217): OxidEsales\EshopCommunity\Application\Model\Order->finalizeOrder(Object(OxidSolutionCatalysts\PayPal\Model\Basket), Object(SendCloud\OXID\Extend\Application\Models\User))
#8 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/Controller/BaseController.php(524): OxidEsales\EshopCommunity\Application\Controller\OrderController->execute()
#9 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(332): OxidEsales\EshopCommunity\Core\Controller\BaseController->executeFunction(‘execute’)
#10 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(274): OxidEsales\EshopCommunity\Core\ShopControl->executeAction(Object(SendCloud\OXID\Extend\Application\Controllers\Order), ‘execute’)
#11 /home/users/my-resource/www/oxid-shop/source/modules/oe/statistics/core/oestatisticsoxshopcontrol.php(48): OxidEsales\EshopCommunity\Core\ShopControl->_process(‘OxidEsales\\Esho…’, ‘execute’, NULL, NULL)
#12 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(137): oeStatisticsOxShopControl->_process(‘OxidEsales\\Esho…’, ‘execute’, NULL, NULL)
#13 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/OXID.php(26): OxidEsales\EshopCommunity\Core\ShopControl->start()
#14 /home/users/my-resource/www/oxid-shop/source/index.php(15): OxidEsales\EshopCommunity\Core\OXID::run()
#15 {main}
"]
[2022-08-17 10:29:18] OXID Logger.ERROR: GET https://api.paypal.com/v2/checkout/orders/ returned: 404 Not Found
The following curl request could be used to simulate a similar request:

curl -v -X GET “https://api.paypal.com/v2/checkout/orders/” -H “User-Agent: GuzzleHttp/7” -H “Host: api.paypal.com” -H “Authorization: Bearer A21AAMhdpx6nhN_QTGR-4xll7Otlqky4ePXfeeWAmVBY0elZnpXRtjC2UYxVrAb14gHQT20tGeo5BTyLNVrxdJkW92pr1epRw” ["[object] (OxidSolutionCatalysts\PayPalApi\Exception\ApiException(code: 404): GET https://api.paypal.com/v2/checkout/orders/ returned: 404 Not Found
The following curl request could be used to simulate a similar request:

	curl -v -X GET \"https://api.paypal.com/v2/checkout/orders/\" -H \"User-Agent: GuzzleHttp/7\" -H \"Host: api.paypal.com\" -H \"Authorization: Bearer A21AAMhdpx6nhN_QTGR-4xll7Otlqky4ePXfeeWAmVBY0elZnpXRtjC2UYxVrAb14gHQT20tGeo5BTyLNVrxdJkW92pr1epRw\" at /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-client/src/Service/BaseService.php:45)
	[stacktrace]
	#0 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-client/generated/Service/Orders.php(81): OxidSolutionCatalysts\\PayPalApi\\Service\\BaseService->send('GET', '/orders/', Array, Array, NULL)
	#1 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Model/Order.php(261): OxidSolutionCatalysts\\PayPalApi\\Service\\Orders->showOrderDetails('', '')
	#2 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Model/Order.php(456): OxidSolutionCatalysts\\PayPal\\Model\\Order->getPayPalCheckoutOrder('')
	#3 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Model/PaymentGateway.php(51): OxidSolutionCatalysts\\PayPal\\Model\\Order->getOrderPaymentCapture()
	#4 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Application/Model/Order.php(918): OxidSolutionCatalysts\\PayPal\\Model\\PaymentGateway->executePayment(44.85, Object(SendCloud\\Oxid\\Extend\\Application\\Models\\Order))
	#5 /home/users/my-resource/www/oxid-shop/vendor/oxid-solution-catalysts/paypal-module/src/Model/Order.php(244): OxidEsales\\EshopCommunity\\Application\\Model\\Order->_executePayment(Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), Object(OxidEsales\\Eshop\\Application\\Model\\UserPayment))
	#6 /home/users/my-resource/www/oxid-shop/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))
	#7 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Application/Controller/OrderController.php(217): OxidEsales\\EshopCommunity\\Application\\Model\\Order->finalizeOrder(Object(OxidSolutionCatalysts\\PayPal\\Model\\Basket), Object(SendCloud\\Oxid\\Extend\\Application\\Models\\User))
	#8 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/Controller/BaseController.php(524): OxidEsales\\EshopCommunity\\Application\\Controller\\OrderController->execute()
	#9 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(332): OxidEsales\\EshopCommunity\\Core\\Controller\\BaseController->executeFunction('execute')
	#10 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(274): OxidEsales\\EshopCommunity\\Core\\ShopControl->executeAction(Object(SendCloud\\Oxid\\Extend\\Application\\Controllers\\Order), 'execute')
	#11 /home/users/my-resource/www/oxid-shop/source/modules/oe/statistics/core/oestatisticsoxshopcontrol.php(48): OxidEsales\\EshopCommunity\\Core\\ShopControl->_process('OxidEsales\\\\Esho...', 'execute', NULL, NULL)
	#12 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(137): oeStatisticsOxShopControl->_process('OxidEsales\\\\Esho...', 'execute', NULL, NULL)
	#13 /home/users/my-resource/www/oxid-shop/vendor/oxid-esales/oxideshop-ce/source/Core/Oxid.php(26): OxidEsales\\EshopCommunity\\Core\\ShopControl->start()
	#14 /home/users/my-resource/www/oxid-shop/source/index.php(15): OxidEsales\\EshopCommunity\\Core\\Oxid::run()
	#15 {main}
	"] []

ca. 50% der Express Bestellungen haben diese Fehlermeldung. Die anderen 50% gehen durch

Dort fehlt anscheinend die ID der Order, deswegen 404. Da scheint in der JavaScript Funktionalität irgendwas verloren zu gehen… Kein Plan ob dieses Problem direkt vom Modul verursacht oder ob es an der Theme Integration hakt…

Diese JavaScript Integration ist zumindest sehr fehleranfällig, die aber von PayPal API Version 2 so vorgesehen.

Die’Frage ist, warum das bei Kaufmodulen funktioniert und hier ist Pustekuchen.

Gute Zahlungmöglichenkeiten sind das A und O eines Shops.

Hast Du ein Beispiel? Welches Kaufmodul hat bereits PayPal API 2.0 integriert?

Ich nehme eigentlich Bezug zum letzten Modul, das nicht richtig funktionierte.Deswegen haben wir das Aggrosoft Modul in der Fa. genommen.
Das gleiche gilt für das neue. OXID geht nur halb und 2.0 von Aggrosoft habe ich eben getestet und wir warte jetzt darauf. dass es in den Verkauf geht.

zu OXID-Kaufmodulen kann ich nichts sagen. Aber ich lese auch in anderen Shop-Foren mit und habe nirgends auch nur annähernd so viele Probeme mit den neuen PayPal Checkout gelesen.

Erfahrungsbericht wäre interessant ob es zuverlässiger funktioniert.

Hmm bei Shopware tauchen die ähnlichen Probleme im Forum auf, wenn ich dort mitlese.

Aus meiner Sicht kommen leider viele Dinge zusammen z.B. das PayPal die Verarbeitung ans Shop-System auslagert z.B. Prüfung Kreditkartendaten und dass die Kommunikation zwischen Shop und PayPal über JavaScript läuft. Dort reicht aus meiner Sicht ein Internetverbindungsabbruch aus, dass bei der erwünschten Abfolge etwas schief läuft.

Das Checkout Modul für die 6.2er Serie aus meiner Sicht sauber umgesetzt, bei der Abwärtskompatibilität für Shops unter 6.2er dort sich zu viele Fehler eingeschlichen und anscheinend suboptimal bis gar nicht getestet.

Was noch hinzu kommt, dass noch ein Anbieter wie RatePay bei bestimmten Zahlungsarten die Abwicklung für PayPal übernimmt. Was es sicherlich für alle Beteiligten nicht einfacher macht Schwachstellen zu beheben.

kann ich nicht bestätigen!

Hmm… Shopware war anscheinend nur etwas schneller bei der Umsetzung eines neuen PayPal Checkout Moduls.

Aber z.B. folgender Thread aus April 2022 enthält vergleichbare Fehlermeldung wie von Dir oben Paypal 4.0.0 und nun? - #65 von sandy42 - Plugins - Shopware Community Forum

du hast recht. Dieser Thread war im Shopware 5 Forum das ich nicht (mehr) so oft lese :disappointed:

Kein Problem, ist insgesamt abstruse Situation. Selbst bin ich auch seit Freitag durch den Wind. Wirkt so unwirklich alles mit neuen Nutzungsgebühren. Erste Händler*innen verabschieden sich leise :frowning:

Ich hatte gerade wieder einen Anruf eines Kunden. Der hat Rechnungskauf gewählt und bekam die Ansage wegen Wartungsarbeiten keine Bearbeitung möglich.
Es macht keinen Spaß mehr!

Dieses Verhalten besteht seit den letzten 2 Versionen bei uns - wenn der Rechnungskauf abgelehnt wurde.

Früher wurde angezeigt die Versandart steht nicht mehr zu Verfügung (was schon falsch war diese Aussage) nun kommt dann aber der maintenance Mode :frowning:

Ach so, das meinte der Kunde mit Wartungsarbeiten! :rage:
Super!

Ist auch an OXID gemeldet - aber bisher leider keine Reaktion dazu …

Aber auch auf Mail an Sales @ bzgl. Neuer Lizenz bisher keine Antwort - scheint wohl viel los zu sein aktuell

Folgendes ist mir jetzt noch aufgefallen - Kreditkarten Bestellungen bleiben bei mir im Backend auf “Not finished” obwohl Zahlungseingang bereits vorliegt.

Die Menge an abgebrochenen Paypal Express Bestellungen ist nach Update von 1.1.4 auf 1.1.6 extrem nach oben gegangen. Das liegt sicher nicht an den Kunden - bin überlegen ob ich zurück auf 1.1.4 gehe.

Ganz wichtig wäre das Kunden eine klare Rückmeldung bekommen ob Bestellung durchging oder nicht - Maintenance Anzeige darf eigentlich gar nie erscheinen.

PS: Ich hätte überhaupt kein Problem morgen eine OXID PE Lizenz zu kaufen, aber so stehe ich Scheideweg. Aggrosoft Modul wollte ich auch testen habe ich aber nicht installiert bekommen, schau ich mir aber nochmal an.

Ach kubber, warum testet du das allein live?,
Schalte das zurück auf PP Standard plus bis 30.9, und dann erst live gehen, willst du deine Kunden Verlieren?
Zeig mal deine live url.
Gn8

Habe ich natürlich in Testumgebung getestet und Bestellungen von allen Zahlungsarten erfolgreich gemacht, letzendlich zeigt sich halt erst im Livebetrieb ob es was taugt - das wird auch am 30.9. nicht anders sein.

Ja aber zurück zu PP Standard ist eine Überlegung, die Konditionen sind ja gesichert.

Dort könnte der nächste “Schock” drohen, falls die API Version 1.0 von PayPal im Oktober 2022 abgestellt wird und das PayPal Plus Modul nicht mehr funktioniert.

Für Klarheit wurde an dieser Stelle auch noch nicht gesorgt seitens OXID eSales und PayPal.