У мене є середовище розробок на старому сервісному запущеному завитку 7.19.7.
Нещодавно я помітив, що Paypal Express більше не працює і повертає помилку "Unable to communicate with the PayPal gateway."
.
Копатись до журналів винятків, які ви можете бачити
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')
Я не знаю, чи Paypal нещодавно змінив щось із своєї пісочниці, але зайшов до URL-адреси api-3t.sandbox.paypal.com на SSLLabs і побачив, що єдиний протокол, який вони підтримують, - це TLS 1.2.
Прочитавши налаштування версій протоколів у посібнику PHP, я з радістю додав наступне
nano +194 lib/Varien/Http/Adapter/Curl.php
curl_setopt_array($this->_getResource(), $options);
+curl_setopt($this->_getResource(), CURLOPT_SSLVERSION, 6);
return $body;
Чудово! Після апаші граціозного тепер я можу використовувати Paypal express. Однак я не радий, що мені довелося зламати ядро. Я також не радий, що мені довелося зламати ядро в місці, яке є специфічним, curl
а не Paypal.
Хтось має поради щодо правильного способу виправлення цього питання?
Редагувати:
Тільки підтверджуючи деякі додаткові висновки, це не впливає на стандарт Paypal в Magento, оскільки він, схоже, не використовується curl
під кришкою. Ми отримували помилкові негативи на певних машинах.
Питання: "Як це, можливо, працює! Curl не може підключитися до пісочниці в командному рядку"
A: "Він використовує стандарт Paypal, а не express, він не використовує curl