Tôi có một môi trường dev trên một máy chủ cũ chạy curl 7.19.7.
Gần đây tôi nhận thấy rằng Paypal Express không còn hoạt động và đang trả về lỗi "Unable to communicate with the PayPal gateway."
.
Đi sâu vào nhật ký ngoại lệ bạn có thể thấy
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')
Tôi không biết Paypal có thay đổi gì với hộp cát của họ gần đây không, nhưng đã truy cập URL api-3t.sandbox.paypal.com trên SSLLabs và thấy rằng giao thức duy nhất họ hỗ trợ là TLS 1.2.
Sau khi đọc về cài đặt các phiên bản giao thức trong hướng dẫn sử dụng PHP, tôi đã nhanh chóng thêm vào như sau
nano +194 lib/Varien/Http/Adapter/Curl.php
curl_setopt_array($this->_getResource(), $options);
+curl_setopt($this->_getResource(), CURLOPT_SSLVERSION, 6);
return $body;
Tuyệt quá! Sau một apache duyên dáng, bây giờ tôi có thể sử dụng Paypal express. Tuy nhiên, tôi không vui khi tôi phải hack lõi. Tôi cũng không vui khi tôi phải hack lõi ở một nơi cụ thể curl
chứ không phải là Paypal.
Có ai có lời khuyên về một cách chính xác để khắc phục vấn đề này?
BIÊN TẬP:
Chỉ cần xác nhận một số phát hiện bổ sung, điều này không ảnh hưởng đến Tiêu chuẩn Paypal trong Magento vì nó dường như không được sử dụng curl
dưới mui xe. Chúng tôi đã nhận được tiêu cực sai trên các máy nhất định.
Q: "Làm thế nào điều này có thể hoạt động! Curl không kết nối được với hộp cát trên dòng lệnh"
A: "Đó là sử dụng tiêu chuẩn paypal và không thể hiện, nó không sử dụng curl