您好我使用Paypal PHP SDK与Paypal Api进行通信。
在每件事情都正常工作前2天。但现在我在开发服务器上收到此错误。错误:14094410:SSL例程:SSL3_READ_BYTES:sslv3警报握手失败
我在请求时使用以下CURL选项:
public static $DEFAULT_CURL_OPTS = array(
CURLOPT_SSLVERSION => 1,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_TIMEOUT => 60, // maximum number of seconds to allow cURL functions to execute
CURLOPT_USERAGENT => 'PayPal-PHP-SDK',
CURLOPT_HTTPHEADER => array(),
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_SSL_VERIFYPEER => 1,
CURLOPT_SSL_CIPHER_LIST => 'TLSv1',
);
此问题仅在实时模式下使用SANDBOX模式时才能正常工作。
任何人都知道为什么会这样?
谢谢
答案 0 :(得分:3)
我经历过同样的错误。这是由于PayPal最近的更新:https://www.paypal-knowledge.com/infocenter/index?page=content&id=FAQ1766
您可以通过将其添加到CURL选项来修复它:
curl_setopt($ch, CURLOPT_SSLVERSION , 1);
或
CURLOPT_SSL_SSLVERSION => 1
编辑:完成工作设置
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));
curl_setopt($ch, CURLOPT_SSLVERSION , 1);