Документация InstantCMS

для администраторов и разработчиков

Инструменты пользователя

Инструменты сайта


manual:components:billing:api:balance

Биллинг API: Баланс

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

Баланс каждого пользователя хранится в поле balance стандартной таблицы users.

Поэтому получить баланс текущего авторизованного пользователя можно с помощью объекта $user:

$user = cmsUser::getInstance();
echo $user->balance; 

либо с помощью статичного метода get() класса cmsUser:

cmsUser::get('balance');

Получить баланс другого пользователя можно двумя способами.

1. Получив пользователя из модели контроллера users:

$user = cmsCore::getModel('users')->getUser( $user_id );
echo $user['balance'];

2. Получив баланс из модели биллинга:

$balance = cmsCore::getModel('billing')->getUserBalance( $user_id );

Пополнение и списание с баланса

Баланс можно изменять как одному пользователю за раз, так и целой группе:

$billing->changeBalance($mode, $subject_id, $amount, $description, $action_id);

Параметры метода changeBalance():

Параметр Обязателен Возможные значения Описание
$mode Да user или group Определяет чей баланс изменяется - пользователя или группы
$subject_id Да число (int) ID пользователя или группы (получателя)
$amount Да число (float) Сумма во внутренней валюте, зачисляемая на баланс. Может быть отрицательной
$description Да строка или массив Содержит описание операции, которое будет отображаться в истории операций каждого пользователя, затронутого данным изменением баланса. Вместо строки можно передать массив с элементами text (описание операции) и url (ссылка на страницу, связанную с операцией).
$action_id Нет число (int) ID действия в Биллинге (id нужной записи из таблицы cms_billing_actions)

Для изменения баланса одному пользователю существуют сокращенные варианты этого метода.

Пополнение баланса:

$billing->incrementUserBalance($user_id, $amount, $description, $action_id);

Списание с баланса:

$billing->decrementUserBalance($user_id, $amount, $description, $action_id);

где $user_id – ID целевого пользователя. Значение $amount в обоих случаях указывается положительным.

Начисление реферального вознаграждения

При пополнении баланса методами, описанными выше, не происходит автоматическое начисление реферальных вознаграждений.

Для их начисления используется метод:

$billing->payRefBonus($amount, $is_deposit, $user_id, $max_level);

Параметры метода payRefBonus():

Параметр Обязателен Возможные значения Описание
$amount Да число (float) Исходная сумма дохода, из которой будут начисляться реферальные вознаграждения
$is_deposit Нет true или false Флаг, показывающий является ли данная сумма зачисленной за реальные деньги. Если false, то реферальное вознаграждение будет начислено только если опция «Выплачивать вознаграждения за» в настройках биллинга содержит значение «Любой доход реферала».
$user_id Нет число (int) или false ID реферала. Если false, будет использован ID текущего авторизованного пользователя
$max_level Нет число (int) или false Максимальный уровень выплаты. Позволяет ограничить выплату вознаграждений по удаленности пригласивших от реферала. Например, если указать 1, то выплату получит только пользователь непосредственно пригласивший данного реферала на сайт

Вернуться к API | Вернуться к оглавлению

manual/components/billing/api/balance.txt · Последнее изменение: 04.03.2016 20:04 — fuze