在php中创建自动销毁功能

时间:2014-03-31 13:24:17

标签: php

我正在创建一个名为暂定预订的功能。

当用户预订机票时,他会获得一个临时的pnr号码,并且应该给他约10分钟的时间来执行他的付款。

如果他未能在10分钟内付款,则应取消交易。否则,应显示成功消息。

请忽略付款的逻辑。它可以是任何方法。

我正在生成临时pnr-number并将其存储到数据库中。

我无法理解我应该如何继续前进。

我可以使用php中的任何功能吗?

这是我的代码:

    $pnr = getPnr();
        echo "You temporarary pnr num is : $pnr <br>";
    echo "Check you mail and save it for future use";
    if($book_ticket == 'true')
    {       DoTentativeBooking($userid,$book_ticket,$from,$to,$date,$pnr,$seats,$email);

    }
function DoTentativeBooking($userid,$book_ticket,$from,$to,$date,$pnr,$seats,$email)
{
        $con = mysqli_connect('server', 'user', 'password', 'database');                
        if (mysqli_connect_errno())
        {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
            return;
        }
        $insertQuery1 = "INSERT INTO tbl_user(`user_id`,`book_ticket`,`from`,`to`,`date`,`user_pnr`,`seat`,`email`,`isConfirm`) VALUES ('".$userid."','".$book_ticket."','".$from."','".$to."','".$date."','".$pnr."','".$seats."','".$email."','No')";
        if (!mysqli_query($con,$insertQuery1))
            {
            //  die('Error: ' . mysqli_error($con));
                echo "error";
            }       
        return; 
}

2 个答案:

答案 0 :(得分:3)

  1. 保存订单创建时间和/或与数据库中的订单一起过期的时间戳。
  2. 设置一些您正在等待付款的标记,例如将status列设置为&#34; awaiting_payment&#34;或者其他什么,在数据库中。
  3. 每当处理任何订单时,请按状态标记对其进行过滤/相应处理。
  4. 在付款确认页面上,当将状态翻转为&#34;已付款&#34;时,请检查到期时间戳。
  5. 换句话说,您在特定时间没有做任何事情或在特定时间过期。您只需保存足够的信息,以便在需要时随时了解订单的状态。

答案 1 :(得分:-1)

你可以试试这个......

在设置time variable时设置temporary pnr number ..

$date = new DateTime();
$time1 = $date->getTimestamp(); // this will give you current timestamp..

并在标题中添加检查条件,如..

$time2 = $date->getTimestamp();
if(round(abs($time1 - $time2) / 60,2) >= 10)
{
   unset($pnr);
}