Paypal Express Invalid HTTP response version: 2

Hallo Leute,

wir nutzen das Paypal Express Plugin in der Version 3.6.1. Seit heute geht das Bezahlen über Paypal teilweise nicht. Wir erhalten folgenden Fehler:

Message:

 Invalid HTTP response version: 2

Time:

 2019-06-26T15:01:09.278453+0200

Channel:

 core

request:

 {

     "uri": "/payment\_paypal/express",

     "method": "GET",

     "query": {

         "module": "frontend",

         "controller": "payment\_paypal",

         "action": "express"

     },

     "post": []

 }

session:

 No session data available

 

Kann jemand weiterhelfen?

Hier noch genauer:

Invalid HTTP response version: 2 in engine/Library/Zend/Http/Response.php on line 179 Stack trace: #0 engine/Library/Zend/Http/Response.php(659): Zend_Http_Response->__construct(200, Array, ‘L_AMT0=427%2e62…’, ‘2’, false) #1 engine/Library/Zend/Http/Client.php(1076): Zend_Http_Response::fromString(‘HTTP/2 200 \r\nco…’) #2 engine/Shopware/Plugins/Community/Frontend/SwagPaymentPaypal/Components/Paypal/Client.php(105): Zend_Http_Client->request(‘POST’) #3 engine/Shopware/Plugins/Community/Frontend/SwagPaymentPaypal/Controllers/Backend/PaymentPaypal.php(199): Shopware_Components_Paypal_Client->__call(‘GetBalance’, Array) #4 engine/Library/Enlight/Controller/Action.php(192): Shopware_Controllers_Backend_PaymentPaypal->getBalanceAction() #5 engine/Library/Enlight/Controller/Dispatcher/Default.php(563): Enlight_Controller_Action->dispatch(‘getBalanceActio…’) #6 engine/Library/Enlight/Controller/Front.php(222): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #7 engine/Shopware/Kernel.php(202): Enlight_Controller_Front->dispatch() #8 vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php(102): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #9 vendor/symfony/http-kernel/HttpCache/HttpCache.php(448): Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle(Object(Shopware\Kernel), Object(Symfony\Component\HttpFoundation\Request), 1, true) #10 engine/Shopware/Components/HttpCache/AppCache.php(260): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #11 vendor/symfony/http-kernel/HttpCache/HttpCache.php(238): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) #12 engine/Shopware/Components/HttpCache/AppCache.php(105): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true) #13 shopware.php(122): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) #14 {main}

Die Bezahlung per Paypal läuft wieder:

In der engine/Library/Zend/Http/Response.php wurde der Code aus Zeile 178:

if (! preg_match(’|^\d.\d$|’, $version)) {

in

if (! preg_match(’|^\d.*[\d]*$|’, $version))

abgeändert.

So wie ich es verstanden habe, wird hier die HTTP-Version der Paypal-Response überprüft. Wenn die HTTP-Version nicht der Form: “Dezimalzahl.Dezimalzahl” entspricht wird ein Fehler geworfen. Paypal schickt als HTTP-Version aber nur die “2”, ohne “.” und Nachkommastelle. So habe ich in der Überprüfung den regulären Ausdruck so angepasst, dass nur die erste Stelle eine Dezimalzahl sein muss.

Ich habe diesbezüglich mal ein Ticket im Issue Tracker erstellt: https://issues.shopware.com/issues/PT-10590

Dort findet sich auch ein kleiner Fix welcher das Verhalten löst. Bitte beachte aber, dass die Einbindung auf eigene Gefahr erfolgt. Am besten testest Du es erst in einer Testumgebung.

Hallo zusammen,

wir haben soeben die Version 3.6.2 releaed. Damit sollte das Problem behoben sein.

Viele Grüße aus Schöppingen

cool Michael Telgmann