2016-03-10 90 views
1

我有支付寶付款方法的網站,當用戶嘗試支付下列錯誤:CURLOPT_SSLVERSION在我的網絡服務器

curl_error: 35 
SSL connect error 

我用捲曲,使貝寶電話:

ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $endpoint); 
curl_setopt($ch, CURLOPT_VERBOSE, 0); 
//curl_setopt($ch, CURLOPT_SSLVERSION, 4); 
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); 

//turning off the server and peer verification(TrustManager Concept) 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 

curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/Certs/api_cert_chain.crt'); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 

$headers_array = paypal_adaptive_setupHeaders(); 
if (!empty($sandboxEmailAddress)) { 
    $headers_array[] = "X-PAYPAL-SANDBOX-EMAIL-ADDRESS: " . $sandboxEmailAddress; 
} 

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_array); 
curl_setopt($ch, CURLOPT_HEADER, false); 

所以我有兩個問題

1-我該如何解決這個問題?

adding : PPHttpConfig::$DEFAULT_CURL_OPTS[CURLOPT_SSLVERSION] = 4; cause 500 server error 

2-有沒有辦法知道我的網絡服務器上使用的CURLOPT_SSLVERSION? (專用服務器,我可以訪問所有權限來安裝更新的東西...) 3-更新OPEN SSL可以解決這個問題嗎?

謝謝大家。

回答

0

捲曲錯誤35 CURLE_SSL_CONNECT_ERROR其中規定:在SSL/TLS握手的某個地方發生

的問題。你真的想要 錯誤緩衝區,並在那裏讀取消息,因爲它更多地指出 問題。可能是證書(文件格式,路徑, 權限),密碼和其他。

這可能是PayPal近期更改後的兩件事情之一。

  1. 你捲曲/ OpenSSL的版本不支持TLS(幾個月前貝寶停止支持SSLv3和下面這打破了很多客戶)。由於您已禁用同儕驗證,因此這可能是問題所在。

  2. api_cert_chain.crt不再包含PayPal正在使用的正確的證書權限證書。

+0

是的,我更新了openssl和curl版本,現在完美工作,謝謝你的迴應。 – user44321