Paypal SDK Adaptive Payments Неизвестный шифр в списке: TLSv1

Я пытаюсь реализовать адаптивные платежи с помощью 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', ); 

Кажется, что если вы используете NSS вместо OpenSSL, наличие Cipher List вызывает проблему, поскольку 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, ); 

EDIT: выпуск был сделан с исправлением по адресу: https://github.com/paypal/sdk-core-php/releases/tag/v2.5.8

 CURLOPT_SSL_CIPHER_LIST => 'TLSv1', 

Нет шифров TLSv1. TLS 1.0 и TLS 1.1 используют шифры SSL 3.0. TLS 1.2 добавляет новые шифры, но все еще поддерживает шифры SSL 3.0. Если вы хотите, чтобы ваш код был защищен от POODLE, вам нужно заботиться только о версии протокола SSL, а не о шифрах.