下面是我的paypal自适应支付SDK的PPHttpConfig.php的curl配置,
public static $DEFAULT_CURL_OPTS = array(
CURLOPT_SSLVERSION => 4,
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 => FALSE,
CURLOPT_SSL_CIPHER_LIST => 'TLSv1',
);
但是,出现错误
Type PayPal\Exception\PPConnectionException
Message error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
最佳答案
OpenSSL 错误消息往往含糊而笼统。
导致此错误的最常见原因是
- 服务器证书已过期
- 服务器证书无效
- 客户端和服务器无法协商双方都能接受的协议(protocol)级别或密码。
您的 OpenSSL 版本相对较新(但仍然过时/containing serious vulnerabilities)。我想 PayPal 不会让他们的证书过期。
出现此错误的不太常见的原因是
- 您的数据库 CA 证书已过期
- 找不到 CACert 数据库(您的 PHP 是否在 chroot 中运行?)
- 您的 openssl.cnf 中有一些愚蠢的条目,或者找不到
- 你坐在一个你不知道的 MITM 代理后面
您没有说明 PHP 在哪里运行,它在什么上运行,也没有说明您对机器有什么访问权限。如果它是一个 Linux 机器并且你有 shell 访问权限,你可能想看看当你 probe the server 时会发生什么。从命令行。
关于php - SSL23_GET_SERVER_HELLO :sslv3 alert handshake failure Paypal adaptive payment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35054948/