Skip to navigation

Інтеграція секундної торгівлі

Інтеграція секундної торгівлі: Інтеграція Agent Java SDK v0.3.0, приклади, параметри та семантика відповіді.

View as Markdown

Цей посібник призначений для Agent Java SDK v0.3.0 і Java 8+.

Підготуйте посвідчення особи, автентифікацію та кошти

Секундна торгівля використовує ту саму прив’язку користувача та автентифікацію входу, що й безстрокова торгівля. Він використовує залишки фінансування; постійна маржа використовує залишки за контрактом. Налаштуйте зовнішній продукт/режим і середовище внутрішніх фондів окремо.

Ініціалізуйте client за допомогою Швидкий старт. Збережіть зіставлення пов’язаного користувача та отримайте ідентифікатор користувача-партнера з автентифікованого серверного сеансу.

Перенаправити запис

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;

SDK викликає POST /v1/agent/create-entry-url. Поверніть webUrl до інтерфейсу партнера та негайно відкрийте його. expireAt використовує секунди Unix. Квиток короткостроковий і одноразовий; отримати інший після закінчення терміну придатності або споживання.

ПродуктПриклад зовнішнього шляхуГаманець
Вгору/Вниз/zh-CN/up-down?tradingMode=real або demoФінансування
Високий/Низький/zh-CN/high-low?tradingMode=real або demoФінансування
Сітка/zh-CN/grid-prediction?tradingMode=real або demoФінансування
Вічні ф’ючерси/zh-CN/futures/BTCUSDT?tradingMode=real або demoДоговір

Використовуйте фактичні маршрути інтерфейсу, надані 6MM. redirectPath — відносний шлях до платформи, що починається з /; returnUrl є абсолютним партнером HTTP/HTTPS URL. Вхідний квиток аутентифікує користувача і не виконує переказ.

Вбудований запис

Використовуйте існуючий потік partner-token і tokenProvider. Немає спеціального токена для передбачення. Створіть віджет із потрібними page і tradingMode і використовуйте його поточний channelId під час виклику серверної частини партнера.

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;

SDK викликає POST /v1/agent/create-embed-token. symbol необов’язковий; він не обирає продукт, що торгує секундами. Вибір продукту належить інтерфейсу. Токен не вибирає середовище коштів і не змінює баланси.

Повний приклад інтерфейсу

Ці параметри було перевірено на загальнодоступному середовищі виконання Trading Widget 1.8.0 10.10.2026. Версії віджетів і Agent Java SDK незалежні.

<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>
ВаріантЦінностіЗначення
pageup-down, high-low, grid-predictionСторінка товару.
tradingModereal, demoЗа замовчуванням real; встановити явно.
baseUrlhttps://app.6mm.comПоходження інтерфейсу платформи; віджет будує свій вбудований URL.

Відповідь партнера

/api/seconds/embed-token — це кінцева точка, що належить партнеру, а не нова 6MM API. Автентифікуйте сеанс, виведіть agentUserId на стороні сервера та викличте createEmbedToken. Повернути цю структуру верхнього рівня:

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

Використовуйте фактичне expireAt відповіді Агента, а не ілюстративне значення. Відповідь агента не містить channelId; ваш сервер повторює значення поточного запиту. Якщо ваші API обертання призводять до data, розгорніть цей шар перед поверненням із tokenProvider. Відхиляйте бізнес-провали, а не повертайте недійсний об’єкт успіху.

Кожна ініціалізація або оновлення отримує новий маркер. Ніколи не кешуйте та не обмінюйте один і той самий токен знову або розміщуйте його в URL. Повторне використання того самого каналу екземпляра під час оновлення; використовувати новий канал після повторного створення екземпляра.

Відповідність середовищу коштів

Для інтерфейсу demo потрібні імітовані запити на кошти за допомогою environment=SIMULATED. Інтерфейс real вимагає коштів для виробництва. Ані tradingMode, ані створення маркера не змінюють цільове значення резервних коштів.

Перемикаючи користувачів або режим торгівлі, знищуйте старий віджет і створюйте новий екземпляр. Запитуйте баланс фінансування, переказуйте кошти та підтверджуйте остаточний результат через кінцеву точку статусу фінансування, перш ніж розглядати користувача як фінансованого.

див Гаманець для фінансування і Керівництво по навколишньому середовищу.

Джерело та відповідні посібники