Przejdź do nawigacji

Użytkownicy i zasoby

Użytkownicy i zasoby: Agent Java SDK Integracja v0.3.0, przykłady, parametry i semantyka odpowiedzi.

Zobacz jako Markdown

Ten przewodnik jest przeznaczony dla Agent Java SDK v0.3.0, Java 8+ i oznaczonych zamówień publicznych. Przykłady działają w zapleczu partnera po inicjalizacji client w Szybki start.

Przykładowe wymagania wstępne

Fragmenty Java dzielą ten import. Zainicjuj client za pomocą Szybki start i uzyskaj platformUserId z zapisanego powiązania. Przykładowe identyfikatory użytkowników/zamówień należy zastąpić własnymi, utrwalonymi wartościami.

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

Zasady dotyczące identyfikatora użytkownika

platformUserId to 6MM identyfikator użytkownika zewnętrznego. Obecnie jest to 10-cyfrowa liczba ciąg, na przykład:

1188041528

Zasady:

  • Zapisz go jako ciąg, a nie jako liczbę całkowitą.
  • Nie generuj, nie dekoduj ani nie wnioskuj z tego znaczenia.
  • Użyj własnego identyfikatora użytkownika po stronie partnera jako agentUserId.
  • Utrzymaj relację między agentUserId, platformUserId i agentOrderNo.

Powiąż użytkownika

Bind tworzy lub pobiera relację pomiędzy użytkownikiem-partnerem a 6MM użytkownik platformy. Wywołaj go, gdy użytkownik po raz pierwszy wejdzie w przepływ transakcji lub przed pierwszy przelew do 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);

Pola żądania:

PoleTypWymaganyOpis
agentUserIdstringTakUnikalny identyfikator użytkownika po stronie partnera
usernamestringNIENazwa wyświetlana po stronie partnera używana jako pseudonim użytkownika platformy
extstringNIEPole rozszerzenia. Zalecany jest ciąg JSON.

Pola odpowiedzi:

PoleTypOpis
platformUserIdstring6MM identyfikator użytkownika zewnętrznego
bindStatusstringZwykle BOUND
isSimulatedUserbooleanCzy jest to symulowany użytkownik

Zapytanie o konto partnera

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);
});

Gdy currency jest nieobecne, SDK używa defaultCurrency.

Zapytanie o zasoby użytkownika

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);

Pola:

PoleTypOpis
walletBalancestringSaldo portfela
frozenMarginstringZamrożony margines
usedMarginstringWykorzystany margines
availableBalancestringDostępne saldo
isolatedMarginstringIzolowany margines
versionint64Wersja aktywów
isSimulatedUserbooleanCzy jest to symulowany użytkownik

Rozróżnij trzy portfele

portfelŹródło równowagiużywać
Własny portfel użytkownika sprzedawcyWłasny system księgowy SprzedawcyDostępne saldo użytkownika po stronie sprzedawcy
Finansowanie platformyqueryUserAssets z fundingFundusze handlu sekundami i wzajemny transfer środków/umowy
Umowa PlatformyPole aktywów kontraktowych queryUserAssetsMarża kontraktowa bezterminowa i saldo zbywalne

queryAccount Zapytaj o konto depozytu zabezpieczającego platformy sprzedawcy, a nie o portfel użytkownika sprzedawcy. Ten interfejs nie ma parametrów environment i nie można go sprawdzać jako symulowanego zasobu użytkownika.

Zapytaj dwa portfele platformy symulowanych użytkowników:

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

Interfejs: POST /v1/agent/query-user-assets. O finansowanie wnioskuje się tylko wtedy, gdy includeFunding=true; Domyślnie używana jest semantyka zapytań o zasobach kontraktu.

pola odpowiedzioznaczający
walletBalance, availableBalance, frozenMargin, usedMargin, isolatedMarginKwoty powiązane z portfelem kontraktowym
funding.assetCodeObecnie USDT
funding.availableAmount, heldAmount, totalAmountDostępne środki, zajęte i całkowita kwota
funding.materializedCzy konto finansowania zostało zmaterializowane?
environmentTo pole jest powtarzane, gdy środowisko jest przekazywane jawnie; stare żądania pomijające środowisko nie zwracają tego pola.
isSimulatedUserKlasyfikacja konta; nie może zastąpić wyboru środowiska handlowego

Kwoty są obsługiwane jako ciągi znaków lub BigDecimal, a nie float/double.

Źródło i powiązane przewodniki