Skip to navigation

Користувачі та активи

Користувачі та активи: Інтеграція Agent Java SDK v0.3.0, приклади, параметри та семантика відповіді.

View as 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Секундні торгові кошти та взаємний переказ фінансування/контракту
Договір платформиПоле активу контракту 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.

Джерело та відповідні посібники