xxxxxxxxxx
wighost = "http://www.wigwy.xyz"
-- 备用
wighost = "http://www.wigyyds.com"
POST
请求参数 参数类型 参数说明 :time string 十位数时间戳 :appid string 应用 id :kami string 卡密 imei string 机械码
返回类型 参数类型 参数说明 text string rc4 加密后的值
xxxxxxxxxx
7074d5a476050a05d50fe542908cb2d464a14d873ee00637603211abbab97d05d881e74192cdb510a91f9f8e1b1d71d496b6af2dbdb0ccac364585c9d1e7bf06fc1b86cee752a7f51dcd8654342e835496625647a477976f35122cb6b6cfdf3da715d055246f443be331ca91e437ffc7d47ebfbab4614565b94402ecb64efd5e6f3e299415a638b3bc3138518e4ed0f0d214eec89f10b550a12e88f434e0197ce4e7714f131f94734e1471bc308e179912d2e3271ff93a7d12aeec65cf2dfbf20068341231e4422b4615c6725e054284
xxxxxxxxxx
-- 定义请求链接
local wighost = "http://www.wigyyds.com"
local APPID = "10000"
local RC4_KEY = "x0WpNA11Y3Ni297"
local time = os.time()
local api = wighost .. "/api/login/" .. time .. "/" .. APPID .. "/"
-- 获取设备唯一标识 机械码
-- 如果有函数可以直接获取 没有的话可以用虚拟的机械码
-- 为了我们每次获取的机械码是一样的 所以我们要将机械码写入本地 可以直接获取的可以忽略
AMI_YDO = "/sdcard/Android/"
function getImei()
local imei_path = AMI_YDO .. '/wig' .. APPID .. '.imei'
local imei_file = io.open(imei_path, 'r')
local imei
if not imei_file or imei_file:read("*a") == "" then
imei = md5((os.time() * 1000 + 611 - 99999) ..
math.random("1", "999999999")) .. os.time()
local imei_file_write = io.open(imei_path, 'w+')
imei_file_write:write(imei)
imei_file_write:close()
else
imei = imei_file:read("*a")
imei_file:close()
end
return imei
end
local imei = getImei()
local body = "imei=" .. imei
-- 比如我们的卡密为 123456789
local km = "123456789"
-- 现在 我们卡密和机械码都齐全了可以调用登录接口了
-- gg.makeRequest 是一个网络请求函数 其他语言的 自行修改
local content = gg.makeRequest(api .. km, nil, body).content
-- 请求成功后返回的是一个RC4字符串 我们要使用RC4进行解密
-- 7074d5a476050a05d50fe542908cb2d464a14d873ee00637603211abbab97d05d881e74192cdb510a91f9f8e1b1d71d496b6af2dbdb0ccac364585c9d1e7bf06fc1b86cee752a7f51dcd8654342e835496625647a477976f35122cb6b6cfdf3da715d055246f443be331ca91e437ffc7d47ebfbab4614565b94402ecb64efd5e6f3e299415a638b3bc3138518e4ed0f0d214eec89f10b550a12e88f434e0197ce4e7714f131f94734e1471bc308e179912d2e3271ff93a7d12aeec65cf2dfbf20068341231e4422b4615c6725e054284
-- 我们要解密
content = string.rc4(content, RC4_KEY, "de")
--[[
卡密不存在
{"user_time":"1721703084","appid":"10000","key":"123456789","api_time":"1721703084","check":"a5bc7541203eb865016acc4031119470","imei":"c492953a530c02ad1688d647bd463bf31697976493","msg":"[WIG]卡密不存在(10000)(123456789)","code":"10002"}
登录成功
{"user_time":"1721703118","appid":"10000","key":"123456789","api_time":"1721703118","check":"b1d72796ae8f644ae39e75c1102bb32a","imei":"c492953a530c02ad1688d647bd463bf31697976493","msg":"[WIG]卡密激活成功","use_time":"1721703118","code":"20000","new_code":"340e31ba45ac678e199d3b22a1d50523","new_code2":"b3563fd81f34b7e36ad06507f38878fd","user_vip":86400,"card_type":"天卡","key_note":null,"vip":1721789518,"expires_ts":1721789518,"expires":"2024-07-24 10:51:58","checkfalse":"6866c4e770156014dd56b0569f9fe58668ae1a833ae60537742a00abf3ff2557","checktrue":"686299e52a4266108951b0039a9ce28661af438e6fe60735207a07fcf9ab7252cb8dfc479bcab314b2008cd24c5564de87bed042b4c9b3d64d36e6aca78bcb07ee07949da70bc8b1","token":"A3x9gY14OGekpTz10c3o"}
]]
-- 解密之后我们可以看到这是一个json字符串 现在我们要解析这个字符串
content = json.decode(content)
-- 登录状态码 大家无需判断code来提示msg
local code = content.code
-- 成功信息|失败信息
local msg = content.msg
-- 返回值校验
local check = content.check
-- 服务器时间
local api_time = content.api_time
-- 用户时间
local wig_vip = content.wig_vip
-- 返回值比对
local WIGNEWCODE = content.new_code2
-- 用户时间
local user_vip = content.user_vip
-- 永久卡 | 年卡 | 季卡 | 月卡 | 周卡 | 天卡 | 小时卡 | 分钟卡
local card_type = content.card_type
-- 假如你想限制卡密类型来使用卡密可以这样使用
-- 使用例子 仅供参考
--[[
if card_type == "永久卡" then
-- 代码
else
gg.alert("你没有权限使用该功能")
end
---------------------
if card_type == "永久卡" or card_type == "年卡" then
-- 代码
else
gg.alert("你没有权限使用该功能")
end
]]
-- 检查返回值校验是否为空
while check == nil do
gg.alert(msg)
os.exit()
end
-- 检查时间戳是否过期
while time < api_time or ((tonumber(os.time()) - tonumber(api_time)) > 30) or
((tonumber(os.time()) - tonumber(api_time)) < -30) do
print(
"脚本:数据过期(4.0)\n解决方法:调整手机时间为自动\n北京时间24小时制" ..
tonumber(os.time()) - tonumber(api_time))
os.exit()
end
-- 检查登录状态码是否为20000
if code ~= "20000" then
gg.alert(msg)
if code ~= "20000" then
os.remove(AMI_YDO .. '/km' .. APPID)
io.open(AMI_YDO .. '/e' .. APPID .. '.log', 'w+'):write("1")
end
os.exit()
else
checktrue = string.rc4(content.checktrue, RC4_KEY, false)
while checktrue ~= (imei .. content.user_time .. api_time .. APPID .. code) do
print("脚本:检测到你有非法操作")
os.exit()
end
-- 这里的 b3563fd81f34b7e36ad06507f38878fd 对应着后台的newcode
while tostring(WIGNEWCODE) ~= "b3563fd81f34b7e36ad06507f38878fd" do
gg.alert("检测到您有非法操作2")
os.exit()
end
local vip_text = os.date(
"%Y" .. "年" .. "%m" .. "月" .. "%d" .. "日 %H" ..
"时" .. "%M" .. "分" .. "%S" .. "秒", wig_vip)
if os.date("%Y", wig_vip) == "9999" then vip_text = "永久卡" end
local Mu_wig = gg.alert([[
到期时间: ]] .. vip_text .. [[
使用卡密: ]] .. content.key, "确定")
gg.alert("登录成功")
end
GET
请求参数 参数类型 参数说明 :time string 十位数时间戳 :appid string 应用 id
返回类型 参数类型 参数说明 text string 公告内容
xxxxxxxxxx
我是公告内容
xxxxxxxxxx
-- 定义请求链接
local wighost = "http://www.wigyyds.com"
local APPID = "10000"
local time = os.time()
local api = wighost .. "/api/announcement/" .. time .. "/" .. APPID
-- gg.makeRequest 是一个网络请求函数 其他语言的 自行修改
local content = gg.makeRequest(api).content
gg.alert("公告内容:" .. content)
GET
请求参数 参数类型 参数说明 :time string 十位数时间戳 :appid string 应用 id
返回类型 参数类型 参数说明 text number 启动次数
xxxxxxxxxx
16709
xxxxxxxxxx
-- 定义请求链接
local wighost = "http://www.wigyyds.com"
local APPID = "10000"
local time = os.time()
local api = wighost .. "/api/numberOf/" .. time .. "/" .. APPID
-- gg.makeRequest 是一个网络请求函数 其他语言的 自行修改
local content = gg.makeRequest(api).content
gg.alert("当前脚本启动次数:" .. content)
POST
请求参数 参数类型 参数说明 :appid string 应用 id :card string 卡密
返回类型 参数类型 参数说明 json string 解绑回调
xxxxxxxxxx
{"code":203,"msg":"卡密不存在"}
xxxxxxxxxx
-- 定义请求链接
local wighost = "http://www.wigyyds.com"
local APPID = "10000"
local api = wighost .. "/api/unbundling/" .. APPID .. "/"
-- 比如我们的卡密为 123456789
local km = "123456789"
-- 机械码
local imei = getImei()
local body = "imei=" .. imei
-- gg.makeRequest 是一个网络请求函数 其他语言的 自行修改
local content = gg.makeRequest(api .. km,nil,body).content
-- {"code":203,"msg":"卡密不存在"}
-- 解析json
content = json.decode(content)
gg.alert(content.msg) -- 卡密不存在
POST
| 请求参数 | 参数类型 | 参数说明 | | :time | string | 十位数时间戳 | | :appid | string | 应用 id | | :kami | string | 卡密 | | imei | string | 机械码 |
返回类型 参数类型 参数说明 text string rc4 加密后的值,然后是 base64
xxxxxxxxxx
7074d5a476050a05d50fe542908cb2d464a14d873ee00637603211abbab97d05d881e74192cdb510a91f9f8e1b1d71d496b6af2dbdb0ccac364585c9d1e7bf06fc1b86cee752a7f51dcd8654342e835496625647a477976f35122cb6b6cfdf3da715d055246f443be331ca91e437ffc7d47ebfbab4614565b94402ecb64efd5e6f3e299415a638b3bc3138518e4ed0f0d214eec89f10b550a12e88f434e0197ce4e7714f131f94734e1471bc308e179912d2e3271ff93a7d12aeec65cf2dfbf20068341231e4422b4615c6725e054284
xxxxxxxxxx
AUTOJS 的话看上面的登录即可解开rc4之后是一个base64字符串把这个再解密就是json字符串了 其他是一样的
POST
请求参数 参数类型 参数说明 :appid string 应用 id token String 登录凭证 timestamp String 时间戳 isAutoJs num|bool 0|1 true|false
返回类型 参数类型 参数说明 text string rc4 加密后的值,然后是 base64
xxxxxxxxxx
6e2feabf703f1701e621c956e3c4c6951ddd3ac142b9446b1b4671ba92fa461198ec9019ed97c012c477dad7313006ddf9cbac09cc93d7d31941b9e4ccebb75e915eedc6db78b2ed11e8a1066d61e418f6693204d82ec0285b7d44bfbc98ee3acc459d4c594d377c9a03d9c1b70a809cab72e9e0e2361f37e91704deba1cbf0a6e3258f40ce634a7ec394913995fb28fff4aedc1
POST | GET
请求参数 参数类型 参数说明 :time String 时间戳 :appid string 应用 id
返回类型 参数类型 参数说明 text string rc4 加密后的值,然后是 base64
xxxxxxxxxx
6e2feabf703f1701e621c956e3c4c6951ddd3ac142b9446b1b4671ba92fa461198ec9019ed97c012c477dad7313006ddf9cbac09cc93d7d31941b9e4ccebb75e915eedc6db78b2ed11e8a1066d61e418f6693204d82ec0285b7d44bfbc98ee3acc459d4c594d377c9a03d9c1b70a809cab72e9e0e2361f37e91704deba1cbf0a6e3258f40ce634a7ec394913995fb28fff4aedc1
xxxxxxxxxx
local time = os.time()
local content = Biu.post(xxxxxxx .. "/versionApp/" .. time .. "/" ..
APPId, "")
if version_encode then
content = Rc4(content, RC4_KEY, false)
end
-- 发起网络请求
content = http(content)
-- 更新公告
update_announcement = content.update_announcement
-- 判断是否需要更新
_app_version = content.app_version
app_version = string.gsub(_app_version, "%.", "")
-- 强制更新
is_force_update = content.is_force_update
-- 更新地址
update_url = content.update_url
_is = false
force = "否"
if is_force_update then
_is = true
force = "是"
end
if app_version > version then
print("当前版本: " .. _version .. "\n最新版: " .. _app_version ..
"\n是否强制更新: " .. force .. "\n更新Ï公告: " ..
update_announcement .. "\n更新地址: " .. update_url .. "\n\n")
while _is do Biu.exit() end
end
POST
请求参数 参数类型 参数说明 appid String 应用 id username String 用户名 password String 密码 card String 充值卡密(可选) String
返回类型 参数类型 参数说明 json string Json
xxxxxxxxxx
{"code":200,"msg":"注册成功"}
POST
请求参数 参数类型 参数说明 appid String 应用 id username String 用户名 password String 密码 new_password String 新密码
返回类型 参数类型 参数说明 json string Json
xxxxxxxxxx
{"code":400,"msg":"当前密码错误"}
POST
请求参数 参数类型 参数说明 appid String 应用 id username String 用户名 password String 密码 card String 卡密
返回类型 参数类型 参数说明 json string Json
xxxxxxxxxx
{"code":400,"msg":"卡密不存在或已使用"}
POST
请求参数 参数类型 参数说明 appid String 应用 id username String 用户名 Token String 登录凭证
返回类型 参数类型 参数说明 json string Json
xxxxxxxxxx
{"code":200,"msg":"退出登录成功"}
POST
请求参数 参数类型 参数说明 appid String 应用 id username String 用户名 Imei String 机械码
返回类型 参数类型 参数说明 json string Json
xxxxxxxxxx
{"code":204,"msg":"用户没有绑定机械码"}