1. ホーム
  2. php

[解決済み] Paypal SDK Adaptive Payments リストの暗号が不明です。TLSv1

2022-02-15 07:25:24

質問

SetPaymentOptionsを使用してアダプティブペイメントを実装しようとしています。以下のエラーが発生します。

SDK例外 タイプ PPConnectionException

メッセージ リストの中の不明な暗号。TLSv1

詳細メッセージ Error connecting to 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',
);

解決方法は?

OpenSSLではなくNSSを使用している場合、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,
);

EDIT: で修正したものをリリースしました。 https://github.com/paypal/sdk-core-php/releases/tag/v2.5.8