Ir para a navegação

Utilizadores e ativos

Utilizadores e ativos: Integração Agent Java SDK v0.3.0, exemplos, parâmetros e semântica de resposta.

Ver como Markdown

Este guia é dirigido a Agent Java SDK v0.3.0, Java 8+ e ao contrato público assinalado. Os exemplos são executados num back-end de parceiro após a inicialização de client em Início rápido.

Pré-requisitos de exemplo

Os trechos Java partilham estas importações. Inicialize client utilizando o Quick Start e obtenha platformUserId a partir da ligação guardada. Os exemplos de IDs de utilizador/encomenda devem ser substituídos pelos seus próprios valores persistentes.

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

Regras de ID do utilizador

platformUserId é o ID do utilizador externo 6MM. Atualmente é um número de 10 dígitos cadeia de caracteres, por exemplo:

1188041528

Regras:

  • Armazene-o como uma string, e não como um número inteiro.
  • Não gere, descodifique ou infira significado a partir dele.
  • Utilize o seu próprio ID de utilizador do parceiro como agentUserId.
  • Persista a relação entre agentUserId, platformUserId e agentOrderNo.

Vincular utilizador

O Bind cria ou procura a relação entre um utilizador parceiro e um 6MM utilizador da plataforma. Chame-o quando um utilizador entrar pela primeira vez no fluxo de negociação ou antes do primeira transferência para 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);

Campos de solicitação:

CampoTipoObrigatórioDescrição
agentUserIdstringSimID de utilizador exclusivo do parceiro
usernamestringNãoNome de visualização do parceiro utilizado como apelido do utilizador da plataforma
extstringNãoCampo de extensão. A string JSON é recomendada

Campos de resposta:

CampoTipoDescrição
platformUserIdstring6MM ID de utilizador externo
bindStatusstringGeralmente BOUND
isSimulatedUserbooleanSe este for um utilizador simulado

Consultar conta do parceiro

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

Quando currency está ausente, o SDK utiliza defaultCurrency.

Consultar ativos do utilizador

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

Campos:

CampoTipoDescrição
walletBalancestringSaldo da carteira
frozenMarginstringMargem congelada
usedMarginstringMargem usada
availableBalancestringSaldo disponível
isolatedMarginstringMargem isolada
versionint64Versão do ativo
isSimulatedUserbooleanSe este for um utilizador simulado

Distinguir as três carteiras

carteiraFonte de equilíbriouso
Carteira de utilizador do próprio comercianteSistema de contabilidade próprio do comercianteO saldo disponível do utilizador no lado do comerciante
Financiamento da plataformaqueryUserAssets de fundingSegundos fundos de negociação e transferência mútua de financiamento/contrato
Contrato de plataformaO campo de ativos do contrato de queryUserAssetsMargem de contrato perpétuo e saldo transferível

queryAccount Consulte a conta de margem da plataforma do comerciante, e não a carteira do utilizador do comerciante. Esta interface não possui parâmetros environment e não pode ser consultada como um ativo de utilizador simulado.

Consulte as duas carteiras da plataforma de utilizadores simulados:

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

Interface: POST /v1/agent/query-user-assets. O financiamento é solicitado apenas quando includeFunding=true; a semântica de consulta do ativo do contrato original é utilizada por defeito.

campos de respostasignificado
walletBalance, availableBalance, frozenMargin, usedMargin, isolatedMarginValores relacionados com a carteira de contrato
funding.assetCodeAtualmente USDT
funding.availableAmount, heldAmount, totalAmountFinanciamento disponível, ocupado e valor total
funding.materializedSe a conta de financiamento foi materializada?
environmentEste campo é repetido quando o ambiente é passado explicitamente; pedidos antigos que omitem o ambiente não devolvem este campo.
isSimulatedUserClassificação de contas; não pode substituir a seleção do ambiente de negociação

Os valores são tratados como strings ou BigDecimal, e não float/double.

Fonte e guias relacionados