Документация для разработчиков
Темная тема

UpdateAccount

Описание и параметры

int
CSaleUserAccount::UpdateAccount(
 int userID, 
 double sum, 
 string currency[, 
 string description = ""[,
 int orderID = 0[,
 string notes = ""]]]
);

Метод изменяет сумму на счете пользователя с кодом userID. Метод статический.

Параметры вызова

ПараметрОписание
userID Код пользователя.
sum Величина изменения суммы на счете. Для увеличения суммы на счете величина должна быть со знаком "+" или без знака, а для уменьшения - со знаком "-". 
currency Валюта суммы.
description Описание причины изменения суммы.
orderID Код заказа, если изменение суммы относится к заказу.
notes Произвольное текстовое описание.

Возвращаемые значения

Метод возвращает код пользовательского счета или false в случае ошибки.

Замечания:
  • Деньги снимаются только со счета той же валюты, которая передается параметром в метод. Счета пользователя в другой валюте не затрагиваются.
  • Если счета в данной валюте раньше у пользователя не было, то он автоматически создастся (и будет возвращен код созданного счета).

Пример использования

<?
// Напишем функцию обратного вызова, которая будет вызываться при изменении
// флага "Доставка разрешена" заказа и добавлять (или снимать) 100 USD на счет

function MyDeliveryOrderCallback($productID, $userID, $bPaid, $orderID)
{
    global $DB;

    // Обработаем входные параметры
    $productID = IntVal($productID);    // Код заказанного товара
    $userID = IntVal($userID);  // Код пользователя-покупателя
    $bPaid = ($bPaid ? True : False);   // Устанавливается или снимается флаг доставки
    $orderID = IntVal($orderID);    // Код заказа

    if ($userID <= 0)
        return False;

    if ($orderID <= 0)
        return False;

    // Внесем (снимем) деньги на счет
    if (!CSaleUserAccount::UpdateAccount(
            $userID,
            ($bPaid ? 100 : -100),
            "USD",
            "MANUAL",
            $orderID
        ))
        return False;

    return True;
}
?>


© «Битрикс», 2001-2023, «1С-Битрикс», 2023