调用例子
# 对接步骤
## 步骤一
**例子下载地址:http://ssdun.cn/home/API/AutoSsdunV4.4.zip**
1. 解压压缩包
2. 将ssdun.js文件复制到 **脚本项目** 内根目录
## 步骤二
打开Ssdun.js 根据备注填写参数值
```json
const SsdunConfig = {
userKey: "",//平台(控制台)->复制UserKey
appSecret: 0 ,////平台(软件列表)->Id
aesKey: "",//平台(软件列表)->KEY文件 加密模式为AES没有则留空
rsaPath: "",//平台(软件列表)->KEY文件 加密模式为RSA没有则留空
encryptionMode: 0,//加密模式选择 0 无加密,1 AES加密 2 RSA加密
deduct: 0,//解绑扣除天数 默认值
debug: true,//是否开启调试模式
verifyHeartbeatFirst: false,//是否开启有上次心跳先退出在 验证
returnData: false,//是否返回数据自己处理
cardKey: "card",//验证卡密默认读取项 ui保存的键值得键
crackDifficulty: 3,//加密等级 3 发送加密+获取本地时间 2发送加密+获取网络时间 1明文发送 +获取网络时间
};
```
**温馨小提示**:要是软件有选择加密模式
1. AES模式 需要把 平台的Key 填到Ssdun.js文件内 变量:SsdunConfign内得aesKey:"XXXXXX",并且encryptionMode:0 改为1
2. RSA模式 需要把 下载下来的Key文件放到 **脚本项目根目录**然后在Ssdun.js文件内 变量:SsdunConfign内得rsaPath:"XXXXXX.pem",并且encryptionMode:0 改为2
## 步骤三
根据实际情况调用函数
### 卡密验证(有心跳版本)
```js
Ssdun = require("./ssdun.js");
Ssdun.setCard("内置卡密");//设置卡密
Ssdun.一键运行卡密验证(true, 3);
//运行成功后可通过以下命令获取卡密信息
let data = Ssdun.获取卡密信息();
log("卡密激活时间:",data.start_time);
log("卡密到期时间",data.end_time);
log("卡密剩余时间",data.remaining_days);
```
### 卡密验证(无授权或不心跳版本)
```js
Ssdun = require("./ssdun.js");
Ssdun.setCard("内置卡密");//设置卡密
Ssdun.一键运行卡密验证();
//运行成功后可通过以下命令获取卡密信息
let data = Ssdun.获取卡密信息();
log("卡密激活时间:",data.start_time);
log("卡密到期时间",data.end_time);
log("卡密剩余时间",data.remaining_days);
```
# 模块函数
### 读取机器码
```js
/**
*
* @param readConfig true 则优先读取第一次读取后保存在配置内的机器码
* @return {string}
*/
Ssdun.读取机器码(readConfig);
```
### 心跳线程
```js
/**
*
* @param req_interval 请求间隔 单位分,最快10分钟心跳一次 建议10分钟心跳一次.最慢不得超过60分组
* @param Type 1 网络心跳验证,2 卡密心跳验证 3 试用心跳验证
* @param RetryCount 默认一次 重试几次不成功则停止脚本
*/
Ssdun.心跳线程(req_interval, Type, RetryCount);
```
### 一键运行卡密验证
```js
/**
* @param heartbeatVerify 是否开启心跳验证
* @param RetryCount 心跳失败重试几次
*/
Ssdun.一键运行卡密验证(heartbeatVerify,RetryCount);
```
### 一键运行网络验证
```js
/**
* @param heartbeatVerify 是否开启心跳验证
* @param RetryCount 心跳失败重试几次
*/
Ssdun.一键运行网络验证(heartbeatVerify,RetryCount);
```
### 一键运行试用验证
```js
/**
* @param heartbeatVerify 是否开启心跳验证
* @param RetryCount 心跳失败重试几次
*/
Ssdun.一键运行试用验证(heartbeatVerify,RetryCount);
```
### 获取验证信息
```js
/**
*
* @return {object|boolean} 成功返回信息对象,失败返回fasle
*/
Ssdun.获取卡密信息();
```
### 获取卡密信息
```js
/**
*
* @return {object|boolean} 成功返回信息对象,失败返回fasle
*/
Ssdun.获取卡密信息();
```
### 网络验证
```js
/**
* @appSecret 软件Id
* @return 成功返回心跳Token,失败返回false
*/
Ssdun.网络验证(appSecret);
```
### 网络心跳验证
```js
/**
* @param token 心跳Token
* @return 成功 10100,失败返回 status_code 值
*/
Ssdun.网络心跳验证(token);
```
### 网络退出心跳验证
```js
/**
* @param token 心跳Token
* @return 成功 10101,失败返回 status_code 值
*/
Ssdun.网络退出心跳验证(token);
```
### 卡密验证
```js
/**
*
* @param card 卡密
* @param machineCode 机器码
* @param appSecret 软件Id
* @return 成功返回心跳Token,失败返回false
*/
Ssdun.卡密验证(card, machineCode, appSecret);
```
### 卡密心跳验证
```js
/**
* @param token 心跳Token
* @return 成功 10100,失败返回 status_code 值
*/
Ssdun.卡密心跳验证(token);
```
### 卡密退出心跳验证
```js
/**
* @param token 心跳Token
* @return 成功 10101,失败返回 status_code 值
*/
Ssdun.卡密退出心跳验证(token);
```
### 卡密解绑
```js
/**
*
* @param password 解绑卡密密码 没有则留空
* @param deduct 扣除天数
* @param appSecret 软件Id
* @param card 卡密
* @param machineCode 机器码
* @return 成功返回 treu,失败返回 fasle
*/
Ssdun.卡密解绑(password, deduct, appSecret, card, machineCode);
```
### 充值卡密
```js
/**
*
* @param use_card 充值卡
* @param appSecret 软件Id
* @param card 卡密
* @return 成功返回 treu,失败返回 fasle
*/
Ssdun.充值卡密(use_card, appSecret, card);
```
### 试用验证
```js
/**
*
* @param appSecret 软件Id
* @param machineCode 机器码
* @return 成功返回 心跳Token,失败返回 false
*/
Ssdun.试用验证(appSecret,machineCode);
```
### 试用心跳验证
```js
/**
*
* @param appSecret 软件Id
* @param machineCode 机器码
* @return 成功返回 心跳Token,失败返回 false
*/
Ssdun.试用验证(appSecret,machineCode);
```
### 试用验证效验
```js
/**
*
* @param Token 心跳Token
* @param appSecret 软件Id
* @param machineCode 机器码
* @return 成功返回10010 失败返回 status_code 值
*/
Ssdun.试用心跳验证(Token,appSecret,machineCode);
```
### 试用心跳线程
```js
/**
*
* @Ssdun_试用心跳线程
* @param req_interval 请求间隔 单位分,最快1分钟心跳一次 建议1分钟心跳一次.
* @param Type 1 网络心跳验证,2 卡密心跳验证 3 试用心跳验证
* @param RetryCount 默认一次 重试几次不成功则停止脚本
*/
Ssdun.试用心跳线程(req_interval, Type, RetryCount);
```
### 创建远程变量
```js
/**
*
* @param name 变量昵称
* @param Var 变量内容
* @return 成功返回 变量appSecret,失败返回fasle
*/
Ssdun.创建远程变量(name, Var);
```
### 删除远程变量
```js
/**
*
* @param appSecret 变量列表的ID
* @return 成功返回 true,失败返回fasle
*/
Ssdun.删除远程变量(appSecret);
```
### 设置远程变量
```js
/**
*
* @param appSecret
* @param Var
* @return 成功返回 true,失败返回fasle
*/
Ssdun.设置远程变量(appSecret, Var);
```
### 获取远程变量
```js
/**
*
* @param appSecret 变量列表的ID
* @return 成功返回 变量内容,失败返回fasle
*/
Ssdun.获取远程变量(appSecret);
```
### 获取远程变量V5
```js
/**
*
* @param appSecret 变量列表的ID
* @param token 网络验证心跳或者卡密验证心跳 默认读取优先级 卡密心跳>网络验证心跳
* @return 成功返回 变量内容,失败返回fasle
*/
Ssdun.获取远程变量V5(appSecret,token);
```
### 运行远程函数
```js
/**
*
* @param appSecret 变量列表的ID
* @param funn_name 运行函数名与参数
* @param parameters 运行参数[1,2,3]
* @return 成功返回 运行函数后返回的内容,失败返回fasle
*/
Ssdun.运行远程函数(appSecret,token);
```
### 获取版本号
```js
/**
*
* @return 成功该SDK版本号
*/
Ssdun.getVersion();
```
### 结束脚本
```js
/**
*
* @param delay 延迟结束 单位毫秒
*/
Ssdun.结束脚本(delay);
```
### 获取热更新信息
```js
/**
*
* @param url 热更新信息
*/
Ssdun.获取热更新信息(url);
```
### 执行热更新
```js
/**
*
* @param data 传入 热更新信息 返回的内容
* @param updateName 需要更新的文件名 xxx.js 如项目project.json内"mian":"xxx.js"
* @param isRestartScript 是否更新完立即重启脚本
*/
Ssdun.执行热更新(data, updateName, isRestartScript);
```