Vai alla navigazione

Integrazione del trading dei secondi

Integrazione del trading dei secondi: Agent Java SDK Integrazione v0.3.0, esempi, parametri e semantica della risposta.

Visualizza come Markdown

Questa guida è rivolta a Agent Java SDK v0.3.0 e Java 8+.

Preparare identità, autenticazione e fondi

Il trading dei secondi utilizza la stessa associazione dell’utente e l’autenticazione dell’ingresso del trading perpetuo. Utilizza i saldi di finanziamento; il margine perpetuo utilizza i saldi contrattuali. Configura il prodotto/modalità frontend e l’ambiente dei fondi backend separatamente.

Inizializza client utilizzando Avvio rapido. Salvare la mappatura dell’utente associato e ottenere l’ID utente partner dalla sessione di backend autenticata.

Reindirizzare la voce

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;

Il SDK chiama POST /v1/agent/create-entry-url. Ritorna webUrl al frontend del partner e aprilo immediatamente. expireAt utilizza Unix secondi. Un biglietto è di breve durata e una tantum; ottenerne un altro dopo la scadenza o il consumo.

ProdottoEsempio di percorso frontendPortafoglio
Su/Giù/zh-CN/up-down?tradingMode=real o demoFinanziamento
Alto/Basso/zh-CN/high-low?tradingMode=real o demoFinanziamento
Griglia/zh-CN/grid-prediction?tradingMode=real o demoFinanziamento
Futuri perpetui/zh-CN/futures/BTCUSDT?tradingMode=real o demoContrarre

Utilizza i percorsi frontend effettivi forniti da 6MM. redirectPath è un percorso relativo della piattaforma che inizia con /; returnUrl è un partner assoluto HTTP/HTTPS URL. Un biglietto d’ingresso autentica l’utente e non esegue un trasferimento.

Voce incorporata

Utilizza il flusso esistente partner-token e tokenProvider esistente. Non esiste un token specifico per la previsione. Crea il widget con il page e il tradingMode desiderati e utilizza il suo channelId corrente quando chiami il backend del partner.

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;

Il SDK chiama POST /v1/agent/create-embed-token. symbol è facoltativo; non sceglie un prodotto di second trading. La selezione del prodotto appartiene al frontend. Il token non seleziona un ambiente di fondi né modifica i saldi.

Esempio di frontend completo

Queste opzioni sono state verificate rispetto al runtime pubblico Trading Widget 1.8.0 il 10-10-2026. Le versioni widget e Agent Java SDK sono indipendenti.

<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>
OpzioneValoriSenso
pageup-down, high-low, grid-predictionPagina del prodotto.
tradingModereal, demoIl valore predefinito è real; impostato esplicitamente.
baseUrlhttps://app.6mm.comOrigine del frontend della piattaforma; il widget crea il suo incorporamento URL.

Risposta del backend del partner

/api/seconds/embed-token è un endpoint di proprietà del partner, non un nuovo 6MM API. Autenticare la sessione, derivare agentUserId lato server e chiamare createEmbedToken. Restituisci questa struttura di primo livello:

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

Utilizza il expireAt effettivo della risposta dell’agente, non il valore illustrativo. La risposta dell’agente non contiene channelId; il tuo backend fa eco al valore della richiesta corrente. Se il tuo API avvolge i risultati in data, scarta quel livello prima di tornare da tokenProvider. Rifiutare i fallimenti aziendali anziché restituire un oggetto di successo non valido.

Ogni inizializzazione o rinnovo ottiene un nuovo token. Non memorizzare mai più nella cache e non scambiare mai più lo stesso token, né inserirlo in un URL. Riutilizzare lo stesso canale dell’istanza durante il rinnovo; utilizzare il nuovo canale dopo aver ricreato l’istanza.

Adattarsi all’ambiente dei fondi

Un frontend demo richiede richieste di fondi simulate con environment=SIMULATED. Un frontend real richiede fondi di produzione. Né tradingMode né la creazione del token modificano l’obiettivo dei fondi di backend.

Quando cambi utente o modalità di scambio, distruggi il vecchio widget e crea una nuova istanza. Interroga i saldi dei finanziamenti, trasferisci i fondi e conferma il risultato finale tramite l’endpoint dello stato specifico del finanziamento prima di considerare l’utente come finanziato.

Vedere Portafoglio di finanziamento E Guida all’ambiente.

Fonte e guide correlate