php - 如何从 PayPal 购买返回并显示成功或失败消息?

标签 php paypal session-variables paypal-sandbox paypal-ipn

我似乎无法找出正确的方法来处理来自 Paypal 购买的返回网址并显示警告消息

我是这样理解过程的:

  1. 从我的站点将用户发送到 paypal,将 returnurl 设置为与他们购买的商品相对应的 url。
  2. Paypal 处理,然后点击我的 IPN 监听器
  3. 用户在 paypal 窗口和按钮中看到消息 Return to merchant(我正在沙盒测试中)
  4. 用户点击Return to Merchant 并返回他们购买的页面

好的,所以在我的 IPN 监听器 中,我这样做:

if( ! session_id() ) {
    session_start();
}

then a bunch of checks, then

$_SESSION['alert-success'] = 'Thank you for your purchase!';

or

$_SESSION['alert-danger'] = 'There was a problem processing your order';

现在,在这个 IPN 监听器 中,我可以设置更精细的消息,但现在尝试让一些基本的工作正常。

然后在产品页面中它们返回到我有这个

     <div class="flash-message">
         <?php
         foreach (['danger', 'warning', 'success', 'info'] as $msg) {
             $msgtype = 'alert-' . $msg;
             $issession=0;
             if(isset($_SESSION[$msgtype])) {
                 $p = "<p class=\"alert " . $msgtype. "\">" . $_SESSION[$msgtype] . "</p>";
                 echo $p;
                 $issession=1;
             }
         }
         if ($issession) {
             session_destroy();
         }
         ?>
     </div>

现在,这什么也没做。因此,当用户返回返回 url 时,似乎在 IPN listener 中设置的任何 session 变量都不可用。

我的paypal表格里有这个

<input type="hidden" name="rm" value="2">

为了获得 $_POST 数据,我确认当用户点击 Return to Merchant 时,发布数据与 'payer_status' => string '已验证'

那么是什么给了?如果返回的 url 只返回最少的信息,那么让 IPN 监听器 做一堆工作有什么意义呢?这是我在 IPN listener 中获得的状态信息,我希望能够显示在我的即时消息区域中,我认为我使用 session 变量可以实现这一点,但我错了。

综上所述,正确的做法是什么?

谢谢!

最佳答案

使用 session 不起作用的原因是 paypal 是向 IPN 监听器发送数据的那个。 session 不会存储在用户的浏览器中,因为他们不是向 IPN 监听器发送数据的人。您不能将从 IPN 监听器收集的信息存储到数据库中吗?这就是我为我的 Paypal 购买所做的。付款成功后,我将从 IPN 监听器收集的付款数据存储起来,并将其与用户 ID 一起存储在数据库中。当他们被重定向到成功页面时,我从数据库中抓取信息并显示出来。

关于php - 如何从 PayPal 购买返回并显示成功或失败消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58545990/

相关文章:

c# - 在 asp.net 页面和页面创建的后台线程之间共享变量

c# - ASP.NET 中的 session 变量

javascript - NodeJS 变量 session 未定义

php - 自动填充文本框 (php)

带有插入日期的 php/Mysql 查询失败

Express Checkout 的 PayPal 即时更新停止工作 [沙盒]

angular - 如何在paypal angular 4中的onAuthorize内部调用外部函数

php - 从文本文件读取然后插入 mysql 时结果变为空白

php - 登录后根据mysql中的字段变量转到[location]

php - 单击 PayPal 按钮时如何捕获用户信息?