触摸精灵授权与自动更新脚本

发布于 2019-09-09 16:24:22
  1. 注册

注册地址:code.vrvr.cn
2.新建脚本


更具自己需要新建脚本

3.升级脚本


4.查看版本与设置版本

5.给脚本授权


触摸授权与升级代码Demo

applicationID = "1019"    --应用ID
key = "3f9tu5HQlBaXIV80GNpqPm2TWZC1gML4"  --应用APP_SECRET
url = "http://code.vrvr.cn/v1/api"  

function rand()

math.randomseed(tostring(os.time()):sub(5):reverse())
local maa =  math.random(88888, 9999999999);
return "0."..tostring(maa)

end
function httpGetH(uurl)

::ddaa::
local data = httpGet(uurl)
if #data ~= 0 then
    return data
else
    notifyMessage("请求失败,重新请求")
    mSleep(3000)
    goto ddaa
end    

end
function sign()

deviceID = getDeviceID()  --设备序列号
local MD5=md5String(applicationID..rand()..key)
local requ = "?app_id="..applicationID.."&rand="..rand().."&device_id="..deviceID.."&sign="..MD5 
return requ

end
local __ASCII_CODE = {

[65]=0,[66]=1,[67]=2,[68]=3,[69]=4,[70]=5,[71]=6,[72]=7,[73]=8,[74]=9,[75]=10,
[76]=11,[77]=12,[78]=13,[79]=14,[80]=15,[81]=16,[82]=17,[83]=18,[84]=19,[85]=20,[86]=21,
[87]=22,[88]=23,[89]=24,[90]=25,[97]=26,[98]=27,[99]=28,[100]=29,[101]=30,[102]=31,[103]=32,
[104]=33,[105]=34,[106]=35,[107]=36,[108]=37,[109]=38,[110]=39,[111]=40,[112]=41,[113]=42,[114]=43,
[115]=44,[116]=45,[117]=46,[118]=47,[119]=48,[120]=49,[121]=50,[122]=51,[48]=52,[49]=53,[50]=54,
[51]=55,[52]=56,[53]=57,[54]=58,[55]=59,[56]=60,[57]=61,[43]=62,[47]=63,

}

function base64decode(text)

local len = string.len(text)
if(len%4 ~= 0) then
    return nil
end
local residual = 0
if string.sub(text,len-1) == '==' then
    residual = 2
    len = len - 4
elseif string.sub(text,len) == '=' then
    residual = 1
    len = len - 4
end
local index = 1
local ret = {}
--处理正好转换的部分
for i = 1,len,4 do
    local t1 = __ASCII_CODE[string.byte(text,i)]
    local t2 = __ASCII_CODE[string.byte(text,i+1)]
    local t3 = __ASCII_CODE[string.byte(text,i+2)]
    local t4 = __ASCII_CODE[string.byte(text,i+3)]
    local num = t1*262144 + t2*4096 + t3*64 + t4
    local t5 = string.char(num%256)
    num = math.floor(num/256)
    local t6 = string.char(num%256)
    num = math.floor(num/256)
    local t7 = string.char(num%256)
    ret[index] = t7
    ret[index+1] = t6
    ret[index+2] = t5
    index = index+3
end

--处理不能正好转换的部分

if residual == 1 then
    local t8 = __ASCII_CODE[string.byte(text,len+1)]
    local t9 = __ASCII_CODE[string.byte(text,len+2)]
    local t10 = __ASCII_CODE[string.byte(text,len+3)]
    local num = t8*4096 + t9*64 + t10
    local pos = math.floor(num/1024) % 256
    ret[index] = string.char(pos)
    pos = math.floor(num/4) % 256
    ret[index+1] = string.char(pos)
elseif residual ==2 then
    local t8 = __ASCII_CODE[string.byte(text,len+1)]
    local t9 = __ASCII_CODE[string.byte(text,len+2)]
    local num = t8*64 + t9
    local pos = math.floor(num/16)
    ret[index] = string.char(pos)
end
return table.concat(ret)

end
function demo()
--激活设备

::kk::

local data = httpGetH(url..'/device_status'..sign())
--notifyMessage(data,1000)
--返回JSON
--示例 {"code":0,"status":"unactive","msg":"设备未激活!","trial":true}
--code         0成功,非0失败,失败原因 msg
--status       状态 active:设备激活,expered:设备授权时间已到期,locked:设备拉黑,unactive:设备未激活,ontrial:设备试用
--msg          返回信息
--trial        true该脚本有试用,false没有试用
--expire_time  设备到期时间
--os.date("%Y%m%d%H%M%S", os.time())
tablejh = jsonDecode(data)

if tablejh.code == 0 then
    --设备有试用
    if tablejh.trial == 1 then
        --设备激活试用
        local sydata = httpGetH(url.."/trial"..sign())
        --notifyMessage(sydata)
    else
        if tablejh.status == "ontrial" or tablejh.status == "active" then
            notifyMessage("脚本到期时间:"..os.date("%Y-%m-%d %H:%M:%S",tablejh.expire_time))
            -----执行代码
            ----如果使用脚本更新功能在这里获取最新代码
            --获取最新代码
            zxdata = httpGetH(url.."/update"..sign())
            tablegx = jsonDecode(zxdata)
            --notifyMessage(base64decode(tablegx.data))
            coodee = base64decode(tablegx.data)
            --将获取的代码变为可执行代码
            zhixing = load(coodee)
            zhixing()
        else
            --授权码激活
            sqdata = httpGetH(url.."/active_code"..sign().."&code="..codedd)
            tablesq=jsonDecode(sqdata)
            notifyMessage(tablesq.msg,3000)
            if tablesq.msg == "该授权码已被锁定!" then         
                return
            end    
            goto kk
        end    
    end   
else
    notifyMessage(tablejh.msg)
    return
end 

end
UI = {

{ 'InputBox{}',             'code',    '输入授权码:' },

};
function main()

codedd = string.format("%s",code)
demo()

end

资费说明:
30元/月
60元/半年
100元/年
联系QQ:279104446

1 条评论

发布
问题