Passer à la navigation

Utilisateurs et actifs

Utilisateurs et actifs: Intégration Agent Java SDK v0.3.0, exemples, paramètres et sémantique de réponse.

Afficher en Markdown

Ce guide cible Agent Java SDK v0.3.0, Java 8+ et le contrat public étiqueté. Exemples exécutés dans un backend partenaire après l’initialisation de client dans Démarrage rapide.

Exemples de prérequis

Les extraits de code Java partagent ces importations. Initialisez client à l’aide de Quick Start et obtenez platformUserId à partir de la liaison enregistrée. Les exemples d’ID utilisateur/commande doivent être remplacés par vos propres valeurs persistantes.

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

Règles d’identification de l’utilisateur

platformUserId est l’ID utilisateur externe 6MM. Il s’agit actuellement d’un nombre numérique à 10 chiffres chaîne, par exemple :

1188041528

Règles:

  • Stockez-le sous forme de chaîne et non sous forme d’entier.
  • Ne pas générer, décoder ou en déduire du sens.
  • Utilisez votre propre ID utilisateur côté partenaire comme agentUserId.
  • Conserver la relation entre agentUserId, platformUserId et agentOrderNo.

Lier l’utilisateur

Bind crée ou récupère la relation entre un utilisateur partenaire et un 6MM utilisateur de la plateforme. Appelez-le lorsqu’un utilisateur entre pour la première fois dans le flux de trading ou avant le premier transfert dans 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);

Champs de requête :

ChampTaperRequisDescription
agentUserIdstringOuiID utilisateur unique côté partenaire
usernamestringNonNom d’affichage côté partenaire utilisé comme surnom de l’utilisateur de la plateforme
extstringNonChamp d’extension. La chaîne JSON est recommandée

Champs de réponse :

ChampTaperDescription
platformUserIdstring6MM ID utilisateur externe
bindStatusstringHabituellement BOUND
isSimulatedUserbooleanS’il s’agit d’un utilisateur simulé

Compte partenaire de requête

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

Lorsque currency est absent, le SDK utilise defaultCurrency.

Interroger les ressources utilisateur

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

Champs :

ChampTaperDescription
walletBalancestringSolde du portefeuille
frozenMarginstringMarge gelée
usedMarginstringMarge utilisée
availableBalancestringSolde disponible
isolatedMarginstringMarge isolée
versionint64Version de l’actif
isSimulatedUserbooleanS’il s’agit d’un utilisateur simulé

Distinguer les trois portefeuilles

portefeuilleSource du soldeutiliser
Le propre portefeuille utilisateur du commerçantLe propre système comptable du commerçantLe solde disponible de l’utilisateur côté commerçant
Financement de la plateformequeryUserAssets sur fundingFonds de trading de secondes et transfert mutuel de financement/contrat
Contrat de plateformeLe champ d’actif du contrat de queryUserAssetsMarge contractuelle perpétuelle et solde transférable

queryAccount Interrogez le compte sur marge de la plateforme marchande, et non le portefeuille de l’utilisateur marchand. Cette interface n’a pas de paramètres environment et ne peut pas être interrogée en tant qu’actif utilisateur simulé.

Interrogez les deux portefeuilles de plateforme des utilisateurs simulés :

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

Interface : POST /v1/agent/query-user-assets. Le financement est demandé uniquement lorsque includeFunding=true ; la sémantique originale de requête d’actif de contrat est utilisée par défaut.

champs de réponsesignification
walletBalance, availableBalance, frozenMargin, usedMargin, isolatedMarginMontants liés au portefeuille de contrats
funding.assetCodeActuellement USDT
funding.availableAmount, heldAmount, totalAmountFinancement disponible, occupé et montant total
funding.materializedLe compte de financement a-t-il été matérialisé ?
environmentCe champ est repris lorsque l’environnement est transmis explicitement ; les anciennes requêtes qui omettent l’environnement ne renvoient pas ce champ.
isSimulatedUserClassement des comptes ; ne peut pas remplacer la sélection de l’environnement commercial

Les montants sont traités sous forme de chaînes ou de BigDecimal, et non de float/double.

Source et guides associés