我正在尝试使用SetPaymentOptions实现自适应付款。我收到以下错误:
SDK异常 输入PPConnectionException
列表中的消息未知密码:TLSv1
详细消息错误连接到https://svcs.paypal.com/AdaptivePayments/SetPaymentOptions
我不知道这意味着什么。关于如何使这个工作的任何想法?我在PPHttpconfig中使用了部分代码:
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',
);
答案 0 :(得分:5)
似乎您使用的是NSS而不是OpenSSL,因为TLSv1不在NSS中,因此Cipher List会导致问题。
如果您遇到该错误,可能需要运行
php -r "print_r(curl_version());"
如果输出
[ssl_version] => NSS/...
这意味着,你有NSS。然后你可以从数组中删除CURLOPT_SSL_CIPHER_LIST
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,
);
编辑:发布时是使用以下修复:https://github.com/paypal/sdk-core-php/releases/tag/v2.5.8
答案 1 :(得分:0)
CURLOPT_SSL_CIPHER_LIST => 'TLSv1',
没有TLSv1密码。 TLS 1.0和TLS 1.1使用SSL 3.0密码。 TLS 1.2添加了一些新的密码,但仍然支持SSL 3.0密码。如果你想让你的代码对POODLE安全,你只需要关心SSL协议版本,而不是密码。