【问题标题】:PayPal ipn handler over TLS instead of SSL using fsockopen使用 fsockopen 通过 TLS 而不是 SSL 的 PayPal ipn 处理程序
【发布时间】:2016-04-30 09:42:09
【问题描述】:

我正在尝试设置 paypal IPN 处理程序脚本,但出现以下错误。

$fp = fsockopen('tls://www.sandbox.paypal.com', 443, $errno, $errstr, 30);

此行导致以下错误 -

ERROR - 2016-04-29 18:29:30 --> Severity: Warning --> fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:
error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure /mypaypalipn.php 988
ERROR - 2016-04-29 18:29:30 --> Severity: Warning --> fsockopen(): Failed to enable crypto /mypaypalipn.php 988
ERROR - 2016-04-29 18:29:30 --> Severity: Warning --> fsockopen(): unable to connect to tls://www.sandbox.paypal.com:443 (Unknown error) /mypaypalipn.php 988

我尝试在 stackoverflow 上搜索并了解它是导致此问题的 SSL 版本,解决方案就像更改

curl_setopt($ch, CURLOPT_SSLVERSION, 3);

到:

curl_setopt($ch, CURLOPT_SSLVERSION, 4);

但我没有使用 cURL。我该怎么做才能让它与fsockopen一起工作?

这些来自 phpinfo -

注册流套接字传输

tcp, udp, unix, udg, ssl, sslv3, sslv2, tls

Apache/2.4.12

SSL Version:    OpenSSL/1.0.1e 

【问题讨论】:

  • 我刚刚将代码更改为 cURL,现在对我来说工作正常。

标签: php paypal


【解决方案1】:

你不能像 curl 那样显式设置一个标志来使用 SSL 和 fsockopen(),你也许可以使用 SSL 包装器来代替,看看它是否有效,

 fsockopen('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30)

【讨论】:

  • 是的,我已经尝试过了——它过去可以使用,但出于安全原因,Paypal 现在强制使用 tls。
猜你喜欢
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 2019-02-13
  • 2011-11-14
  • 2011-02-08
  • 2012-09-03
  • 2011-06-17
  • 1970-01-01
相关资源
最近更新 更多