我最近尝试将 Paypal 的 IPN 应用到我的网站中。 这是我采取的步骤(沙盒)
1: 创建 2 个沙箱账户(买家/卖家)
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
现在,当我点击“立即购买”,登录我的沙盒买家帐户,购买,然后按“带我回到商家”,我收到此错误
Fatal error: Uncaught Exception: Missing POST Data in /home/site/public_html/PayPalIPN.php:60 Stack trace: #0 /home/site/public_html/success.php(7): PaypalIPN->verifyIPN() #1 {main} thrown in /home/site/public_html/PayPalIPN.php on line 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。它根本不起作用..我也尝试使用
在“立即购买”按钮的变量中设置 URLnotify_url=https://www.website.com/success.php
它似乎仍然没有被调用。我真的很困惑我做错了什么......
最佳答案
似乎调用的 .php 文件中有错误。在我修复错误后,它似乎被调用了。现在我只是想弄清楚如何正确地将自定义变量发送到 IPN。我一直从 $_POST 中得到错误的东西。
关于php - Paypal IPN,缺少 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45908490/