PayPal IPN 模拟器测试产生一个空的 curl 结果。在现场工作正常

Posted

技术标签:

【中文标题】PayPal IPN 模拟器测试产生一个空的 curl 结果。在现场工作正常【英文标题】:PayPal IPN simulator testing produces an empty curl result. Works fine in live 【发布时间】:2013-02-26 02:02:34 【问题描述】:

我觉得这里有点超出我的深度。自从几天前对 PayPal 进行大修以来,我一直遇到沙盒 IPN 模拟器问题。

基本上 curl 结果通常显示 VERIFIED 或 INVALID,现在似乎返回一个空字符串。

这个完全相同的代码在实时模式下工作,但现在在沙盒中不适合我:

$post_fields ='cmd=_notify-validate';

foreach($_POST as $key => $val)

  $post_fields .= "&$key=".urlencode($val);


$ch =  curl_init();
// $url is https://www.sandbox.paypal.com/cgi-bin/webscr
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($ch, CURLOPT_VERBOSE, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$ch_result = curl_exec($ch);
curl_close($ch);

我环顾四周并尝试了各种建议,例如使用 HTTP 1.1 版和添加curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));,但似乎没有任何效果。

我得到了所有其他帖子字段,这只是 $ch_result。很困惑,有没有其他人遇到过这个问题,他们能够解决它吗?

【问题讨论】:

【参考方案1】:

使用单独但相关的技术(html/os vs php)和同上,我有同样的问题,返回空白 var 而不是“已验证或无效”,但相同的代码在实时模式下工作正常,因为我仍然收到订单。 ..

我昨晚(星期六)确实阅读了这个帖子 -> IPN simulator returning 401 error ...这似乎表明贝宝开发人员已经意识到了问题...在他们知道的范围内,谁知道我在 36 小时内发送了两封电子邮件以前还是nada,但又一次,tiz周末所以也许周一事情会好起来.. . .

还请注意...当我强制/伪造一个 ipn 调用以绕过此错误时,我确实看到他们似乎已将 var payment_status 更改为数字 2 而之前的“已完成”...

oye vey ...这就是所谓的技术升级的痛苦...从技术上讲,恕我直言,我认为他们应该将软件重命名为具体软件,因为一旦事情稳定,就不要管它了,除非安全...所有这些废话“改进” - 呃 - 请参阅 Windows Vista、Windows 8.0,但我离题了……诚挚的,查克斯科特

【讨论】:

欢迎来到 SO。虽然您的回答为可能的讨论增加了价值,但它更适合具有论坛格式的网站。请参阅***.com/about 了解该网站以及其他用户的期望。 谢谢 Chuck,我很高兴不仅仅是我。我之前什至没有注意到 payment_status 值的变化。我想“解决方案”真的是等待 PayPal :) 很好。

以上是关于PayPal IPN 模拟器测试产生一个空的 curl 结果。在现场工作正常的主要内容,如果未能解决你的问题,请参考以下文章

PayPal 网站支付标准的 IPN 模拟器中应测试哪些交易类型?

使用 paypal ipn 模拟器测试 subscr_payment

Paypal 沙盒 IPN 模拟器 - 502 Bad Gateway

测试 IPN 不应该从我的 Paypal 沙盒帐户中取钱吗?

PayPal IPN 模拟器错误请求

PayPal 没有向听众发送 IPN