Paypal IPN,缺少POST数据

4
我最近尝试将Paypal的IPN实现到我的网站中。 以下是我所采取的步骤(沙盒):
1:创建两个沙盒账户(买家/卖家)
2:在卖家账户上启用IPN,并将URL设置为我的PayPalIPN.php PayPalIPN.php是https://github.com/paypal/ipn-code-samples/blob/master/php/PaypalIPN.php 3:创建一个按钮,该按钮在购买后转到success.php success.php是https://github.com/paypal/ipn-code-samples/blob/master/php/example_usage.php 现在当我点击“立即购买”,登录我的沙盒买家账户,购买并按下“返回商家”,我会收到这个错误。
致命错误:未捕获的异常:在/home/site/public_html/PayPalIPN.php的第60行缺少POST数据。堆栈跟踪:#0 /home/site/public_html/success.php(第7行):PaypalIPN->verifyIPN()#1 {main},抛出在/home/site/public_html/PayPalIPN.php的第60行。这是引发异常的行。
 if ( ! count($_POST)) {
       throw new Exception("Missing POST Data");
    }

我真的被这个问题难住了。我在这里只看到一个类似的问题,而Paypal的教程没有提到发生这个错误时出了什么问题。感激任何帮助。

更新

所以看起来我在错误的地方使用了一些URL。现在我有一个名为'paypalipn.php'的IPN类和另一个文件名为'success.php',它包括paypalipn.php并使用IPN类来检查它是否已验证。我已将监听器URL设置为success.php,当购买时,用户将被重定向到'purchased.php'。我遇到的问题是似乎从未调用success.php。它根本不起作用。我还尝试使用Buy Now按钮的变量设置URL。

notify_url=https://www.website.com/success.php

它似乎仍然没有被调用。我真的很困惑我做错了什么......

2个回答

0
似乎被调用的.php文件中有一个错误。我修复了这个错误,它似乎被调用了。现在我只是尝试弄清楚如何正确地将自定义变量发送到IPN..我一直从$_POST获取错误的信息。

0

请检查您的URL是否正确。

难道不应该是这样吗?

 notify_url=https://www.website.com/paypalipn.php

 return_url=https://www.website.com/success.php

为了检查您是否收到了POST变量,您可以在success.php中使用以下代码将它们打印到屏幕上。

 print_r($_POST);

为了添加自定义数据,如果您正在使用表单/按钮,可以像这样操作:
$custom_data = $myvar;

并在 PayPal 表单中添加如下内容:

<input type="hidden" name="custom" value="<?php echo $custom_data ;?>">

Paypal应该将其作为已发布的变量返回到您的return_url。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接