Резервирование средств на сайте

279
10 сентября 2017, 02:33

Допустим, есть пользователь, который ввел денежные средства на сайт. И есть другой пользователь, который получить эти деньги после выполнения определенных действий. Как можно такое реализовать, т.е. нужно какое-то безопасное резервирование средств. Можно сервис.

Answer 1

Я бы делал так.

Есть таблица средств пользователей, user_funds(user_id, money, reserved) - деньги и зарезервированная сумма для каждого пользователя.

Еще надо хранить, на что именно зарезервированны деньги user_reserve(user_id, object_id, money) - кто, за что и сколько положил в резерв.

При оплате со счета пользователя проверять, что сумма оплаты больше разности money - reserved, с учетом того, что часть средств может быть зарезервирована для данной операции, и работать с помощью select for update. По простому сделать constraint на то что money - reserved >= оплата не получится.

Стоит сделать ограничение, что разность money - reserved >= 0.

Все операции с этими таблицами оборачивать транзакции, чтобы или они все выполнились, или же все не выполнились. То есть списывание со счета, начисление, резервирование и снятие резерва, оплата с исполнением резерва и т.д. должны быть в транзакции.

READ ALSO
Сравнить текущие время с заданным

Сравнить текущие время с заданным

Необходимо сравнить текущие время с заданным, если текущие время больше заданного хотя бы больше на 30 минут, то вывести фразуУ меня выводит...

214
Сессия на поддоменах

Сессия на поддоменах

Есть 2 проекта расположеных на одном домене, но на разных поддоменахНапример foo

233