Помогите, как организовать приём платежей.

Alexi

Новичок
Помогите, как организовать приём платежей.

Суть такая, биллингу необходимо передать id транзакции. Что я делю - из таблицы всех денежных поступлений(money) выделяю последний id (который auto_incement и уникален), прибавляю 1 и передаю в биллинг. Далее когда в биллинге платеж завершается пользователь перекидывается на мой скрипт в который передаётся id транзакции. Скрипт берёт этот id и вставляю его в таблицу money.

Так вот, сам процесс платежа занимает несколько минут. Я пользователь, делаю платёж, получаю id транзакции (например 5) и перехожу на страницу биллинга. В это время кто-то совершает платёж другим способом и в таблицу money вставляется его запись с id=5. В результате когда меня перекинет на скрипт, то он ругнётся, что запись с id=5 уже существует.

Как быть в таком случае? Подскажите как лучше будет всё это дело организовать?
 

waldicom

Новичок
Re: Помогите, как организовать приём платежей.

Наверное можно на этапе "... выделяю последний id (который auto_incement и уникален), прибавляю 1 и передаю в биллинг..." не просто передавать в биллинг, а вставлять строку в базу данных. Таким образом следующий клиент получить уже следующую id.
А при возвращении с билинга надо: или проверять, есть ли такая id или использовать REPLACE или использовать INSERT ... ON DUPLICATE KEY UPDATE
 

x-yuri

Новичок
тогда при возвращении запись должна существовать в любом случае
 

Groove

Новичок
Добавлять запись сразу (выписывать счет), а флаг успешной оплаты только после положительного ответа биллинга.
Неоплаченные счета можно потом удалять, либо давать оплачивать позже.
 
Сверху