Ответы пользователя по тегу Платёжные системы
  • Как правильно организовать биллинг на сайте?

    Я храню историю и версии всего.
    То есть:
    - Как хранить сумму денег на счете ? Отдельным числом или каждый раз пересчитывать доходы и расходы ?

    clients:
    id | name | surname | email | 
    &etc(различные другие поля) | 
    plan_id(или planPrice) | 
    budget(до последней оплаты) | totalBudget(за все время)


    payment: история платежей
    id | client_id| date | 
    &etc(различные другие поля) | 
    revision(если в процессе стоимость или условия услуги поменялись) | 
    price | 
    pay (оплачено или нет, 0 или дата платежа)

    - Как хранить дохоы, расходы клиента ?


    также и с ними
    sale: история взносов
    id | client_id| date | 
    &etc(различные другие поля) | 
    summ (какая сумма)| 
    refund (внесено или нет, 0 или дата платежа) |
    type (метод оплаты, Paypal, наличность, банк &etc)


    - Как часто "актуализировать" сумму биллинга ? Будут огромное количество мелких транзакций, условно 1000 штук в секунду по 0.0000000001$.


    С этим сложнее, но в высоконагрузочных проектах, надо базу сбрасывать, иначе зарастешь

    К примеру собирать транзакции и раз в сутки, в час, 5минут (нужное подчеркнуть) сбрасывать в архив или удалять создавая запись о полученных(неоплаченных средствах)

    transaction: история транзакций
    id | client_id| date | date_start | date_end |  archive_date_or_id | 
    &etc(различные другие поля) | 
    summ | count |
    pay (выплачено или нет, 0 или дата платежа)
    Ответ написан