Ir para a navegação

Integração de negociação de segundos

Integração de negociação de segundos: Integração Agent Java SDK v0.3.0, exemplos, parâmetros e semântica de resposta.

Ver como Markdown

Este guia é dirigido a Agent Java SDK v0.3.0 e Java 8+.

Preparar a identidade, autenticação e fundos

A negociação em segundos utiliza a mesma ligação de utilizador e autenticação de entrada que a negociação perpétua. Utiliza saldos de financiamento; margem perpétua utiliza saldos contratuais. Configure o produto/modo de front-end e o ambiente de fundos de back-end separadamente.

Inicializar client utilizando Início rápido. Guarde o mapeamento do utilizador ligado e obtenha o ID do utilizador parceiro na sessão de back-end autenticada.

Redirecionar entrada

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;

O SDK chama POST /v1/agent/create-entry-url. Volte a colocar webUrl no frontend do parceiro e abra-o imediatamente. expireAt utiliza segundos Unix. Um bilhete tem uma vida curta e é único; obter outro após expiração ou consumo.

ProdutoExemplo de caminho de front-endCarteira
Para cima/para baixo/zh-CN/up-down?tradingMode=real ou demoFinanciamento
Alto/Baixo/zh-CN/high-low?tradingMode=real ou demoFinanciamento
Rede/zh-CN/grid-prediction?tradingMode=real ou demoFinanciamento
Futuros perpétuos/zh-CN/futures/BTCUSDT?tradingMode=real ou demoContrato

Utilize as rotas de front-end reais fornecidas por 6MM. redirectPath é um caminho relativo da plataforma que começa por /; returnUrl é um parceiro absoluto HTTP/HTTPS URL. Um ticket de entrada autentica o utilizador e não executa uma transferência.

Entrada incorporada

Utilize o fluxo partner-token e tokenProvider existente. Não existe um token específico para previsão. Crie o widget com o page e tradingMode pretendidos e utilize o seu channelId atual ao chamar o back-end do parceiro.

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;

O SDK chama POST /v1/agent/create-embed-token. symbol é opcional; não escolhe um produto de negociação de segundos. A seleção do produto pertence ao frontend. O token não seleciona um ambiente de fundos nem altera saldos.

Exemplo completo de front-end

Estas opções foram verificadas em relação ao tempo de execução público Trading Widget 1.8.0 no dia 10/10/2026. As versões do widget e do Agent Java SDK são independentes.

<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>
OpçãoValoresSignificado
pageup-down, high-low, grid-predictionPágina do produto.
tradingModereal, demoO predefinido é real; definido explicitamente.
baseUrlhttps://app.6mm.comOrigem do frontend da plataforma; o Widget constrói a sua incorporação URL.

Resposta de back-end do parceiro

/api/seconds/embed-token é um endpoint propriedade do parceiro, e não um novo 6MM API. Autentique a sessão, derive agentUserId do lado do servidor e chame createEmbedToken. Devolver esta estrutura de nível superior:

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

Utilize o expireAt real da resposta do agente, e não o valor ilustrativo. A resposta do agente não contém channelId; o seu backend ecoa o valor do pedido atual. Se o seu API agrupar os resultados em data, desembrulhe essa camada antes de voltar de tokenProvider. Rejeite falhas de negócio em vez de devolver um objeto de sucesso inválido.

Cada inicialização ou renovação obtém um novo token. Nunca armazene em cache e troque novamente o mesmo token ou coloque-o num URL. Reutilize o mesmo canal de instância durante a renovação; utilize o novo canal após recriar a instância.

Combine o ambiente dos fundos

Um frontend demo requer pedidos de fundos simulados com environment=SIMULATED. Um frontend real requer fundos de produção. Nem tradingMode nem a criação de tokens alteram o objetivo de fundos de back-end.

Ao trocar de utilizador ou de modo de negociação, destrua o widget antigo e crie uma nova instância. Consulte os saldos de financiamento, transfira fundos e confirme o resultado final através do endpoint de estado específico do financiamento antes de tratar o utilizador como financiado.

Ver Carteira de financiamento e Guia ambiental.

Fonte e guias relacionados