当我尝试使用 Braintree_ClientToken::generate()
生成客户端 token 时,我不断收到 Braintree_Exception_SSLCertificate
异常。我已加载 SDK,我的 PHP 设置似乎满足 SDK 的最低要求。
我运行的 PHP 和 cURL 版本是:
PHP 5.5.3
cURL 7.32.0
与 OpenSSL/1.0.1e
。在我的 cURL 模块中启用了 SSL。
我注意到 Braintree 正在强制执行 TLS 1.2,所以我认为这可能是问题所在,但我尝试将以下行添加到 Braintree SDK 中的 Http.php:
curl_setopt($curl, CURLOPT_SSLVERSION, 6);
这应该将 cURL 设置为使用 TLS 1.2
,但它似乎没有帮助,我不确定如何验证该设置是否生效。
我还没有成功地向 Braintree 的 API 发出请求,所以我担心这是我做错了什么,或者我使用的 cURL 版本不好。是否有我遗漏的启用 SSL 所需的任何信息?
谢谢, 布拉德。
最佳答案
完全披露:我在 Braintree 工作。如果您还有任何疑问,请随时联系support .
您使用的 cURL 版本可能是您的问题,因为 libcurl 版本应该大于 7.40。我建议更新到此版本,因为在该版本及更高版本中添加了 TLS 1.2 支持。
此外,这 github link带您完成 Braintree 要求您的 PHP 集成与 TLS 1.2 保持同步的过程。我之所以提到这一点,是因为您想要一种方法来检查您的 cURL 是否被设置为实例化 TLS 1.2。
这样做的方法是:
php -r 'echo json_encode(curl_version(), JSON_PRETTY_PRINT);'
关于php - Braintree PHP SDK cURL 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41134473/