集成效果展示
开始集成
1. 服务器端生成加载SDK所需参数
1.1 联系Legend 获取安全参数
1.2 生成电子签名 signature
请根据Legend 提供的加密算法代码,每次调用SDK前,计算一个电子签名signature,传递给前端。
1.3 生成用户UID
通过特定算法将交易所用户表的User ID(主键) 加密后,提供给Legend,作为在OTC平台的唯一用户标识。必须是每个用户唯一、不重复。此ID将被传递给嵌入的KYC和交易页面。
该ID长度最好不超过20字符。
交易所可以自行决定使用不可逆加密算法。
例如
encrypted_user_id = sha1(user_id+salt)
此ID不可以明文传递给JSSDK!
请使用LG提供的加密算法代码,再次加密,作为APP_UID传递给JSSDK。
Bd1ZZ5VO98z8Gf/z39m6RjSxhdOV9nW+8+6j9j+ZV2OOfXWwyChSJ3+xzRZulDyi:OTg3NjVmZWRjYmE0MzIxMA==以下示例:
假设交易所用户表结构如下:
| user_id | user_name |
|---|---|
| 1 | James Bond |
| 2 | Ethan Hunt |
假设我们要向LG传递第1个用户James Bond的信息。
第1步,我们对user_id(用户表主键)进行不可逆加密,这样可以确保每个用户的UID是唯一的。
UID = sha1(user_id+salt) (此处用salt来增加安全性)
salt = "sfdsfsXXDD23901" (random string)
UID = sha1(1+sfdsfsXXDD23901)
=sha1("1sfdsfsXXDD23901")
="42fa5da9de51f2caa39217c4b8bece42ff6029cf"第2步,我们用LG的双向加解密算法对UID再次进行加密,得到二次加密的UID,然后赋值给APP_UID,传递给前端页面。
LG提供了示例源代码。
String uid = "42fa5da9de51f2caa39217c4b8bece42ff6029cf";
System.out.println("Original UID: ");
System.out.println(uid);
String uidEncrypted = TBClient.encryptUID(uid);
System.out.println("Encrypted UID:");
System.out.println(uidEncrypted);
//系统输出
//Bd1ZZ5VO98z8Gf/z39m6RjSxhdOV9nW+8+6j9j+ZV2OOfXWwyChSJ3+xzRZulDyi:OTg3NjVmZWRjYmE0MzIxMA==
//此处计算结果为示例,并不准确
APP_UID= "Bd1ZZ5VO98z8Gf/z39m6RjSxhdOV9nW+8+6j9j+ZV2OOfXWwyChSJ3+xzRZulDyi:OTg3NjVmZWRjYmE0MzIxMA=="完成以上操作后,前端页面中存在当前用户的唯一ID,可以用于确定当前用户,但又不用担心被破解。黑客无法还原真实的UID,更无法得到交易所用户表中最原始的user_id。
2. 加载SDK
Legend提供交易系统需要的所有KYC和交易界面,所有复杂界面仅需您通过在前端嵌入几行代码即可实现。
Legend SDK 是一个由 Vue, Vue Router 和 Ant Design Vue 开发的应用组件。我们使用 Web Components 技术来实现 SDK。 SDK 会在不支持 Web Components 特性的平台中降级为普通的 HTML 元素。
从外部导入 Vue
<script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
<script src="https://content.legendtrading.com/jssdk-v3/legend-trade.min.js"></script>
<!-- use in plain HTML, or in any other framework -->
<legend-trade
signature="o5lnLOd/HxNMXWz2zZEKJvv+wiTxe3FjHFmUyskR4IY="
timestamp="1587420765"
app-id="Bitrue"
app-key="xxxxxxxx"
app-url="https://www.bitrue.com/"
app-uid="sdfSEEC293Bd1ZZ5VO98z8Gf/z39m6RjSxhdOV9nW+8+6j9j+ZV2OOfXWwyChSJ3+xzRZulDyi:OTg3NjVmZWRjYmE0MzIxMA=="
app-email="[email protected]"
></legend-trade>从 SDK 导入 Vue
S<script src="https://content.legendtrading.com/jssdk-v3/legend-trade-full.min.js"></script>
<!-- use in plain HTML, or in any other framework -->
<legend-trade-full
signature="o5lnLOd/HxNMXWz2zZEKJvv+wiTxe3FjHFmUyskR4IY="
timestamp="1587420765"
app-id="Bitrue"
app-key="xxxxxxxx"
app-url="https://www.bitrue.com/"
app-uid="sdfSEEC293Bd1ZZ5VO98z8Gf/z39m6RjSxhdOV9nW+8+6j9j+ZV2OOfXWwyChSJ3+xzRZulDyi:OTg3NjVmZWRjYmE0MzIxMA=="
app-email="[email protected]"
></legend-trade-full>点击查看SDK 更多参数
