Zur Navigation springen

Sekundenhandelsintegration

Sekundenhandelsintegration: 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 und Java 8+.

Bereiten Sie Identität, Authentifizierung und Geld vor

Beim Seconds-Trading wird die gleiche Benutzerbindung und Zugangsauthentifizierung verwendet wie beim Perpetual-Trading. Es werden Finanzierungssalden verwendet; Perpetual Margin verwendet Vertragssalden. Konfigurieren Sie das Frontend-Produkt/den Frontend-Modus und die Backend-Fondsumgebung separat.

Initialisieren Sie client mit Schnellstart. Speichern Sie die gebundene Benutzerzuordnung und rufen Sie die Partnerbenutzer-ID aus der authentifizierten Backend-Sitzung ab.

Eintrag umleiten

import com.sixmm.agent.model.CreateEntryUrlRequest;
import com.sixmm.agent.model.CreateEntryUrlResponse;
CreateEntryUrlResponse entry = client.createEntryUrl(
CreateEntryUrlRequest.of("merchant-user-001")
.withRedirectPath("/zh-CN/up-down?tradingMode=demo")
.withReturnUrl("https://merchant.example/markets"));
String webUrl = entry.webUrl;

Der SDK ruft POST /v1/agent/create-entry-url auf. Geben Sie webUrl zum Partner-Frontend zurück und öffnen Sie es sofort. expireAt verwendet Unix-Sekunden. Ein Ticket ist kurzlebig und einmalig; Nach Ablauf oder Verbrauch ein anderes erhalten.

ProduktBeispiel-Frontend-PfadGeldbörse
Auf/Ab/zh-CN/up-down?tradingMode=real oder demoFinanzierung
Hoch/Niedrig/zh-CN/high-low?tradingMode=real oder demoFinanzierung
Netz/zh-CN/grid-prediction?tradingMode=real oder demoFinanzierung
Ewige Zukünfte/zh-CN/futures/BTCUSDT?tradingMode=real oder demoVertrag

Verwenden Sie die tatsächlichen Frontend-Routen, die von 6MM bereitgestellt werden. redirectPath ist ein relativer Plattformpfad, der mit / beginnt; returnUrl ist ein absoluter Partner HTTP/HTTPS URL. Eine Eintrittskarte authentifiziert den Benutzer und führt keine Übertragung durch.

Eingebetteter Eintrag

Verwenden Sie den vorhandenen Fluss partner-token und tokenProvider. Es gibt kein vorhersagespezifisches Token. Erstellen Sie das Widget mit dem gewünschten page und tradingMode und verwenden Sie dessen aktuelles channelId, wenn Sie das Partner-Backend aufrufen.

import com.sixmm.agent.model.CreateEmbedTokenRequest;
import com.sixmm.agent.model.CreateEmbedTokenResponse;
String channelId = "tw_example_channel";
CreateEmbedTokenResponse auth = client.createEmbedToken(
CreateEmbedTokenRequest.of("merchant-user-001", channelId));
String embedToken = auth.embedToken;
long expireAt = auth.expireAt;

Der SDK ruft POST /v1/agent/create-embed-token auf. symbol ist optional; Es wird kein Second-Trading-Produkt ausgewählt. Die Produktauswahl gehört zum Frontend. Der Token wählt keine Zahlungsumgebung aus und ändert auch nicht den Kontostand.

Vollständiges Frontend-Beispiel

Diese Optionen wurden am 10.10.2026 anhand der öffentlichen Trading Widget 1.8.0-Laufzeit überprüft. Widget- und Agent Java SDK-Versionen sind unabhängig.

<div id="seconds-widget" style="width: 100%; height: 720px"></div>
<script src="https://app.6mm.com/sdk/trading-widget/v1/index.js"></script>
<script>
const page = 'up-down';
const tradingMode = 'demo';
const capabilities = TradingWidget.capabilities;
if (!capabilities?.partnerToken ||
!capabilities.pages?.includes(page) ||
!capabilities.tradingModes?.includes(tradingMode)) {
throw new Error('Trading Widget SDK does not support the requested page or mode');
}
const widget = TradingWidget.create('#seconds-widget', {
baseUrl: 'https://app.6mm.com',
page,
tradingMode,
theme: 'dark',
locale: 'zh-CN',
auth: {
mode: 'partner-token',
tokenProvider: async ({ channelId }) => {
// Partner-owned endpoint; derive the user from the backend session.
const response = await fetch('/api/seconds/embed-token', {
method: 'POST',
credentials: 'same-origin',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ channelId }),
});
if (!response.ok) {
throw new Error('Failed to request embed token');
}
const result = await response.json();
if (typeof result.embedToken !== 'string' || !result.embedToken.trim() ||
!Number.isFinite(result.expireAt) || result.channelId !== channelId) {
throw new Error('Invalid embed token response');
}
return {
embedToken: result.embedToken,
expireAt: result.expireAt,
channelId: result.channelId,
};
},
},
onReady() {
console.log('Trading widget ready');
},
onError(error) {
console.error('Trading widget error', error.code);
},
});
window.addEventListener('beforeunload', () => widget.destroy());
</script>
OptionWerteBedeutung
pageup-down, high-low, grid-predictionProduktseite.
tradingModereal, demoStandardmäßig ist real; explizit festlegen.
baseUrlhttps://app.6mm.comUrsprung des Plattform-Frontends; Das Widget erstellt seine Einbettung URL.

Antwort des Partner-Backends

/api/seconds/embed-token ist ein Partner-eigener Endpunkt, kein neuer 6MM API. Authentifizieren Sie die Sitzung, leiten Sie agentUserId serverseitig ab und rufen Sie createEmbedToken auf. Geben Sie diese Struktur der obersten Ebene zurück:

{
"embedToken": "short-one-time-token",
"expireAt": 1791590700,
"channelId": "tw_xxx"
}

Verwenden Sie den tatsächlichen expireAt der Agentenantwort, nicht den illustrativen Wert. Die Antwort des Agenten enthält nicht channelId; Ihr Backend gibt den Wert der aktuellen Anfrage wieder. Wenn Ihr API-Umbruch zu data führt, entpacken Sie diese Ebene, bevor Sie von tokenProvider zurückkehren. Lehnen Sie Geschäftsausfälle ab, anstatt ein ungültiges Erfolgsobjekt zurückzugeben.

Jede Initialisierung oder Erneuerung erhält einen neuen Token. Niemals denselben Token zwischenspeichern und erneut austauschen oder in einem URL ablegen. Den gleichen Instanzkanal während der Erneuerung wiederverwenden; Verwenden Sie den neuen Kanal, nachdem Sie die Instanz neu erstellt haben.

Passen Sie die Fondsumgebung an

Ein demo-Frontend erfordert simulierte Geldanfragen mit environment=SIMULATED. Ein real-Frontend erfordert Produktionsmittel. Weder tradingMode noch die Token-Erstellung ändern das Back-End-Fondsziel.

Wenn Sie den Benutzer oder den Handelsmodus wechseln, zerstören Sie das alte Widget und erstellen Sie eine neue Instanz. Fragen Sie Finanzierungssalden ab, übertragen Sie Gelder und bestätigen Sie das Endergebnis über den finanzierungsspezifischen Statusendpunkt, bevor Sie den Benutzer als finanziert behandeln.

Sehen Funding-Wallet Und Umweltführer.

Quelle und zugehörige Leitfäden