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