Paypal SDK自适应支付列表中的未知密码:TLSv1

use*_*476 2 php ssl curl paypal

我正在尝试使用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',
);
Run Code Online (Sandbox Code Playgroud)

Jay*_*Pal 5

似乎您使用的是NSS而不是OpenSSL,因为TLSv1不在NSS中,因此Cipher List会导致问题.

如果您遇到该错误,可能需要运行

php -r "print_r(curl_version());"
Run Code Online (Sandbox Code Playgroud)

如果输出有

[ssl_version] => NSS/...
Run Code Online (Sandbox Code Playgroud)

这意味着,你有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,
);
Run Code Online (Sandbox Code Playgroud)

编辑:发布是通过修复:https://github.com/paypal/sdk-core-php/releases/tag/v2.5.8