Zur Navigation springen

Java Schnellstart

Java Schnellstart: Agent Java SDK v0.3.0-Integration, Beispiele, Parameter und Antwortsemantik.

Als Markdown anzeigen

Dieser Leitfaden richtet sich an Agent Java SDK v0.3.0, Java 8+ und den getaggten öffentlichen Auftrag. Initialisieren Sie client mithilfe der Installations- und Konfigurationsschritte auf dieser Seite. Führen Sie die Beispiele in einem Partner-Backend aus.

Beispielvoraussetzungen

Die Java-Snippets teilen diese Importe. Initialisieren Sie client mit Quick Start und rufen Sie platformUserId aus der gespeicherten Bindung ab. Beispiel-Benutzer-/Bestell-IDs müssen durch Ihre eigenen persistenten Werte ersetzt werden.

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

Maven-Koordinaten

Aktuelle Quellkoordinaten:

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

GitHub ist Quellhosting, kein Maven-Abhängigkeits-Repository. Wenn der SDK nicht vorhanden ist bereits in einem Maven-Repository veröffentlicht wurde, installieren Sie es in Ihrem lokalen Maven Repository zuerst:

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

Nach der lokalen Installation kann Ihr Geschäftsprojekt gelöst werden com.sixmm.exchange.sdk:agent:0.3.0 aus dem lokalen Maven-Repository.

Für Team-Builds und Testumgebungen veröffentlichen Sie SDK in einem Maven-Repository wie Nexus, Artifactory, GitHub Packages, Maven Central, oder verwenden Sie einen GitHub basierten Build-Service wie JitPack.

Informationen zu einer vorhandenen Integration finden Sie im SDK Upgrade-Anleitung. Verwenden Sie das stabile Quell-Tag v0.3.0, um SDK zu installieren und die entsprechende Integrationsdokumentation zu lesen.

Client-Initialisierung

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

Frühlingsstiefel

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

Beispielhafte Anwendungseigenschaften:

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

Benutzer binden

Bind erstellt oder ruft die Beziehung zwischen einem Partnerbenutzer und einem 6MM ab. Plattformbenutzer. Rufen Sie es auf, wenn ein Benutzer zum ersten Mal in den Handelsfluss eintritt oder bevor Erster Transfer nach 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);

Anfragefelder:

FeldTypErforderlichBeschreibung
agentUserIdstringJaEindeutige Partner-Benutzer-ID
usernamestringNEINPartnerseitiger Anzeigename, der als Spitzname des Plattformbenutzers verwendet wird
extstringNEINErweiterungsfeld. Die Zeichenfolge JSON wird empfohlen

Antwortfelder:

FeldTypBeschreibung
platformUserIdstring6MM externe Benutzer-ID
bindStatusstringNormalerweise BOUND
isSimulatedUserbooleanOb es sich um einen simulierten Benutzer handelt

Empfohlene Geschäftsabläufe

Erster Handelseintrag

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.

Einzahlung in 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.

Zurückziehen zum 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.

Quelle und zugehörige Leitfäden

Fehlerbehandlung

SDK Ausnahmen sind in zwei Kategorien unterteilt:

AusnahmeSzenarioEmpfohlene Handhabung
AgentApiExceptionHTTP Status ist nicht 2xx oder Agentenantwort code != 0Lesen Sie getHttpStatus(), getCode() und getResponseBody() und behandeln Sie es als geschäftlichen/API Misserfolg
AgentSdkExceptionNetzwerk-, Serialisierungs-, Konfigurations- oder SignaturfehlerProtokollieren Sie es und behandeln Sie es als Systemausnahme

Beispiel:

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

Erhalten Sie Webhooks

Alle vier Ereignistypen teilen sich den konfigurierten Händlerrückruf URL; Versand durch die Stelle event. Überprüfen Sie die ursprünglich empfangenen Bytes und überprüfen Sie dann das Zeitfenster, den Händler und die Umgebung. Geben Sie HTTP 2xx nur zurück, nachdem Geschäftsdaten und erfolgreiche Deduplizierungsdatensätze festgeschrieben oder eine dauerhafte Aufgabe zuverlässig gespeichert wurden.

Ereignisse und Liquidationswarnungen · Signaturüberprüfung, Antworten und Wiederholungsversuche