2016-03-17 65 views
0

我開發了一個magento的paypal pro。sslv3警報在magento下的握手失敗

我的PayPal代碼下面的樣子:

$api_username = 'sdk-three_api1.sdk.com'; 
$api_password = 'QFZCWN5HZM8VBG7Q'; 
$api_signature = 'A.d9eRKfd1yVkRrtmMfCFLTqa6M9AyodL0SJkhYztxUi8W9pCXF6.4NI'; 
$api_version = '57.0'; 
$api_endpoint = 'https://api-3t.sandbox.paypal.com/nvp'; 

    $request_params = array 
    (
     'METHOD' => 'DoDirectPayment', 
     'USER' => $api_username, 
     'PWD' => $api_password, 
     'SIGNATURE' => $api_signature, 
     'VERSION' => $api_version, 
     'PAYMENTACTION' => 'Sale',     
     'IPADDRESS' => $_SERVER['REMOTE_ADDR'], 
     'CREDITCARDTYPE' => $params['creditCardType'], 
     'ACCT' => $params['creditCardNumber'],       
     'EXPDATE' => $params['expDateMonth'].$params['expDateYear'],   
     'CVV2' => $params['cvv2Number'], 
     'FIRSTNAME' => 'Tester', 
     'LASTNAME' => 'Testerson', 
     'STREET' => '707 W. Bay Drive', 
     'CITY' => 'Largo', 
     'STATE' => 'FL',      
     'COUNTRYCODE' => 'US', 
     'ZIP' => '33770', 
     'AMT' => $plan_data['amount'], 
     'CURRENCYCODE' => 'USD', 
     'DESC' => 'Testing Payments Pro' 
    ); 

    $nvp_string = ''; 
    foreach($request_params as $var=>$val) 
    { 
     $nvp_string .= '&'.$var.'='.urlencode($val);  
    } 
    //var_dump($nvp_string); die; 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_VERBOSE, 1); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); 
    curl_setopt($curl, CURLOPT_URL, $api_endpoint); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $nvp_string); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_SSLVERSION, 3); 
    curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'SSLv3'); 
    //curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); 

    $result = curl_exec($curl);  
    if (curl_errno($curl)) 
    { 
     echo "CURL send a error during perform operation: ".curl_error($curl); 
    } 
    else 
    { 
     curl_close($curl); 
    } 

    // Parse the API response 
    $nvp_response_array = parse_str($result); 
    var_dump($result); 

但我越來越喜歡

error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

一個錯誤,如果我不加這兩行

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

然後給我一個錯誤像

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

任何幫助?

+0

是http://stackoverflow.com/questions/26379773/paypal-ipn - 有什麼幫助? - 確認 - 失敗與ssl-routinesssl3-read-bytessslv3 - aler? –

+0

除了刪除CURLOPT_SSLVERSION部分,您還需要確保您的curl版本支持TLS連接。舊版本的curl不支持TLS 1.0及更高版本。因此,當您刪除CURLOPT_SSLVERSION時,可用的最高協議是SSL v3,從而導致連接失敗。 – vandershraaf

+0

我的捲髮版本是7.30.0。是否支持? –

回答

0

有一些更新沙箱最近,這將需要在以後的時間在現場進行應用更新,這post將幫助您

+0

謝謝。這是有幫助的。 –