我正在尝试设置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
答案 0 :(得分:0)
你不能像curl那样明确地设置一个标志来使用带fsockopen()
的SSL,你可以使用SSL包装器看看是否有效,
fsockopen('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30)