Saya memiliki lingkungan dev pada curl 7.19.7.
Baru-baru ini saya perhatikan bahwa Paypal Express tidak lagi berfungsi dan sedang mengembalikan kesalahan "Unable to communicate with the PayPal gateway."
.
Menggali log pengecualian bisa Anda lihat
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')
Saya tidak tahu apakah Paypal telah mengubah apa pun dengan sandbox mereka baru-baru ini, tetapi pergi ke URL api-3t.sandbox.paypal.com di SSLLabs dan melihat bahwa satu-satunya protokol yang mereka dukung adalah TLS 1.2.
Setelah membaca tentang pengaturan versi protokol dalam manual PHP, saya menambahkan berikut ini
nano +194 lib/Varien/Http/Adapter/Curl.php
curl_setopt_array($this->_getResource(), $options);
+curl_setopt($this->_getResource(), CURLOPT_SSLVERSION, 6);
return $body;
Bagus! Setelah apache anggun sekarang saya dapat menggunakan Paypal express. Namun, saya tidak senang bahwa saya harus meretas inti. Saya juga tidak senang bahwa saya harus meretas inti di tempat khusus curl
daripada ke Paypal.
Adakah yang punya saran tentang cara yang benar untuk memperbaiki masalah ini?
EDIT:
Hanya mengonfirmasi beberapa temuan tambahan, ini tidak memengaruhi Standar Paypal di Magento karena tampaknya tidak digunakan di curl
bawah tenda. Kami mendapatkan negatif palsu pada mesin tertentu.
T: "Bagaimana ini bisa berhasil! Curl gagal terhubung ke kotak pasir di baris perintah"
A: "Ini menggunakan standar paypal dan tidak mengungkapkan, itu tidak digunakan curl
sumber
Jawaban:
Kami memiliki masalah yang sama dan hanya memperbaikinya dengan memperbarui pustaka ikal dari 7,19 ke 7,40 ..
Jalankan perintah berikut:
curl -v -s https://api-3t.sandbox.paypal.com/nvp
Jika Anda mendapatkan kesalahan SSL Connect Anda memiliki masalah yang sama dengan yang kami miliki.
Anda dapat menggunakan tautan berikut (respons # 3) untuk instruksi tentang cara melakukan pembaruan pustaka ikal ini: /programming/28495444/how-to-upgrade-php-curl-to-version-7- 36-0
Kami juga mencoba peretasan dan berhasil, tetapi kami tidak senang dengan solusi sementara.
Saya harap informasi ini membantu Anda.
sumber
Saya juga mengalami kesalahan ini hari ini. Menambahkan berikut ke
app/code/core/Mage/Paypal/Model/Api/Nvp.php
sekitar baris 945 setidaknya membuat perubahan dalam modul Paypal Nvp bukan perpustakaan.Menurut halaman buku panduan curl constants , Anda juga dapat menggunakan konstanta
CURL_SSLVERSION_TLSv1_2
alih-alih6
jika Anda memiliki versi PHP> = 5.5.19 atau 5.6.3.sumber
Kotak pasir memang berubah dalam seminggu terakhir untuk hanya menerima TLS 1.2. Dari pengujian saya, TLS 1.2 akan masuk secara otomatis jika Anda menggunakan PHP 5.5.19+ dan versi ikal yang cukup baru (saya menggunakan 7.29). Anda juga membutuhkan OpenSSL 1.0.1+.
Karena kami masih menjalankan 5.3, kami juga harus menambahkan retasan yang sama ke inti, tetapi karena Magento masih mengklaim dukungan untuk 5.3, kami mungkin dapat mengharapkan solusi resmi segera (terutama karena perubahan ini juga akan mengenai sistem produksi Paypal di Juni).
Referensi: https://devblog.paypal.com/upcoming-security-changes-notice/
sumber