【问题标题】:Paypal SDK Adaptive Payments Unknown cipher in list: TLSv1Paypal SDK Adaptive Payments 列表中的未知密码:TLSv1
【发布时间】:2015-01-09 01:01:51
【问题描述】:

我正在尝试使用 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',
);

【问题讨论】:

  • 您能告诉我们您使用的是什么版本的 curl 吗?您使用的版本可能有点旧。
  • 我这样做了:$version = curl_version();回声 $ssl_supported= $version['version'] ;得到:7.19.7
  • 你能传递整个 $version 吗? print_r($version);
  • 去掉这一行 CURLOPT_SSL_CIPHER_LIST => 'TLSv1' 然后试试。

标签: php ssl curl paypal


【解决方案1】:

如果您使用的是 NSS 而不是 OpenSSL,那么具有密码列表会导致问题,因为 TLSv1 不在 NSS 中。

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

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

【讨论】:

  • 谢谢杰。它现在实际上进入了这个屏幕 i.imgur.com/4uJ05lN.jpg 。是否应该这样做?
  • 是的。这就是您请求的结果页面,它是成功的。
  • Jay 你有联系邮箱吗?我对此有几个问题,我仍然对此感到困惑。谢谢
  • 您可以通过 japatel@paypal.com 与我联系
  • @Jay 是否会实施更永久的修复?另外,有没有办法在我使用 composer/autoload 解决方案时传递这个配置,并且不想覆盖整个类?
【解决方案2】:
CURLOPT_SSL_CIPHER_LIST => 'TLSv1',

没有 TLSv1 密码。 TLS 1.0 和 TLS 1.1 使用 SSL 3.0 密码。 TLS 1.2 添加了一些新密码,但仍支持 SSL 3.0 密码。如果你想让你的代码对 POODLE 安全,你只需要关心 SSL 协议版本,而不是密码。

【讨论】:

    猜你喜欢
    • 2014-08-20
    • 2012-07-01
    • 2015-07-31
    • 2012-06-28
    • 2013-02-21
    • 2013-03-22
    • 2013-09-28
    • 2013-09-14
    • 2019-12-13
    相关资源
    最近更新 更多