如何在付款后获得会话价值? (CakePHP-Paypal托管解决方案)

时间:2011-02-21 20:58:50

标签: cakephp

我正在使用CakePHP作为我的应用程序,我能够集成Paypal托管解决方案。用户已成功重定向到Paypal以完成付款。完成后,他们将返回我的网站。

首先,它将用户带到登录页面(因为会话被删除)。为了防止这种情况,我在新窗口中打开了Paypal页面。现在他们没有被要求再次登录并保持$ this-> Session-> read('Auth.User')完好无损。但是,它不记得任何其他会话数据。例如,我有一个会话变量'invoice_number',它从Paypal网站返回后不可用。

我注意到会话ID在完成付款之前和之后都没有保持不变。

我已经更改了core.php以通过将其设置为低来减少会话安全性,增加了会话时间,并且我还进行了修改,以便只有在找不到会话ID时它才会启动会话(在CakePHP票/ bug)。

有趣的是,在Chrome中没有,它会记住所有会话变量,会话ID是相同的并且工作正常。但是在Firfox中,它没有用!

无论如何,使用相同的id / session变量保持会话处于活动状态,以便即使在他们返回付款后,我的应用程序也知道此付款的发票号是什么。

任何帮助都会非常感激。

亲切的问候, 的TaSiN

3 个答案:

答案 0 :(得分:0)

尝试关闭core.php中的引用检查,这应该可以解决问题。

答案 1 :(得分:0)

尝试将Security.level设置为core.php。

以外的其他内容

答案 2 :(得分:0)

由于我无法为这个问题找到合适的解决方案,所以我必须找到解决方法。

正如我所提到的,当重定向时,'Auth.User'信息仍然完好无损。我使用它来检索我在将用户发送到PayPal网站之前存储到数据库中的信息。

付款完成后,用户返回我网站上的确认页面,我将根据“Auth.User”会话数据从数据库中检索数据。

不是完美的解决方案,但就目前来说,它有点工作。

如果欢迎任何比这更好的解决方案。请告诉我。

非常感谢,

的TaSiN