gpt4 book ai didi

php - 如果未收到 PayPal 付款,则重置数据库表

转载 作者:行者123 更新时间:2023-11-30 23:17:12 27 4
gpt4 key购买 nike

我正在开发一个网站,人们可以在该网站上注册类(class)的“时段”。可用的日期/时间段存储在数据库中。当页面打开时,PHP 脚本会检查“booked”变量设置为“no”(默认值)的所有条目,并将它们显示为可用插槽。每个时段只能有一个人报名。

我有 IPN 脚本,它会在付款完成后更新数据库,并将时间段“预订”变量更改为"is"。一切顺利。

为了避免可能的重复预订,我需要在有人点击某个时间段后暂时删除它。但是,如果有人注册但从未真正付款,会发生什么? (也就是说,他们填写了他们的姓名、电子邮件等,然后它进入了数据库,但是他们从不点击完成 PayPal 付款?)如果付款被取消或未验证,我的 IPN 脚本会重置数据库表变量,但是如果他们从一开始就没有使用过 PayPal,就没有什么可以重置的。

如果 PayPal 没有更新,是否有某种方法可以在一段时间后(比如 30 分钟)自动将“已预订”变量重置回“否”?或者任何其他建议如何处理这个?

最佳答案

正如评论所说,如果您还没有时间戳和状态字段,您应该在表结构中添加它们。当有人去“预订” session 时,运行 Paypal API 的脚本应该将状态更新为待处理。现在,为了清除那些在您提到的“30 分钟”时间后未支付的费用,在向感兴趣的人显示时间段的同一脚本中,就像您在此处描述的那样:

“当页面打开时,PHP 脚本会检查所有将“booked”变量设置为“no”(默认值)的条目,并将它们显示为可用插槽。”

在将它们显示给用户之前,应在此脚本的开头添加一个小功能,以删除当前处于“待定”状态超过 30 分钟的那些。像这样:

$deletetime = strtotime('-30 minutes');

mysql_query("DELETE FROM time_slots WHERE timestamp < '$deletetime' and status = 'pending'");

关于php - 如果未收到 PayPal 付款,则重置数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17116265/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com