Перейти к навигации

Пользователи и активы

Пользователи и активы: Интеграция с Agent Java SDK v0.3.0, примеры, параметры и семантика ответа.

Просмотр в формате Markdown

Это руководство предназначено для Agent Java SDK v0.3.0, Java 8+ и помеченного публичного контракта. Примеры выполняются в серверной части партнера после инициализации client в Быстрый старт.

Пример предварительных условий

Фрагменты Java разделяют этот импорт. Инициализируйте client с помощью быстрого запуска и получите platformUserId из сохраненной привязки. Примеры идентификаторов пользователей/заказов необходимо заменить вашими собственными сохраненными значениями.

import com.sixmm.agent.*;
import com.sixmm.agent.model.*;
import java.util.*;

Правила идентификации пользователя

platformUserId — это 6MM внешний идентификатор пользователя. В настоящее время это 10-значное число. строка, например:

1188041528

Правила:

  • Сохраните его как строку, а не как целое число.
  • Не генерируйте, не декодируйте и не выводите из него смысл.
  • Используйте свой собственный идентификатор пользователя на стороне партнера как agentUserId.
  • Сохраните отношения между agentUserId, platformUserId и agentOrderNo.

Привязать пользователя

Bind создает или извлекает связь между пользователем-партнером и 6MM пользователь платформы. Вызовите его, когда пользователь впервые входит в торговый процесс или перед первый перенос в 6MM.

import com.sixmm.agent.model.BindRequest;
import com.sixmm.agent.model.BindResponse;
BindResponse resp = client.bind(
BindRequest.of("agent-user-001")
.withUsername("alice")
.withExt("{\"source\":\"web\"}"));
System.out.println(resp.platformUserId);
System.out.println(resp.bindStatus);
System.out.println(resp.isSimulatedUser);

Поля запроса:

ПолеТипНеобходимыйОписание
agentUserIdstringДаУникальный идентификатор пользователя на стороне партнера
usernamestringНетОтображаемое имя на стороне партнера, используемое в качестве псевдонима пользователя платформы.
extstringНетПоле расширения. Рекомендуется строка JSON

Поля ответа:

ПолеТипОписание
platformUserIdstring6MM идентификатор внешнего пользователя
bindStatusstringОбычно BOUND
isSimulatedUserbooleanЯвляется ли это симулированным пользователем

Запрос партнерского аккаунта

import com.sixmm.agent.model.QueryAccountRequest;
import com.sixmm.agent.model.QueryAccountResponse;
QueryAccountResponse resp = client.queryAccount(QueryAccountRequest.of("USDT"));
System.out.println(resp.agentCode);
System.out.println(resp.agentStatus);
resp.assets.forEach(asset -> {
System.out.println(asset.currency);
System.out.println(asset.depositBalance);
});

Когда currency отсутствует, SDK использует defaultCurrency.

Запрос пользовательских ресурсов

import com.sixmm.agent.model.QueryUserAssetsRequest;
import com.sixmm.agent.model.QueryUserAssetsResponse;
QueryUserAssetsResponse resp = client.queryUserAssets(
QueryUserAssetsRequest.of("1188041528"));
System.out.println(resp.walletBalance);
System.out.println(resp.availableBalance);
System.out.println(resp.version);

Поля:

ПолеТипОписание
walletBalancestringБаланс кошелька
frozenMarginstringЗамороженная маржа
usedMarginstringИспользованная маржа
availableBalancestringДоступный баланс
isolatedMarginstringИзолированная маржа
versionint64Версия актива
isSimulatedUserbooleanЯвляется ли это симулированным пользователем

Различаем три кошелька

кошелекИсточник балансаиспользовать
Собственный пользовательский кошелек продавцаСобственная система учета торговцаДоступный баланс пользователя на стороне продавца
Финансирование платформыqueryUserAssets из fundingТорговые фонды Seconds и взаимный перевод «Финансирование/Контракт»
Платформенный контрактПоле актива контракта queryUserAssetsМаржа по бессрочному контракту и переводной баланс

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

Запросите два кошелька платформы симулированных пользователей:

QueryUserAssetsResponse assets = client.queryUserAssets(
QueryUserAssetsRequest.of(platformUserId)
.withFunding()
.withEnvironment(ExecutionEnvironment.SIMULATED));

Интерфейс: POST /v1/agent/query-user-assets. Финансирование запрашивается только тогда, когда includeFunding=true; по умолчанию используется исходная семантика запроса актива контракта.

поля ответазначение
walletBalance, availableBalance, frozenMargin, usedMargin, isolatedMarginСуммы, связанные с контрактным кошельком
funding.assetCodeВ настоящее время USDT
funding.availableAmount, heldAmount, totalAmountДоступное финансирование, занятость и общая сумма
funding.materializedБыл ли счет финансирования материализован?
environmentЭто поле отображается, когда среда передается явно; старые запросы, в которых не указана среда, не возвращают это поле.
isSimulatedUserКлассификация счетов; не может заменить выбор торговой среды

Суммы обрабатываются как строки или BigDecimal, а не float/double.

Источник и связанные руководства