gpt4 book ai didi

ssl - 如果 CURLOPT_SSL_VERIFYPEER 为真,PayPal DoDirectPayment 将因 SSL 而失败

转载 作者:太空宇宙 更新时间:2023-11-03 15:04:04 25 4
gpt4 key购买 nike

使用 this code (从 this tutorial 粘贴),我成功执行了 PayPal DoDirectPayment 方法。请注意,CURLOPT_SSL_VERIFYPEER 设置为 FALSE。

然而,当我设置正常值 (CURLOPT_SSL_VERIFYPEER = TRUE) 时,我没有从 PayPal 得到任何响应,甚至没有失败响应,尽管我的代码在具有有效 SSL 证书的服务器上运行(所有页面都使用 HTTPS URL) ).

有人知道是什么导致了这个问题吗?

最佳答案

如果您使用的是有效证书,但问题仍然存在,您可能需要仔细检查您是否以有效格式(X.509 证书 PEM)保存了 CA。我看到您已将您的 CA 导出到一个名为 cacert.pem 的文件 - 确保此文件有效,并且 curl 确实能够检索此文件(有效路径等)

您可以尝试再次导出证书 - 从浏览器(即:firefox),这可以通过在浏览器(即:Firefox)中访问 PayPal https url 并查看证书然后导出来完成。 (确保您使用前面所述的正确格式 - X.509 证书 PEM)。

保存 CA 后,您可以将其传递给已有的 CURLOPT_CAINFO 参数:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/CAcerts/BuiltinObjectToken-EquifaxSecureCA.crt");

有关更详细的解释,请访问这篇精彩的文章: http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

引用关于证书的最后部分:

If you have the CA certificate, but it is not in the PEM format (i.e. it is in a binary or DER format that isn’t Base64-encoded), you’ll need to use something like OpenSSL to convert it to the PEM format.

编辑 - 如果在导出证书后出现错误,您还可以尝试使用 X.509 证书 PEM(带链)保存证书

关于ssl - 如果 CURLOPT_SSL_VERIFYPEER 为真,PayPal DoDirectPayment 将因 SSL 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14822372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com