我正在预订网站。当任何用户访问网站时,请选择任何日期&预订时间和PayPal付款。在转到PayPal之前,我将此条目添加到预订中,因此任何其他用户都无法在该日期的特定时间进行预订。 现在,如果用户没有在paypal上付款并保持闲置状态。在这种情况下,时间被阻止。 我希望用户有10分钟的时间在paypal上付款。如果时间超过用户应该使用任何标记重定向到我的网站,所以我可以删除该预订,该时间 - 日期将可供用户预订。
我可以使用cron作业,可以删除数据库中待处理状态超过10分钟的预订。 我面临的主要问题是
1)当我去PayPal付款并保持闲置时,paypal会在5分钟后自动重定向(会话时间错误)
2)但是当我去paypal并使用沙盒帐户登录然后保持闲置时,如果5分钟后,我尝试做任何活动,它会给出超时错误,并重定向到paypal的登录屏幕。所以它允许我再次登录并继续付款。
通过这种方式,用户甚至可以在1小时后付款。如果我使用cron删除预订条目,则会产生冲突,因为付款已完成且数据库中没有条目。
我希望在10分钟后明确地将用户从paypal重定向到我的网站。
答案 0 :(得分:1)
<?php
// Create and start timer firing after 10 minute
$w1 = new EvTimer(600, 0, function () {
echo "10 minute elapsed\n";
//Your Condition
});
?>
使用计时器并在计时器中写入您的条件并检查用户付款状态
答案 1 :(得分:0)
您可以做的是将预订存储在数据库的表格中,然后让每分钟左右运行一个cron作业,并删除超过10分钟的所有条目:
mysql myDatabase < 'DELETE FROM bookings WHERE (now() - time_the_booking_was_made) > (120*60)'
数据库中的预订不应显示给其他用户,因为这些预订将处于10分钟保留状态。如果您需要在10分钟的时间段之后立即向其他用户提供预订,您可以将其保存到桌面并运行一个计时器,如上面的答案中那样将在指定时间后删除预订。
答案 2 :(得分:0)
希望这可能会给你一些想法:
1&GT;选择日期和时间后,您将在预订时添加条目。在添加条目之前,检查数据库中是否已存在相同的“日期和时间”(因为许多可能同时预订)。如果向用户显示已向其预订的“显示”消息(重定向到预订页面)。如果它不存在则将条目添加到数据库。
2 - ;在数据库条目表中创建列“status”,在向数据库添加“预订条目”时,将“status”设置为“pending或0”。目前,其他用户无法预订此条目(相同的日期和时间)。
3&GT;成功付款后,将“状态”设置为“已确认或1”。如果不成功将'status'设置为'denied'或'-1'
4&GT;我猜paypal有默认时间限制。
5个因此,当状态为“待定”和“已确认”时。其他人不能预订。
6个如果状态为“拒绝”或“空”,则其他人可以预订。