2016-02-15 56 views
1

目前正在整合OmniPay。似乎一切都很好,但是當我去使用PayPalExpress網關,它給了我下面的錯誤:倒好像是與PayPal的SSL更新的問題如何通過OmniPay將捲曲選項傳遞給Guzzle?

[curl] 35: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure [url] https://api-3t.sandbox.paypal.com/nvp?VERSION=119.0&USER=... 

跟蹤的東西,我需要告訴它使用SSL3和更新的密碼列表:

curl_setopt($ch, CURLOPT_SSLVERSION, 3); 
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'SSLv3'); 

但是,我一直沒能想出一個辦法傳授給狂飲這些選項,然後捲曲。任何人都知道我可以做到這一點?

回答

2
  1. 將選項傳遞給捲曲或暴食,你需要做這樣的事情在送出數據功能:https://github.com/cherrytech/omnipay-paypal/commit/f520a015a91eb1bf2666892d3ef362607a74396f
  2. 你的建議是什麼,這是密碼列表中明確設置爲SSLv3的,將無法正常工作。 PayPal已將服務器更改爲要求TLS 1.2,並且任何SSLv3連接都將被拒絕。正確的做法是將系統上的libcurl版本更新爲> 7.40,它將自動協商正確的TLS 1.2版本。
+0

#1 - 如果我正在閱讀的權利,我必須修改核心文件?那麼,OmniPay沒有辦法做到這一點? #2 - 在我的服務器上curl的版本是7.43.0,所以修復聽起來不像它的工作。 – Lonnie

+0

我已經在CentOS 6上用libcurl 7.44自己測試過了。它對我無需使用PayPal_Rest網關進行任何代碼更改就能正常工作。 – delatbabel

+0

好的,我可能需要重新安裝然後在我的本地服務器上才能正常工作。關於將密碼列表設置爲SSLv3,你有一個很好的觀點。看起來應該是CURL_SSLVERSION_TLSv1_2(或6),而不是設置次要版本。 – Lonnie