如果PayPal包含参数,则忽略返回URL

时间:2016-03-02 11:34:41

标签: php paypal

我正在创建一个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表单,提示买家点击“提交”按钮以转到您的成功页面

here

  

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

但是我无法让它发挥作用。

我已经尝试了所有三个rm设置,但它并没有改变一件事。

我已尝试使用自动返回开启和关闭。

此功能现在已损坏,或者我有什么遗漏?

1 个答案:

答案 0 :(得分:0)

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

你可以做到的一种方式:

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

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

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

<?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。如果已设置,则显示页面。如果没有,他们还没有完成任何交易,我们可以重定向或显示特定的内容。