Как получить accountId для Moneta.ru SDK
При интеграции платёжной системы Moneta.ru разработчики часто сталкиваются с вопросом: что передавать в параметр $accountId при вызове метода showAccountBalance()? В документации PHP SDK этот момент описан неполно, что приводит к ошибке «Ошибка авторизации». Разберёмся, где найти или сформировать правильный идентификатор счёта.
Что такое accountId в Moneta SDK
AccountId - это уникальный номер лицевого счёта пользователя в системе Moneta.ru. Он не равен идентификатору пользователя (user_id) и не является произвольным числом. Каждый зарегистрированный кошелёк или счёт имеют свой постоянный числовой идентификатор, который используется для операций с балансом.
Где взять accountId
Существует несколько способов получить корректный accountId:
- Через личный кабинет Moneta.ru: войдите в аккаунт, перейдите в раздел «Счета» или «Кошелёк». Номер счёта обычно отображается рядом с названием счёта и состоит из 10-15 цифр.
- Через API получения списка счетов: используйте метод
getAccountList()из того же SDK. Он возвращает массив объектов, каждый из которых содержит полеid- это и есть нужный accountId. - При создании нового пользователя: если вы регистрируете пользователя через API, в ответе на запрос создания приходит accountId нового счёта. Сохраните его в базе данных сразу после регистрации.
Пример получения accountId через SDK
Вот как можно получить список счетов и выбрать нужный идентификатор:
$monetaSDK = new Moneta\MonetaSdk();
$accounts = $monetaSDK->getAccountList();
foreach ($accounts as $account) {
echo 'Account ID: ' . $account->id . '\n';
echo 'Balance: ' . $account->balance . '\n';
}
После этого вы можете использовать полученный accountId для вызова showAccountBalance().
Почему возникает ошибка авторизации
Ошибка «Ошибка авторизации» при передаче произвольного числа возникает из-за того, что SDK проверяет принадлежность счёта текущему сеансу. Если accountId не существует или не привязан к вашему API-ключу, система отклоняет запрос. Всегда используйте только те идентификаторы, которые получены через официальные методы Moneta.
Работа с тестовым режимом
Для отладки в SDK Moneta предусмотрен тестовый режим. В документации уточните, какие тестовые accountId допустимы - обычно это специальные номера, начинающиеся с 1000. Однако для реальной интеграции обязательно используйте боевые счета из личного кабинета или API.
Заключение
Правильный accountId - это не произвольное число, а реальный идентификатор счёта в Moneta.ru. Получить его можно через личный кабинет, метод getAccountList() или сохранить при создании пользователя. Избегайте передачи случайных значений, чтобы не получать ошибку авторизации. Следуя этим рекомендациям, вы успешно интегрируете отображение баланса в своём проекте.