PayPal Express Checkout PHP 没有得到响应

Posted

技术标签:

【中文标题】PayPal Express Checkout PHP 没有得到响应【英文标题】:PayPal Express Checkout PHP not getting a response 【发布时间】:2016-05-27 13:05:12 【问题描述】:

我目前正在尝试使用 angelleye codeigniter 库 (https://github.com/angelleye/paypal-codeigniter) 让 PayPal 快速结账工作。我没有收到来自 PayPal 的回复或任何错误。我得到的唯一错误是未定义的 ACK 索引,因为没有响应。没有任何 curl 错误,并且 PayPal 响应返回一个空数组。

有没有办法检查失败的地方?

运行时间:

Ubuntu 12.04.5

卷曲 7.37.0

php 5.5.32

Apache 2.4.12

OpenSSL 1.0.1

【问题讨论】:

确保您的 PHP 版本是 5.6 或更高版本,这是一个问题。我之前也遇到过这种问题... 这很有趣,因为我有 PHP 5.5.32,它对我来说很好用,@AmitChauhan 你能澄清一下 PHP 5.6 是什么让它对你有用吗?我对 Curl 7.36 + 的理解是您可以使用新的 PayPal API? 【参考方案1】:

在 /application/libraries/paypal/Paypal_pro.php 中找到 CURLRequest() 函数。应该在第 589 行。

函数中这一行之后:

$Response = curl_exec($curl);

添加以下内容,添加以下内容:

if($Response === FALSE) 
  echo "cURL Error: " . curl_error($curl);
  exit();

然后运行另一个测试。如果发生 curl 错误,您应该能够看到它。

【讨论】:

感谢您的回答,我刚刚运行了它,这就是返回的结果cURL Error: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure 好的,这意味着您遇到了POODLE problem。但是,您概述的软件堆栈不应该有这个问题。你能仔细检查所有这些吗?你能在你的服务器上添加一个带有 phpinfo() 的文件以供审查吗? 在检查了我的phpinfo() php 后,尽管安装了 7.37.0,但它只引用了 curl 7.32。我正在升级 php curl 包。希望这应该可行。 我现在正在运行 7.37.0 并收到 PayPal 的回复。但是,我收到错误的响应是 10002 安全标头无效。我已经尝试使用买方和服务商帐户的 api 用户名和密码,但我得到了同样的错误。你知道这是什么原因造成的吗? 该错误始终意味着 API 凭据错误。这意味着值本身是错误的,或者可能是您将沙盒凭据发送到实时服务器,反之亦然。

以上是关于PayPal Express Checkout PHP 没有得到响应的主要内容,如果未能解决你的问题,请参考以下文章

Paypal Express Checkout Curl 在 Live 上失败,但在 Sandbox 中工作

Paypal Sandbox (express-checkout) 返回内部错误

php 更改YITH PayPal Express Checkout for WooCommerce的Set Express Checkout Request参数

PayPal Express Checkout 通行证 transactionID

如何访问 Paypal Express Checkout 的响应?

如何为 PayPal Express Checkout 配置 IPN?