Ich habe eine Entwicklungsumgebung auf einem alten Server, auf dem Curl 7.19.7 ausgeführt wird.
Kürzlich habe ich festgestellt, dass Paypal Express nicht mehr funktioniert und einen Fehler zurückgibt "Unable to communicate with the PayPal gateway."
.
Stöbern Sie in den Ausnahmenprotokollen, die Sie sehen können
exception 'Exception' with message 'PayPal NVP CURL connection error #35: SSL connect error' in /path/app/code/core/Mage/Paypal/Model/Api/Nvp.php:983
Stack trace:
#0 /path/app/code/core/Mage/Paypal/Model/Api/Nvp.php(616): Mage_Paypal_Model_Api_Nvp->call('SetExpressCheck...', Array)
#1 /path/app/code/core/Mage/Paypal/Model/Express/Checkout.php(381): Mage_Paypal_Model_Api_Nvp->callSetExpressCheckout()
#2 /path/app/code/core/Mage/Paypal/Controller/Express/Abstract.php(108): Mage_Paypal_Model_Express_Checkout->start('http://asdf...', 'http://asdf...', false)
#3 /path/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Paypal_Controller_Express_Abstract->startAction()
#4 /path/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('start')
#5 /path/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#6 /path/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#7 /path/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#8 /path/index.php(210): Mage::run('uk', 'store')
Ich weiß nicht, ob Paypal in letzter Zeit Änderungen an der Sandbox vorgenommen hat, habe aber die URL api-3t.sandbox.paypal.com in SSLLabs aufgerufen und festgestellt , dass TLS 1.2 das einzige von ihnen unterstützte Protokoll ist.
Nachdem ich mich mit dem Einstellen von Protokollversionen im PHP-Handbuch befasst hatte, fügte ich Folgendes hinzu
nano +194 lib/Varien/Http/Adapter/Curl.php
curl_setopt_array($this->_getResource(), $options);
+curl_setopt($this->_getResource(), CURLOPT_SSLVERSION, 6);
return $body;
Groß! Nach einem zierlichen Apache kann ich nun Paypal Express nutzen. Ich bin jedoch nicht glücklich, dass ich den Kern hacken musste. Ich bin auch nicht glücklich darüber, dass ich den Kern an einem Ort hacken musste, der spezifisch curl
für Paypal ist.
Hat jemand einen Rat, wie dieses Problem richtig behoben werden kann?
BEARBEITEN:
Nur um einige zusätzliche Ergebnisse zu bestätigen, hat dies keine Auswirkungen auf Paypal Standard in Magento, da es scheinbar nicht curl
unter der Haube verwendet wird. Wir haben auf bestimmten Maschinen falsche Negative erhalten.
F: "Wie kann das funktionieren? Curl kann keine Verbindung zur Sandbox auf der Kommandozeile herstellen."
A: "Es benutzt Paypal Standard und nicht Express, es benutzt nicht curl