我正在创建一个名为暂定预订的功能。
当用户预订机票时,他会获得一个临时的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;
}
答案 0 :(得分:3)
status
列设置为&#34; awaiting_payment&#34;或者其他什么,在数据库中。换句话说,您在特定时间没有做任何事情或在特定时间过期。您只需保存足够的信息,以便在需要时随时了解订单的状态。
答案 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);
}