Vai alla navigazione

Java Avvio rapido

Java Quick Start: integrazione di Agent Java SDK v0.3.0, esempi, parametri e semantica della risposta.

Visualizza come Markdown

Questa guida è rivolta a Agent Java SDK v0.3.0, Java 8+ e agli appalti pubblici contrassegnati. Inizializza client utilizzando i passaggi di installazione e configurazione in questa pagina; eseguire gli esempi in un backend partner.

Prerequisiti di esempio

Gli snippet Java condividono queste importazioni. Inizializza client utilizzando Quick Start e ottieni platformUserId dall’associazione salvata. Gli ID utente/ordine di esempio devono essere sostituiti con i tuoi valori persistenti.

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

Coordinate Maven

Coordinate della sorgente attuale:

<dependency>
<groupId>com.sixmm.exchange.sdk</groupId>
<artifactId>agent</artifactId>
<version>0.3.0</version>
</dependency>

GitHub è un hosting di origine, non un repository di dipendenze Maven. Se il SDK non lo ha fatto stato ancora pubblicato in un repository Maven, installalo nel tuo Maven locale prima il deposito:

git clone https://github.com/6mm-com/agent-java-sdk.git
cd agent-java-sdk
git checkout v0.3.0
mvn install

Dopo l’installazione locale, il tuo progetto aziendale può essere risolto com.sixmm.exchange.sdk:agent:0.3.0 dal repository Maven locale.

Per le build di team e gli ambienti di test, pubblica il SDK in un repository Maven come Nexus, Artifactory, pacchetti GitHub, Maven Central o utilizzare GitHub servizio di build basato come JitPack.

Per un’integrazione esistente, vedere il SDK guida all’aggiornamento. Utilizza il tag sorgente stabile v0.3.0 per installare SDK e leggere la documentazione di integrazione corrispondente.

Inizializzazione del cliente

Semplice Java

import com.sixmm.agent.AgentClient;
import com.sixmm.agent.AgentClientConfig;
AgentClient client = new AgentClient(AgentClientConfig.builder()
.baseUrl("https://agent-api.6mm.com")
.agentCode("AGENT001")
.apiSecret("your-api-secret")
.defaultCurrency("USDT")
.build());

Stivale primaverile

import com.sixmm.agent.AgentClient;
import com.sixmm.agent.AgentClientConfig;
import java.time.Duration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AgentSdkConfig {
@Bean
public AgentClient agentClient(AgentSdkProperties props) {
return new AgentClient(AgentClientConfig.builder()
.baseUrl(props.getBaseUrl())
.agentCode(props.getAgentCode())
.apiSecret(props.getApiSecret())
.defaultCurrency("USDT")
.timeout(Duration.ofSeconds(10))
.build());
}
}

Proprietà dell’applicazione di esempio:

agent.sdk.base-url=https://agent-api.6mm.com
agent.sdk.agent-code=AGENT001
agent.sdk.api-secret=${AGENT_API_SECRET}

Associa utente

Bind crea o recupera la relazione tra un utente partner e un 6MM utente della piattaforma. Chiamalo quando un utente entra per la prima volta nel flusso di trading o prima del primo trasferimento in 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);

Campi richiesta:

CampoTipoNecessarioDescrizione
agentUserIdstringSÌID utente univoco lato partner
usernamestringNONome visualizzato lato partner utilizzato come nickname dell’utente della piattaforma
extstringNOCampo estensione. Si consiglia la stringa JSON

Campi di risposta:

CampoTipoDescrizione
platformUserIdstring6MM ID utente esterno
bindStatusstringDi solito BOUND
isSimulatedUserbooleanIndica se si tratta di un utente simulato

Flussi aziendali consigliati

Primo ingresso commerciale

1. User logs in to the partner site.
2. Partner backend calls bind with agentUserId.
3. Partner stores the agentUserId and platformUserId relationship.
4. User clicks the trading entry.
5. Redirect mode: call createEntryUrl and open webUrl in the browser.
6. Embed mode: Trading Widget calls tokenProvider, and partner backend calls createEmbedToken.

Deposita su 6MM

1. Partner creates a unique agentOrderNo.
2. Partner calls transfer(Direction.IN).
3. If SUCCESS is returned, mark the local order as successful.
4. If PROCESSING is returned, wait for webhook or poll queryOrder.
5. If FAILED is returned or AgentApiException is thrown, handle it as failed.

Ritirarsi di nuovo al partner

1. Partner creates a unique agentOrderNo.
2. Fixed amount withdraw: call transfer(Direction.OUT).
3. Full withdraw: call transferAllOut.
4. Confirm the final result by orderStatus, webhook, or queryOrder.

Fonte e guide correlate

Gestione degli errori

SDK le eccezioni sono suddivise in due categorie:

EccezioneScenarioGestione suggerita
AgentApiExceptionLo stato HTTP non è 2xx o la risposta dell’agente code != 0Leggi getHttpStatus(), getCode() e getResponseBody() e trattalo come un fallimento aziendale/API
AgentSdkExceptionErrore di rete, serializzazione, configurazione o firmaRegistratelo e trattatelo come un’eccezione di sistema

Esempio:

import com.sixmm.agent.AgentApiException;
import com.sixmm.agent.AgentSdkException;
try {
TransferResponse resp = client.transfer(TransferRequest.fixed(
"AGT-ORDER-1001", "agent-user-001", Direction.IN, "USDT", "10.00"));
// Update the local order according to resp.orderStatus.
} catch (AgentApiException e) {
// Business rejection or HTTP error.
log.warn("6mm agent api rejected request, httpStatus={}, code={}, body={}",
e.getHttpStatus(), e.getCode(), e.getResponseBody());
} catch (AgentSdkException e) {
// Local SDK error or network error.
log.error("6mm agent sdk request failed", e);
}

Ricevi Webhooks

Tutti e quattro i tipi di eventi condividono la richiamata del commerciante configurata URL; invio da parte dell’ente event. Verifica i byte ricevuti in origine, quindi controlla la finestra temporale, il commerciante e l’ambiente. Restituisci HTTP 2xx solo dopo aver salvato i dati aziendali e i record di deduplicazione riusciti o dopo aver salvato in modo affidabile un’attività persistente.

Eventi e avvisi di liquidazione · Verifica della firma, risposte e tentativi