Денежные операции

Описание методов работы со счетами пользователей и транзакциями по этим счетам

В системе LinQ Wallet предусмотрено создание счета для пользователя с нужным кодом валюты, куда происходит зачисление средств в процессе пополнения, перевода, или выигрыша в турнире.

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

Управление счётом

Для управления счетом используется сервис AccountsServicearrow-up-right. Он позволяет получать актуальное состояние счета пользователя, а так же проводить операции, которые нужны во время игры: взять сумму для ставки в турнире и зачислить выигрыш после завершения турнира.

Просмотр баланса

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

const accountsService = new AccountsServiceClient(getTransport());

const gamingBalance = await accountsService.getActualBalance({ currency: "GSC" }, getAuthorization(authToken));
const walletBalance = await accountsService.getActualBalance({ currency: "LNQ" }, getAuthorization(authToken));

// gamingBalance.response.balance;
// walletBalance.response.balance;

Изъятие средств

Изъятие средств со счета осуществляется отдельным методом, но по факту данная операция генерирует ордер, который в последствии доступен в истории операций.

// Some code

Ввод средств

Аналогично процессу изъятия средств, происходит и зачисление средств на определенный аккаунт пользователя.

Платежные операции

API при работе с платежами оперирует понятием Заказа (Order). В заказе хранится информация в целом о намерении пользователя и заказ проходит через стадии обработки, где к нему добавляется дополнительная техническая информация. Заказ работает аналогично заказам в e-commerce, но с учетом игровой специфики. За формирование и обработку заказов отвечает сервис PaymentsServicearrow-up-right.

Пополнение

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

Статус заказа

После создания заказа на пополнение в ответ вернется ссылка, которую необходимо отобразить внутри игры средствами webview. После оплаты (успешной или нет), будет возвращен контроль обратно в приложение, после чего следует удостовериться, в каком статусе находится заказ. Он может быть успешно оплачен или отклонен платежной системой.

Передача данных из webview

В случае интеграции UniWebViewarrow-up-right передача контроля из webview обратно в Unity происходит через генерацию специальной ссылки, куда перенаправляется пользователь и модуль их перехватывает, возвращая контроль.

Для начала нужно создать объект окна браузера и открыть ссылку для оплаты, полученную ранее.

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

Далее необходимо добавить обработчик, который будет следить за состоянием текущего окна и принимать ответы от страницы внутри.

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

file-download
2KB

Перевод

Для перевода денег в кошелек аналогично пополнению требуется создать заказ на перевод.

История операций

Для получения истории операций (или транзакций) следует воспользоваться сервисом OperationsServicearrow-up-right.

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

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

Last updated