При создании сайта, а в особенности интернет-магазина, у многих возникает вопрос: как создать личный счет или баланс пользователя? Чтобы при регистрации на сайте, пользователь автоматически имел в своем аккаунте личный счет, который он может пополнять для оплаты каких-либо товаров или услуг.

Давайте рассмотрим, как сделать такую возможность на своем сайте.

Итак, дана задача, добавить на сайт:

  • функцию баланса в личный кабинет пользователя
  • изменение баланса пользователя администратором сайта
  • возможность пополнения пользователем баланса
  • оплату товаров или услуг через баланс
  • запись списка оплаченных счетов в личный кабинет пользователя.

Для начала определим, на какой платформе у вас сайт или интернет-магазин.

Сайт на конструкторе сайтов

Создать баланс пользователя на сайте построенном в конструкторе сайтов возможно, но все зависит от используемой платформы. Если в конструкторе сайтов, который вы используете, уже есть какое-нибудь готовое приложение или модуль баланса и счетов, которые можно установить, то это очень хорошо. Если готовых решений нет, то вам придется их создавать самостоятельно - писать специальный компонент или простой скрипт, если конечно же, конструктор сайтов позволяет их установить и использовать.

Система управления контентом (CMS)

Как и в случае с конструктором сайтов, в системе управления контентом вы можете использовать уже готовые модули или плагины. Если готовых нет, то их можно написать. В отличие от конструкторов сайтов, создать свой плагин или компонент можно практически в любой CMS.

Фреймворк или самописный сайт

Для сайтов построенных на базе фреймворков можно поискать готовые модули на Github и установить через Composer или подключить самому вручную. Фреймворк ничем не ограничивает вас для создания модуля баланса пользователя. Самописный сайт - созданный вами без всяких вспомогательных инструментов, библиотек, фреймворков также не налагает ограничений по созданию баланса в личном кабинете.

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

Создание баланса в личном кабинете

Пользователи сайта или клиенты интернет-магазина обычно хранятся в какой-нибудь таблице базы данных с названием users, user, clients и т.п.

Баланс - представляет собой ячейку, в которой хранится числовое значение количества денежных средств пользователя.

Для хранения баланса в таблице users можно добавить поле balance с типом integer или float.

НаименованиеОписание
user_idid пользователя
loginлогин пользователя
emailemail пользователя
passwordзахэшированный пароль
balanceбаланс пользователя

Это достаточно просто. Теперь у каждого пользователя есть свой баланс. В форму редактирования аккаунта пользователя можно добавить input и позволить его редактировать только администратору сайта, чтобы в случае необходимости можно было изменить баланс любого пользователя.

Использование нескольких валют

А что, если нужно, чтобы баланс был в нескольких валютах? Для этого следует сохранять стоимость в какой-нибудь одной, универсальной валюте, которой естественно является доллар. Затем просто на лету конвертировать баланс в нужную валюту. Например, баланс хранится в долларах ($), а с помощью какого-нибудь API вы можете конвертировать баланс и вывести его на в личном кабинете пользователя в рублях, евро, тенге и т.п. В том числе использовать конвертацию при оплате или пополнении. Например, пользователь хочет произвести оплату товара с баланса через рубли и вы конвертируете долларовый баланс в нужную валюту.

Пополнение баланса пользователя

Значение баланса можно выводить на странице просмотра личного кабинета пользователя. Из этого же кабинете организовать систему пополнения баланса по следующему принципу:

  • выбрать подходящую для вас систему приема платежей, с API
  • добавить на страницу личного кабинета кнопку или форму для перечисления пользователем денежных средств
  • после этого проверять с помощью API, успешно ли совершена оплата или нет. Если успешно, то прибавлять к балансу пользователя сумму пополнения - записывать в поле balance в таблице users.
  • создать в базе данных таблицу, в которую записывать данные о пополнении баланса, например, billing или transaction со следующими полями:
НаименованиеОписание
billing_idпорядковый id записи
date_createдата оплаты/добавления счета
amountсумма пополнения
user_idid пользователя выполнившего пополнение баланса

Оплата товаров или услуг через баланс

Прием оплат за товары или услуги через баланс строить по следующему принципу:

  • пользователь переходит на страницу товара, где нужно проверять, авторизован он или гость.
  • если пользователь авторизован, то можно выводить количество средств баланса, и проверять, хватает ли этого баланса, чтобы оплатить товар. Если баланса не хватает, то нужно отображать пользователю сообщение об этом и можно даже показывать ссылку для перехода на страницу пополнения баланса.
  • нужно создать какую-то кнопку оплаты, ведущую на страницу или отправляющую ajax запрос на эту страницу, где будет происходить процесс покупки товара и списания потраченной суммы с баланса пользователя.

Запись списка оплаченных счетов

Если товар успешно оплачен через баланс, то нужно записывать об этом информацию в базу данных, например, создать таблицу invoice, если аналогичной таблицы еще нет.

НаименованиеОписание
invoice_idпорядковый id записи
date_payдата оплаты товара
amountсумма оплаты
user_idid пользователя выполнившего покупку товара
product_idid купленного товара
Готовое приложение баланса

Приложение поможет вам совешать пополнение баланса своего аккаунта, а также делать переводы другим пользователям.
Вы можете использовать это приложение в качестве заготовки для разработки нового проекта, либо интегрировать с уже имеющимися проектами.