跳到导航

创建 Embed Token

创建 Embed Token: Agent Java SDK v0.3.0 接入、示例、参数及响应说明。

以 Markdown 格式查看

本文对应 Agent Java SDK v0.3.0、Java 8+ 与该标签的公开契约。示例在合作方后端运行;先按快速开始初始化 client。

示例前提

Java 示例共用以下导入。按快速开始初始化 client,从已保存的绑定取得 platformUserId。示例用户和订单 ID 必须替换为实际持久化值。

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

内嵌交易 token

内嵌交易适用于 Trading Widget SDK 的 partner-token + tokenProvider 模式。浏览器端调用代理商自己的后端,代理商后端再调用 Java SDK 创建 embedToken。

import com.sixmm.agent.model.CreateEmbedTokenRequest;
import com.sixmm.agent.model.CreateEmbedTokenResponse;
CreateEmbedTokenResponse resp = client.createEmbedToken(
CreateEmbedTokenRequest.of("agent-user-001", "tw_abc123")
.withSymbol("ETHUSDT"));
System.out.println(resp.embedToken);
System.out.println(resp.expireAt);

对接要求:

  • channelId 必须使用 Trading Widget SDK 传给代理商前端的值。
  • symbol 可选,可传当前 iframe 初始交易对作为上下文;不是 token 的交易对权限限制。
  • embedToken 是短期一次性 token,不能放到 URL query 中。
  • 代理商前端不能持有 apiSecret,只能请求代理商后端。
  • expireAt 是 Unix 秒级时间戳,不是 TTL。

代理商后端接口示例:

@PostMapping("/api/trading/embed-token")
public EmbedTokenView createEmbedToken(@RequestBody EmbedTokenRequest request,
PartnerSession session) {
String agentUserId = session.getAgentUserId();
CreateEmbedTokenResponse resp = agentClient.createEmbedToken(
CreateEmbedTokenRequest.of(agentUserId, request.getChannelId())
.withSymbol(request.getSymbol()));
return new EmbedTokenView(resp.embedToken, resp.expireAt, request.getChannelId());
}

合作方接口约定

校验合作方登录会话,并在后端取得 agentUserId。接收当前 Widget 的 channelId,返回顶层 embedToken、expireAt(Unix 秒)及原样的 channelId。Agent 响应没有 channelId,由合作方后端带回。初始化和续签每次请求新 token,不能重复使用。签发 token 不划转资金,也不选择钱包环境。

完整前后端流程见秒合约接入。

来源与相关指南