2016-01-23 102 views
0

PayPal沙盒和PHP SDK存在一些問題,直到現在(或者至少過去2或3天)一直工作良好。我正在通過SDK(使用cURL)聯繫沙盒。「沒有可用的協議」使用PayPal API的SSL問題

error:140740BF:SSL routines:SSL23_CLIENT_HELLO:no protocols available

據我瞭解,貝寶剛剛(月19-20 2016)更新了他們的沙盒只接受TLS 1.2(以準備同改變他們的生產環境計劃數月的道路)。

我在Ubuntu 12.04,這裏是我已經試過

  • 升級的OpenSSL到可用的最新版本
  • 升級的PayPal PHP SDK版本
  • 升級版本捲曲(7.22,建7.46來源並確認PHP通過檢查「curl_version()」輸出使用該版本
  • 更改爲以下PayPal SSL配置值

CURLOPT_SSLVERSION => 6

CURLOPT_SSL_CIPHER_LIST => 'TLSv1'

此前CURLOPT_SSLVERSION已設置爲「3」(舊的,棄用的SSL v3)。我得到這個消息:

error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

更新CURLOPT_SSLVERSION爲「6」(TLS 1.2)後,我得到我第一個提到的錯誤(「沒有可用的協議」)。

我今天在Google上搜索了幾個小時,並沒有取得任何進展。我不確定這是PayPal的事情還是我的問題。如果任何人有任何想法能夠指引我朝着正確的方向發展,那將是美好的。

感謝

+0

@ mjz19910謝謝,只是檢查,它似乎是正確的,但是。 https://api-3t.sandbox.paypal.com/2.0,根據此頁面https://developer.paypal。com/docs/classic/api/endpoints/ – 0kay

回答

0

畢竟是過時的cURL版本,無法支持TLS 1.2連接。我在Ubuntu 12.04上只支持cURL 7.22。我曾經提到過嘗試升級cURL(從源代碼完成),但不認爲我正確設置了它或正確地重新加載了我的配置。之所以能夠通過被顯示相同的症狀

0

我發現了另一個問題,大約12小時前,同樣的錯誤是造成

設置SSL密碼列表默認值。

+0

嗯,試過了,但我仍然看到這個問題 – 0kay

0

我有一個類似的問題,第二個機器上升級捲曲確認修復,對我的解決方案是更新捲曲和OpenSSL:

sudo add-apt-repository ppa:rsrchboy/ppa 
sudo apt-get update 
sudo apt-get --only-upgrade install curl openssl libssl1.0.0 libssl-dev 

如果你想檢查您的系統將連接到貝寶沙箱嘗試(在升級之前和之後):

curl -v https://api.sandbox.paypal.com 

您應該能夠使用

CURLOPT_SSLVERSION => 6 

現在。