调用例子
# 步骤一、快速调用
### 调试环境: win10 64位 懒人版本≥3.8.6.2
**例子下载地址:http://ssdun.cn/home/API/lanrenV4.5.zip**
1. 将SsdunUtils.apk文件解压出来,然后右键点击你的懒人精灵项目的资源目录》添加》双击资源=>添加文件》找到解压目录选择SsdunUtils.apk。
2. 将Ssdun.luae文件解压出来,然后右键点击你的懒人精灵项目的插件目录》添加》已有项》找到解压目录选择Ssdun.luae。
然后在脚本中通过 require("Ssdun") 引入。
main.lua 是一个示例。
快速调用:
```lua
require("Ssdun")
--Ssdun.crackDifficulty=3 --发送加密等级 默认3 发送加密+获取本地时间, 2发送加密+获取网络时间 ,1明文发送 +获取网络时间
Ssdun.debug=false;--开启输出调试信息
Ssdun.card="ssdun_t7eF4aKPtm"--设置卡密
--参数 userKey,appsecret,加密模式,加密密钥
Ssdun.初始化("c66f660a1a86e69f4a0c7d0e9db4612a8781558e8b0c5861a539b61dcb77cc6e",7,0,"")
--设置心跳回调线程
Ssdun.心跳线程回调(function (statusCode,errorMsg)
if statusCode~=10100 then
print("心跳错误状态码:"..statusCode);
print("心跳错误反馈信息:"..errorMsg);
setTimer(exitScript,10) -- 退出脚本
else
print("心跳正常 状态码"..statusCode.."信息:"..errorMsg)
print()
end
end)
--测试代码因为不同机器码原因 用了密码解除绑定机器码,后面需要删除以下代码
statusCode,data=Ssdun.卡密解绑(nil,nil,nil,"ssdun")
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
else
print("卡密解绑成功")
end
--测试代码结束,后面需要删除 以上代码
sleep(1000)
statusCode,data=Ssdun.卡密验证()
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
exitScript();
end
print("卡密使用时间:"..data["start_time"])
print("卡密剩余天数:"..data["remaining_days"])
print("卡密过期时间:"..data["end_time"])
sleep(1000)
--可选择开不开启心跳
--(参数1: 10分钟心跳一次 ,参数2:1开启网络心跳检测 2卡密心跳检测,参数3:重试次数)
Ssdun.开启心跳线程(10,2,0)
sleep(1000)
--设置脚本停止退出心跳
setStopCallBack(function(error)
if error then
print("脚本异常结束了!!!")
else
print("脚本正常结束了!!!")
end
local SsdunEmpowerHeartbeat=getStringConfig("SsdunEmpowerHeartbeat")
if SsdunEmpowerHeartbeat ~= "" and SsdunEmpowerHeartbeat ~= nil then
statusCode,data= Ssdun.网络退出心跳验证(SsdunEmpowerHeartbeat)
print("网络退出心跳验证:"..statusCode)
setStringConfig("SsdunEmpowerHeartbeat","")
end
local SsdunCardHeartbeat=getStringConfig("SsdunCardHeartbeat")
if SsdunCardHeartbeat ~= "" and SsdunCardHeartbeat ~= nil then
statusCode,data= Ssdun.卡密退出心跳验证(SsdunCardHeartbeat)
print("卡密退出心跳验证:"..statusCode)
setStringConfig("SsdunCardHeartbeat","")
end
end)
--此处运行你的脚本 这里只是保持脚本稍等一会退出 加上代码后需要删除此处 for循环
for i=1,10 do
print("此处运行你的脚本i:",i)
sleep(1000)
end
```
# 模块函数
## 获取北京十位时间戳
```lua
Ssdun.GetTimestamp()
```
## 获取机器码
```lua
Ssdun.获取机器码()
```
## 热更新信息
```lua
--[[
url:热更URL
]]--
statusCode,data=Ssdun.获取热更新信息(URL)
if statusCode == 200then
print("网络版本号.."data["version"]")
print("公告:")
print(data["msg"])
print("是否强制更新:")
print(data["force"])
print("是否弹出公告:")
print(data["dialog"])
Ssdun.热更新(data,true)
else
print("无需更新")
end
```
## 热更新
```lua
--[[
data:热更新信息返回的数据
restartScript:是否重启脚本
downSchedule:下载进度回调
]]--
statusCode,data=Ssdun.获取热更新信息(URL)
if statusCode == 200then
print("网络版本号.."data["version"]")
print("公告:")
print(data["msg"])
print("是否强制更新:")
print(data["force"])
print("是否弹出公告:")
print(data["dialog"])
Ssdun.热更新(data,true)
else
print("无需更新")
end
```
```
## 初始化
```lua
--[[
user_key:平台(控制台)->复制UserKey
appSecret :平台(软件列表)->Id
encryptionMode: 0,//加密模式选择 0 无加密,1 AES加密 2 RSA加密
key: 加密密钥 字符串形式 AES模式网站获取直接填写上,RSA模式把RSA文件导入资源文件中,填写RSA文件全名,如"2083_RSA_PUBLIC.pem"
assets: 字符串形式 AES模式不用填写,可直接 "" 为空 RSA模式文件 文件放在那个 资源文件中,就使用哪个资源文件的名字,如 "main.rc"
--]]
Ssdun.初始化(user_key,app_secret,encryptionMode,key,assets)
```
## 卡密验证
```lua
--[[
card:(可空) 生成的卡密 备注(可使用Ssdun.card="卡密" 则可空)
machine_code:(可空) 机器码 备注(默认调用 本机设备号)
app_secret:(可空) 平台(软件列表)->Id 备注( 默认调用初始化后的app_secret)
timestamp:(可空) 北京十位时间戳 备注:默认调用本机时间戳
]]--
statusCode,data=Ssdun.卡密验证()
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
exitScript();
else
-- statusCode 200 执行成功 数据可用 data["xxx"]获取
print(data)
end
```
## 卡密心跳验证
```lua
--[[
token:(可空) 心跳token 备注(若调用过卡密验证后参数可空)
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.卡密心跳验证()
if statusCode ~= 10100 then
toast(data,0,0,12)
print(data)
else
-- tatusCode 200 执行成功 数据可用 data["xxx"]获取
print("成功")
end
```
## 卡密退出心跳验证
```lua
--[[
token:(可空) 心跳token 备注(若调用过卡密验证后参数可空)
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.卡密退出心跳验证()
if statusCode ~= 10101 then
toast(data,0,0,12)
print(data)
else
-- tatusCode 200 执行成功 数据可用 data["xxx"]获取
print("成功")
end
```
## 卡密解绑
```lua
--[[
card:(可空) 生成的卡密 备注(可使用Ssdun.card="卡密" 则可空)
machine_code:(可空) 机器码 备注(默认调用 本机设备号)
deduct:(可空)扣除卡密天数 默认0天
password:(可空)解绑密码 备注(解绑密码优先级比机器码高)
app_secret:(可空) 平台(软件列表)->Id 备注( 默认调用初始化后的app_secret)
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.卡密解绑()
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
else
-- statusCode 200 执行成功 数据可用 data["xxx"]获取
print("解绑成功")
end
```
## 充值卡密
```lua
--[[
use_card: 充值卡 备注(一张未使用的卡密)
card:(可空) 生成的卡密 备注(可使用Ssdun.card="卡密" 则可空)
app_secret:(可空) 平台(软件列表)->Id 备注( 默认调用初始化后的app_secret)
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.充值卡密()
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
else
-- statusCode 200 执行成功 数据可用 data["xxx"]获取
print("充值成功")
end
```
## 网络验证
```lua
--[[
appSecret:(可空)平台(软件列表)->Id
timestamp:(可空)十位北京时间戳
]]--
statusCode,data=Ssdun.网络验证()
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
exitScript();
else
-- statusCode 200 执行成功 数据可用 data["xxx"]获取
print(data)
end
```
## 网络心跳验证
```lua
--[[
token:(可空) 心跳token 备注(若调用过卡密验证后参数可空)
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.网络心跳验证()
if statusCode ~= 10100 then
toast(data,0,0,12)
print(data)
else
-- tatusCode 200 执行成功 数据可用 data["xxx"]获取
print("成功")
end
```
## 网络退出心跳验证
```lua
--[[
token:(可空) 心跳token 备注(若调用过卡密验证后参数可空)
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.网络退出心跳验证()
if statusCode ~= 10101 then
toast(data,0,0,12)
print(data)
else
-- tatusCode 200 执行成功 数据可用 data["xxx"]获取
print("成功")
end
```
## 网络退出心跳验证
```lua
--[[
token:(可空) 心跳token 备注(若调用过卡密验证后参数可空)
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.网络退出心跳验证()
if statusCode ~= 10101 then
toast(data,0,0,12)
print(data)
else
-- tatusCode 200 执行成功 数据可用 data["xxx"]获取
print("成功")
end
```
## 开启心跳线程
```lua
--[[
reqInterval:检测时间 默认10分钟 最短十分钟一次最长不能超过一小时
type:1开启网络心跳检测 2卡密心跳检测
retryCount: 重试次数
]]--
Ssdun.开启心跳线程(reqInterval,type,retryCount)
```
## 心跳线程回调
```lua
--[[
statusCode 状态码 可参考:https://doc.ssdun.cn/doc/38382379/b5qyY6IB/7IRAlJwd
errorMsg 错误返回信息
]]--
Ssdun.心跳线程回调(function (statusCode,errorMsg)
if statusCode~=10100 then
print("心跳错误状态码:"..statusCode);
print("心跳错误反馈信息:"..errorMsg);
setTimer(exitScript,10) -- 退出脚本
else
print("心跳正常 状态码"..statusCode.."信息:"..errorMsg)
end
end)
```
## 创建远程变量
```lua
--[[
name:创建变量的昵称
var:变量的数据
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.创建远程变量("测试创建","创建数据")
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
else
-- statusCode 200 执行成功 数据可用 data["xxx"]获取
print("创建后的app_secret:")
print(data["app_secret"])
end
```
## 删除远程变量
```lua
--[[
app_secret:创建的变量的app_secret 备注(是变量列表ID不是软件ID)
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.删除远程变量(app_secret)
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
else
-- statusCode 200 执行成功 数据可用 data["xxx"]获取
print("成功")
end
```
## 设置远程变量
```lua
--[[
app_secret:变量appsecret
var:变量的数据
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.设置远程变量(app_secret,var)
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
else
-- statusCode 200 执行成功 数据可用 data["xxx"]获取
print("成功")
end
```
## 查询远程变量
```lua
--[[
app_secret:变量appsecret
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.获取远程变量(app_secret)
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
else
-- statusCode 执行成功 数据可用 data["xxx"]获取
print("获取数据:")
print(data["var"])
end
```
## 运行远程JS函数
```lua
--[[
app_secret:远程js列表的id
funName:函数名
parameters:参数多个以[1,2,3,4]传输
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.运行远程函数(app_secret,funName,parameters)
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
else
-- statusCode 执行成功 数据可用 data["xxx"]获取
print("执行结果:")
print(data["result"])
end
```
## 试用验证
```lua
--[[
machine_code:(可空) 机器码 备注(默认调用 本机设备号)
app_secret:(可空) 平台(软件列表)->Id 备注( 默认调用初始化后的app_secret)
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.试用验证()
if statusCode ~= 200 then
toast(data,0,0,12)
print(data)
else
-- statusCode 200 执行成功 数据可用 data["xxx"]获取
print(data)
end
```
## 试用心跳验证
```lua
--[[
token:(可空) 心跳token 备注(若调用过网络验证后参数可空)
timestamp:(可空) 北京十位时间戳 备注(默认调用本机时间戳)
]]--
statusCode,data=Ssdun.试用心跳验证()
if statusCode ~= 10100 then
toast(data,0,0,12)
print(data)
else
-- statusCode 200 执行成功 数据可用 data["xxx"]获取
print("成功")
end
```
### 获取备用验证地址
```js
Ssdun.updateHost();
```
### 设置验证地址
```js
Ssdun.setBackupHosts(hosts);
```