【问题标题】:Paypal IPN, Missing POST DataPaypal IPN,缺少 POST 数据
【发布时间】:2018-02-05 02:28:27
【问题描述】:

我最近尝试在我的网站中实施 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

现在当我点击立即购买时,登录我的沙盒买家账户,购买它,然后按带我回到商家,我收到此错误

致命错误:未捕获的异常:/home/site/public_html/PayPalIPN.php:60 中缺少 POST 数据堆栈跟踪:#0 /home/site/public_html/success.php(7): PaypalIPN->verifyIPN() #1 {main} 在第 60 行的 /home/site/public_html/PayPalIPN.php 中抛出

这是引发异常的行

 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。它根本不起作用..我还尝试使用

在“立即购买”按钮的变量中设置 URL
notify_url=https://www.website.com/success.php

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

【问题讨论】:

    标签: php paypal paypal-ipn


    【解决方案1】:

    似乎被调用的 .php 中有错误。在我修复了错误之后,它似乎被调用了。现在我只是想弄清楚如何正确地将自定义变量发送到 IPN。我不断从 $_POST 得到错误的东西。

    【讨论】:

      【解决方案2】:

      检查您的网址是否正确。

      不应该是这样吗?

       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。

      【讨论】:

        猜你喜欢
        • 2018-08-05
        • 2013-01-02
        • 2017-07-09
        • 2013-01-20
        • 1970-01-01
        • 2015-03-01
        • 2013-12-13
        • 2013-03-15
        • 2015-10-14
        相关资源
        最近更新 更多