Здравствуйте. Столкнулся с проблемой. Я сейчас делаю себе сайт для бронирования номеров в отеле. Теоретически скрипт должен работать так:
- Человек заходит на сайт
- Скрипт проверяет свободные номера и даты, и показывает их человеку
- Человек выбирает даты бронирования и номер и жмёт оплатить
- Скрипт проверяет свободность этих номеров
- Если номера еще свободны, скрипт записывает в бд запись с датами бронирования, номером, данными клиента и т.д.
- Человек переходит на страницу оплаты бронирования (на яндекс кассу, допустим)
Теперь 3 варианта развития событий
- Человек оплатил номер и его перекинуло обратно на сайт с поздравлением о бронировании
- Человек закрыл страницу оплаты (не оплатил)
- Человек бездействовал 10 минут (не оплатил)
Мне, наверно, нужно пояснить 5ый пункт. Это сделано для того, чтобы никто другой не мог забронировать на эти даты номер, пока наш человек его оплачивает.
Ну вот проблема заключается в том, как удалить запись из бд, если человек не оплатил бронь?
cron - не вариант. Если задать исполнение скрипта на каждые 10 минут, то есть вероятность, что человек зарезервирует номера на 8 или 9 минуте. То есть, пока человек их оплачивал, записи из бд удалились, что не есть хорошо.
Я вообще представляю себе это так: на 5ом пункте в бд записывается еще строка, типа: оплачено? да/нет. И после того, как прошел 5ый пункт, через 10 минут должен сработать скрипт, который проверит записи в бд на наличие в колонке "оплачено" "нет", и удалит всю строчку, если они есть.
Как такое реализовать? Подскажите, куда копать?