PayPal忽略返回 URL(如果它包含参数)


PayPal ignoring return url if it includes parameters

我正在创建一个PayPal捐赠交易。其他一切都工作正常,除了我无法让返回网址具有参数:

return=http://example.com

但是工作正常:

return=http://example.com?action_upon_return=complete

只是完全忽略,而是默认为PayPal页面。

PayPal文档明确指出您可以:

如果您想使用查询字符串传递自己的自定义参数,例如 return=http://yoursite.com/somescript.php?name=value,请注意,PayPal会生成 HTML 表单,提示买家点击"提交"按钮以转到您的成功页面。

在这里:

例如,您可能希望将付款人重定向到您网站上特定于该用户的网址,该网址中可能包含会话 ID 或其他与交易相关的数据。

但是我就是无法让它工作。

我已经尝试了所有三个rm设置,它不会改变任何事情。

我已经尝试过打开和关闭自动返回。

此功能现在是否损坏或我缺少什么?

我从未真正尝试过使用返回 URL 传递参数。

您可以做到这一点的一种方法:

  • 按照"完成"行创建会话变量
  • 检查会话变量是否存在/它包含的内容,然后执行某些操作。

不过,你可以用它做一些不同的事情。如果您只是检查他们是否已完成捐赠,以便您可以显示已完成/感谢页面,那么您只需检查该会话变量是否存在。

因此,在返回页面上,检查是否设置了会话变量。如果已设置,请执行某些操作。如果用户导航回返回页面,它仍将显示感谢信息(假设会话变量仍设置)。请记住在捐赠过程开始时取消设置此会话变量,以便在他们尝试再次捐赠时不会有问题。

<?php
session_start();
//Set this once the transaction/donation is completed.
$_SESSION['complete'] = "something"; //Transaction ID/True/Some other data.
//This would be on the return page.
//Check if it is set, or the value of the variable depending on your needs.
if (isset($_SESSION['complete'])){
    echo "Thank you";
    //If you still have the transaction variables set, 
    //this is where you could use it to display something.
} 

?>

我个人有一个简单的付款确认页面,仅显示交易ID。由于我在完成会话事务变量后取消设置了它们(将它们放入数据库中),因此我的完整变量可以保存事务 ID。如果已设置,则显示页面。如果没有,他们还没有完成任何交易,我们可以重定向他们或显示特定内容。