magento下的sslv3警报握手失败
Posted
技术标签:
【中文标题】magento下的sslv3警报握手失败【英文标题】:sslv3 alert handshake failure under magento 【发布时间】:2016-07-03 10:16:26 【问题描述】:我用magento开发了一个paypal pro。
我的 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);
但是我得到一个像
这样的错误错误:14094410:SSL 例程:SSL3_READ_BYTES:sslv3 警报握手 失败
如果我没有添加这两行
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'SSLv3');
然后给我一个类似的错误
错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败
有什么帮助吗?
【问题讨论】:
***.com/questions/26379773/… 有什么帮助吗? 除了删除 CURLOPT_SSLVERSION 部分,您还需要确保您的 curl 版本支持 TLS 连接。旧版本的 curl 不支持 TLS 1.0 及更高版本。因此,当您删除 CURLOPT_SSLVERSION 时,可用的最高协议是 SSL v3,这会导致连接失败。 我的 curl 版本是 7.30.0。支持吗? 【参考方案1】:最近对 Sandbox 进行了一些更新,稍后需要在 Live 上应用更新,此post 将帮助您
【讨论】:
谢谢。很有帮助。以上是关于magento下的sslv3警报握手失败的主要内容,如果未能解决你的问题,请参考以下文章
另一个 Paypal Curl / SSL v3 握手错误 - SSL23_GET_SERVER_HELLO:sslv3 警报握手失败
错误:错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败
错误:14094410:SSL 例程:ssl3_read_bytes:sslv3 警报握手失败
贝宝错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败在 laravel
Paypal Sandbox IPN: 14077410:sslroutines:ssl23_get_server_hello:sslv3 警报握手失败