컬이 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이 최근에 샌드 박스로 변경 한 것이 있는지는 모르겠지만 SSLLabs의 api-3t.sandbox.paypal.com URL로 이동 하여 지원하는 유일한 프로토콜은 TLS 1.2라는 것을 알았습니다.
PHP 매뉴얼 에서 프로토콜 버전 설정에 대해 읽은 후 다음을 hackily 추가했습니다.
nano +194 lib/Varien/Http/Adapter/Curl.php
curl_setopt_array($this->_getResource(), $options);
+curl_setopt($this->_getResource(), CURLOPT_SSLVERSION, 6);
return $body;
큰! 아파치 우아한 후 나는 지금 페이팔 익스프레스를 사용할 수 있습니다. 그러나 나는 핵심을 해킹해야했기 때문에 기쁘지 않다. 또한 curl
Paypal 이 아닌 특정 장소에서 핵심을 해킹해야한다는 것에 만족하지 않습니다 .
누구 든지이 문제를 해결하는 올바른 방법에 대한 조언이 있습니까?
편집하다:
추가 결과를 확인하면 Magento의 Paypal Standard에는 영향을 미치지 않습니다 curl
. 우리는 특정 기계에서 잘못된 부정을 받고있었습니다.
Q : "어떻게 작동 할 수 있습니까? curl이 명령 행의 샌드 박스에 연결되지 않습니다"
A : "페이팔 표준을 사용하고 있고 표현하지 않습니다. 사용하지 않습니다. curl