如何在贝宝验证付款之前不将用户输入保存在数据库中


How not to save user input in database until paypal validates the payment?

我想使用html表单获取一些用户信息,提交后,用户输入存储在会话中,用户被重定向到贝宝进行支付操作。付款验证后,用户将再次重定向到网站,输入将存储在数据库表中。

问题是:会话变量在重定向到网站后丢失。

有人帮忙吗?

谢谢。

这是个坏主意。用户到达目标页面并不意味着他们是在PayPal发送后到达的。他们甚至可以伪造Referer标头,使其看起来像他们所做的那样。

相反,在将他们的信息发送到PayPal之前先保存,然后使用PayPal的IPN系统进行更新并标记为已付款。

在php手册中,session_start从get、post或cookie获取会话id。听起来你在用饼干。要在会话中使用cookie,在向浏览器发送任何内容之前,您需要调用session_start。如果这不是问题所在,解决方法是将会话id设置为get参数,并在返回页中基于该参数加载会话。

http://php.net/manual/en/function.session-start.php