【问题标题】:Unable to complete Paypal Instant Payment Notifications due to OpenSSL Error由于 OpenSSL 错误,无法完成 Paypal 即时付款通知
【发布时间】:2016-05-26 23:40:30
【问题描述】:

我正在尝试在 paypal 中设置即时付款通知,但在验证阶段无法返回 tls://www.sandbox.paypal.com。

我正在使用此处找到的代码:https://developer.paypal.com/docs/classic/ipn/gs_IPN/

然而,当我尝试连接时,我收到以下错误:

 PHP Warning:  fsockopen(): SSL operation failed with code 1. OpenSSL Error     messages:
 error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure in /htdocs/test.php
fsockopen(): Failed to enable crypto in /htdocs/test.php

我已阅读信息here,似乎我尝试使用错误的协议进行连接,或者我安装了错误的证书。我的 OpenSSL 是 1.0.1e 版本。

不幸的是,如果需要,我不知道如何调试或安装正确的证书

【问题讨论】:

标签: php paypal openssl


【解决方案1】:

您无需安装 SSL 证书。只是您服务器上的软件堆栈需要更新。

查看this guide on the POODLE Vulnerability了解更多详情。

【讨论】:

  • 看来我已经使用了所需的 openssl 版本并安装了 php 5.5.32。那篇文章提到了 CURLOPT_SSLVERSION 到 6 (TLS 1.2),但是来自 paypal 的代码使用 fopen,所以我认为这不适用?
  • 我建议使用 curl 而不是 fopen。
  • 转换为 CURL 并使用以下 curl 选项来修复握手问题。 curl_setopt($ch, CURLOPT_SSLVERSION, 6);
  • 使用当前版本的 OpenSSL 和 PHP,您不必直接指定 ssl 版本。它应该自动回退到工作协议。不管怎样,很高兴它对你有用。
猜你喜欢
  • 1970-01-01
  • 2015-12-05
  • 1970-01-01
  • 2013-09-06
  • 2014-12-01
  • 2015-02-18
  • 1970-01-01
  • 2014-07-30
  • 2013-06-10
相关资源
最近更新 更多