M1 - TLS 1.2 - पेपाल एक्सप्रेस NVP CURL कनेक्शन त्रुटि # 35: SSL कनेक्ट त्रुटि


15

मैं एक पुराने गंभीर चल रहे कर्ल 7.19.7 पर देव माहौल है।

हाल ही में मैंने देखा है कि पेपैल एक्सप्रेस अब काम नहीं करता है और एक त्रुटि लौटा रहा है "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')

मुझे नहीं पता कि पेपैल ने हाल ही में अपने सैंडबॉक्स के साथ कुछ भी बदला है, लेकिन SSLLabs पर api-3t.sandbox.paypal.com URL पर गया और देखा कि एकमात्र प्रोटोकॉल जो वे समर्थन करते हैं, वह 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;

महान! एक अपाचे सुंदर के बाद मैं अब पेपैल एक्सप्रेस का उपयोग कर सकता हूं। हालांकि, मैं खुश नहीं हूं कि मुझे कोर हैक करना पड़ा। मुझे इस बात की भी खुशी नहीं है कि मुझे curlपेपैल के बजाय विशिष्ट स्थान पर कोर हैक करना पड़ा है ।

किसी को भी इस मुद्दे को ठीक करने के लिए एक सही तरीके से कोई सलाह है?

संपादित करें:

बस कुछ अतिरिक्त निष्कर्षों की पुष्टि करते हुए, यह Magento में पेपैल मानक को प्रभावित नहीं करता है क्योंकि यह curlहुड के नीचे उपयोग करने के लिए प्रकट नहीं होता है । हम कुछ मशीनों पर झूठे नकारात्मक हो रहे थे।

प्रश्न: "यह संभवतः कैसे काम कर सकता है! कर्ल कमांड लाइन पर सैंडबॉक्स से कनेक्ट करने में विफल रहता है"

एक: "यह पेपैल मानक का उपयोग कर रहा है और एक्सप्रेस नहीं, यह उपयोग नहीं करता है curl


पुराने मृत कर्ल ... PHP अगला मुद्दा होगा। सर्वर पर ओएस को अपग्रेड करें। वर्चुअलबॉक्स प्राप्त करें और VMs चलाएं, यह बहुत आसान है। टीएलएस आगे बढ़ रहा है।
Fiasco लैब्स

जवाबों:


9

हमें भी यही समस्या थी और बस 7.19 से 7.40 तक कर्ल लाइब्रेरी को अपडेट करके इसे ठीक कर दिया।

निम्न आदेश चलाएँ: curl -v -s https://api-3t.sandbox.paypal.com/nvp

यदि आपको SSL कनेक्ट त्रुटि मिलती है तो आपको वही समस्या है जो हमारे पास थी।

इस कर्ल लाइब्रेरी अपडेट को करने के निर्देशों के लिए आप निम्न लिंक (प्रतिक्रिया # 3) का उपयोग कर सकते हैं: /programming/28495444/how-to-upgrad-php-curl-to-version-7- 36-0

हमने एक हैक करने की भी कोशिश की और यह काम कर गया लेकिन हम एक अस्थायी समाधान से खुश नहीं थे।

मुझे उम्मीद है कि यह जानकारी आपकी मदद करेगी।


1
सिर खुजलाने के बाद हमने PHP fpm को फिर से शुरू करने के लिए याद किया और फिर यह सब काम करने लगा :) धन्यवाद। कर्ल को अपग्रेड करना आवश्यक है।
ल्यूक रॉजर्स

साझा होस्टिंग के लिए कोई वर्कअराउंड उपलब्ध है?
राकेश शेवाले

4

मुझे भी आज इस त्रुटि का सामना करना पड़ा। निम्न को app/code/core/Mage/Paypal/Model/Api/Nvp.php945 के आसपास जोड़कर पुस्तकालयों के बजाय कम से कम पेपैल एनवीपी मॉड्यूल में बदलाव कर रहा है।

 try {
        $http = new Varien_Http_Adapter_Curl();

+       $http->addOptions(array(CURLOPT_SSLVERSION => 6));

कर्ल स्थिरांक मैनुअल पेज के अनुसार , यदि आपके पास PHP संस्करण> = 5.5.19 या 5.6.3 है CURL_SSLVERSION_TLSv1_2, 6तो आप इसके बजाय स्थिरांक का उपयोग कर सकते हैं ।


इस अधिक पेपैल विशिष्ट हैक पोस्ट करने के लिए धन्यवाद! अन्य उत्तरों की समीक्षा करने के बाद हमने कर्ल को अपग्रेड करके समस्या को हल किया। शुक्र है कि हम काम करने के लिए php का एक आधुनिक पर्याप्त संस्करण चला रहे थे :)
ल्यूक रॉजर्स

महान जवाब, बस कोर फ़ाइलों को संपादित नहीं करते हैं। मुझे लगातार संदर्भ भी पसंद हैं!
रॉबी एवेरिल

4

सैंडबॉक्स वास्तव में पिछले सप्ताह में केवल टीएलएस 1.2 को स्वीकार करने के लिए बदल गया। यदि आप PHP 5.5.19+ और पर्याप्त रूप से हाल के कर्ल संस्करण (मैं 7.25 का उपयोग कर रहा हूं) का उपयोग कर रहा हूं, तो मेरे परीक्षणों से, टीएलएस 1.2 स्वचालित रूप से किक करेगा। आपको ओपनएसएसएल 1.0.1+ भी चाहिए।

चूंकि हम अभी भी 5.3 चल रहे हैं, इसलिए हमें उसी हैक को कोर के साथ जोड़ना होगा, लेकिन चूंकि मैगेंटो अभी भी 5.3 के लिए समर्थन का दावा करता है, हम शायद जल्द ही एक आधिकारिक समाधान की उम्मीद कर सकते हैं (विशेषकर जब से ये बदलाव भी पेपैल उत्पादन प्रणालियों को प्रभावित करेंगे जून)।

संदर्भ: https://devblog.paypal.com/upcoming-security-changes-notice/


शुक्र है कि सर्वर 5.5.24 php चल रहा था, इसलिए कर्ल को अपग्रेड करना आवश्यक था।
ल्यूक रॉजर्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.