该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
//配置参数,需修改为个人配置信息,网站http://www.91reg.cn申请用户后修改
Dim 软件版本,试用次数,试用天数,网站用户账号,注册类别,校验密钥,检验间隔时间,续费购买网址,升级地址
Dim 设备ID,用户别名,用户校验
Dim 校验值,post数据,请求地址,regweb
Dim MyArray,网络时间,校验结果,随机参数,检验时间1,检验时间2
网站用户账号 = "U2T1460651957974" //网站用户appid,需填写在网站申请的账号对应appid
注册类别 = 10//注册商品即软件编号,用于区分同一用户不同的脚本类别
软件版本 = 2//客户端软件版本,更新时该设置需修改大于等于服务器设置的版本号,否则返回err,根据errmsg可提示更新
试用次数 = 5//试用次数为空则不试用,请根据需要设置5次以下,超过5次无效,与试天次数建议设置一项
试用天数 = 1//试用天数为空则不试用,可设置5天以下,超过5天无效,与试用次数建议设置一项
校验密钥 = "f964633356970667ff80ff1c167c0cbf" //网站注册用户后可自行生成密钥,校验用,注意保密以免其他用户误用
检验间隔时间 = 20//检验间隔时间,秒,需设置大于20秒,频繁校验则返回错误
续费购买网址 = "http://pc.91reg.cn" //提示用户购买注册时间的网址
升级地址 = "http://update.91reg.cn" //转到升级网址
//以上为配置参数,修改为你申请的信息,网站pc.91reg.cn注册用户并开通网络验证,然后新增商品即软件编号
//分隔线---------------------------------------------------------------------------------------------
Sub 开始初始检验
//以下开始首次自动收集设备信息并初始验证
随机参数 = int(Rnd()*100000)
//以下为唯一参数设置
设备ID = GetDeviceID() //必需参数,唯一判断,也可自行设定
//用户别名 = ""//留空,网站另行设置,唯一对应设备ID,方便记忆后续充值续期
用户校验 = Device.GetIccid()//可空,用于校验用户未被克隆
TracePrint "设备ID:"&设备ID
TracePrint "用户校验:"&用户校验
regweb = "http://api.91reg.cn" //验证服务端网址,网站用户账号免费申请
网络时间 = GetNetworkTime()
检验时间1 = TickCount()
Traceprint 网络时间
If 检验间隔时间 < 20 Then
检验间隔时间 = 20
End If
TracePrint 校验密钥&"1001"&网站用户账号&设备ID&用户别名&用户校验&注册类别&软件版本&网络时间&试用天数&试用次数&随机参数
校验值 = Encode.Md5(校验密钥&"1001"&网站用户账号&设备ID&用户别名&用户校验&注册类别&软件版本&网络时间&试用天数&试用次数&随机参数)
TracePrint 校验值
TracePrint regweb&"/api/svrchk?tp=1001&appid=" & 网站用户账号 & "&macid=" & 设备ID & "&username=" & 用户别名 & "&userpwd=" & 用户校验 & "&softid=" & 注册类别 & "&ver=" & 软件版本 & "&ndate=" & 网络时间 & "&tryd=" & 试用天数 & "&tryn=" & 试用次数 & "&rnds=" & 随机参数 & "&strparm=" & 校验值
请求地址 = regweb&"/api/svrchk"
post数据 = "tp=1001&appid=" & 网站用户账号 & "&macid=" & 设备ID & "&username=" & 用户别名 & "&userpwd=" & 用户校验 & "&softid=" & 注册类别 & "&ver=" & 软件版本 & "&ndate=" & 网络时间 & "&tryd=" & 试用天数 & "&tryn=" & 试用次数 & "&rnds=" & 随机参数 & "&strparm=" & 校验值
校验结果 = URL.Post(请求地址, post数据)
If 校验结果="err:101,msg:low version" Then
TracePrint "版本不符,请升级!"
ShowMessage("请下载最新版本:"&升级地址)
Delay 5000
End If
If InStr(1, 校验结果, "ok") > 0 Then
MyArray = Split(校验结果, ",")
If UBOUND(MyArray) > 0 Then
校验结果 = Myarray(2)
End If
If lcase(校验结果) <> lcase(Encode.Md5(随机参数 & Myarray(1) & 校验密钥)) Then
TracePrint "非法修改,停止运行!"
EndScript
Else
TracePrint "登录校验成功!"
End If
Else
TracePrint "登录校验失败!" & 校验结果
ShowMessage "登录校验失败!" & 校验结果
EndScript
End If
//初始验证结束
End Sub
Sub 开始间隔检验
//开始校验判断是否克隆或多点重复登录,必须定期在程序里检测,防止克隆模拟器
检验时间2 = TickCount()
TracePrint 检验时间2 - 检验时间1
//TracePrint DateDiff("s", 检验时间1, 检验时间2)
If 检验时间2 - 检验时间1 >= 检验间隔时间 * 1000 Then
检验时间1=检验时间2
校验值 = Encode.Md5(校验密钥&"1002"&网站用户账号&设备ID&用户别名&用户校验&注册类别&软件版本&网络时间&试用天数&试用次数&随机参数)
post数据 = "tp=1002&appid=" & 网站用户账号 & "&macid=" & 设备ID & "&username=" & 用户别名 & "&userpwd=" & 用户校验 & "&softid=" & 注册类别 & "&ver=" & 软件版本 & "&ndate=" & 网络时间 & "&tryd=" & 试用天数 & "&tryn=" & 试用次数 & "&rnds=" & 随机参数 & "&strparm=" & 校验值
校验结果 = URL.Post(请求地址, post数据)
TracePrint 校验结果
If 校验结果="err:101,msg:low version" Then
TracePrint "版本不符,请升级!"
ShowMessage("请下载最新版本:"&升级地址)
Delay 5000
End If
If InStr(1, 校验结果, "ok") > 0 Then
MyArray = Split(校验结果, ",")
If UBOUND(MyArray) > 0 Then
校验结果 = Myarray(2)
End If
If lcase(校验结果) <> lcase(Encode.Md5(随机参数 & Myarray(1) & 校验密钥)) Then
TracePrint "非法操作,停止运行!"
EndScript
Else
TracePrint "间隔校验成功!"
End If
Else
TracePrint "登录校验失败!" & 校验结果
ShowMessage "登录校验失败!" & 校验结果
EndScript
End If
End If
End Sub
//分隔线--------------以上为自动生成代码,与验证服务器网站配套使用,不熟悉接口请勿修改------------------
开始初始检验 //你的代码开始之前完成调用初始检验Sub
//以下开始你的主程序
Do
TracePrint "开始运行你的程序"
//你的程序例子开始
For i = 1 to 5
Delay 1000
ShowMessage("正在执行你的程序..."&i)
Next
//你的程序例子结束
开始间隔检验//在执行你的代码中途随时插入调用间隔检验Sub
Loop