Итак, вы создаете идентификатор билета, который вам нужен в следующей форме. Да, лучше хранить его в скрытой переменной в форме.
Но помимо этого вы можете сохранить сгенерированный идентификатор заявки в сеансе и уничтожить после его использования.
Если этот идентификатор билета уникален для определенного сеанса, вы можете сохранить его в базе данных с ключом идентификатора сеанса, а также получить и очистить идентификатор при отправке формы.
Если это возможно, то сгенерируйте идентификатор тикета, когда форма будет отправлена. Таким образом, не возникает вопроса о сохранении идентификатора билета в скрытой переменной, сеансе или базе данных.
На самом деле может быть много других способов, но чтобы получить полное и конкретное предложение, пожалуйста, поделитесь еще одним своим сценарием.
Обновление:
Основываясь на вашем обновлении, я думаю, вам нужно поддерживать таблицу running_transactions
.
Это будет иметь
event_id
(указывая на выбранное событие)
ticket_type_id
(указывает на тип билета, который хочет купить пользователь)
ticket_id
(уникальный идентификатор, сгенерированный вашим алгоритмом)
person_details
(указывая на данные, предоставленные пользователем)
- и т. д. (может включать другую информацию, связанную со статусом платежа или транзакции)
id
: уникальный идентификатор этой таблицы.
Теперь о запуске процесса покупки
- Создайте запись
running_transaction
, которая будет почти пустой.
- Сохраните идентификатор этой таблицы в сеансе. Таким образом, для каждого последующего запроса вы найдете соответствующую запись
running_transaction
по этому идентификатору.
- Эта запись будет обновляться дополнительными значениями на каждом этапе покупки билета. Например, после «шага 1» у вас будет идентификатор заявки.
- В конце концов, когда билет будет успешно куплен и вы получите подтверждение оплаты, вы отметите это
running_transaction
как completed
.
Вероятно, у вас уже есть что-то для отслеживания этой информации, так что вы можете использовать описанный выше способ и в этой таблице. Возможно, вы найдете лучшие имена, чем я предоставил :)
person
Samiron
schedule
06.10.2012