XScript接入百宝云注册码系统教程

全代码解析怎么吧XScript项目接入到百宝云注册码系统中。

百宝云注册码系统提供了服务器和自动发卡,所以我们只需要介绍如何接入,服务器不需要作者操心

一、先安装百宝云注册码系统

http://www.baibaoyun.com/index.php?index/info&id=15

二、下载附件,复制main方法之前的代码,或者是直接复制下面的代码到项目里。代码如下:

--------------------------------------------------
-- 脚本名称: 我的软件Xs
-- 脚本描述: Xs版本的注册码系统V2接入示例
--------------------------------------------------

全局_注册码数据 = ""   -- 记录注册码的数据
全局_访问令牌=""       -- 记录软件的访问令牌,此数据由服务器返回
全局_项目名称 = ""     -- 记录项目的名称
全局_云应用Token = ""  -- 记录访问云应用的token数据
全局_验证次数 = 1
全局_错误信息 = ""     -- 记录错误信息
全局_机器编码 = string.sub(string.gsub(security.md5(systeminfo.udid()),"%D",""),3,3)..string.sub(string.gsub(security.md5(systeminfo.udid()),"%D",""),10,10)..string.sub(string.gsub(security.md5(systeminfo.udid()),"%D",""),-1,-1)..string.sub(string.gsub(security.md5(systeminfo.udid()),"%D",""),-5,-5)..string.sub(string.gsub(security.md5(systeminfo.udid()),"%D",""),-9,-9)..string.sub(string.gsub(security.md5(systeminfo.udid()),"%D",""),-14,-14)
全局_上次验证时间 = 0
全局_注册码剩余时间 = -1   -- 记录注册码的剩余时间
全局_软件版本号 = ""  -- 记录软件的版本号,用于自动更新
-----------------------------------------------
function decodeURI(s)
        s = string.gsub(s, '%%(%x%x)', function(h) return string.char(tonumber(h, 16)) end)
        return s
end
function encodeURI(s)
        s = string.gsub(s, "([^%w%.%- ])", function(c) return string.format("%%%02X", string.byte(c)) end)
        return string.gsub(s, " ", "+")
end

function 数据初始化(name, token, regcode, ver)
        if 全局_项目名称 == "" then
                全局_项目名称 = name
        end
        
        if 全局_云应用Token == "" then
                全局_云应用Token = token
        end
        
        if 全局_注册码数据 == "" then
                全局_注册码数据 = regcode
        end
        
        if 全局_软件版本号 == "" then
                全局_软件版本号 = ver
        end
end

-- 通信接口
function connectBBY(arg)
        Json字符串 = json.encode(arg)
        logcat ("Json字符串:" .. Json字符串)
        Json字符串 = encodeURI(Json字符串)
        params = "token=" .. 全局_云应用Token .. "&funparams=" .. Json字符串
        strUrl = "http://get.baibaoyun.com/cloudapi/cloudappapi"
        strGet= strUrl .. "?" .. params
        返回值, state = net.get(strGet)
        logcat(返回值)
        
        if state == 200 then
                全局_错误信息 = ""
                return 返回值
        end
        
        for i = 1 , 5 do
                返回值, state = net.get(strGet)
                logcat(返回值)
                if state == 200 then
                        全局_错误信息 = ""
                        return 返回值
                end
                
                sleep(1000)
        end
        全局_错误信息 = 返回值
        return 返回值
end

-- 获取注册码的剩余时间
function 获取注册码的剩余时间()
        if 全局_上次验证时间 == 0 then
                全局_上次验证时间 = os.time()
        end
        
        local 间隔s = os.difftime(os.time(), 全局_上次验证时间)
        if 全局_注册码剩余时间 <=0  and 间隔s > 180 then
                local command2 = {flag="查询注册码时间",机器码=全局_机器编码,注册码=全局_注册码数据,访问令牌=全局_访问令牌, 项目名称 = 全局_项目名称}</span>

 

复制好代码之后,我们继续来学习接口的使用。
首先,我们来看看示例里的代码接入步骤,之后来讲解示例里的代码步骤

-- 脚本入口
function main()
        -- 软件执行的第一时间调用这个方法,用来初始化重要数据
        数据初始化("test","728879a0c89c6b7b96f5609e0c19e603","28FE5FF74E97EC05BA5F223720551EEF","2.0.0.0")
        
        toast("current ver:".. 全局_软件版本号)
        -- 检查软件是否需要更新
        检查更新()
        
        -- 进行注册码的登录验证
        if 验证注册码() == false then
                toast("注册码登录失败,原因:"..全局_错误信息)
                xscript.stop()
        else
                -- 开启定时器进行注册码的时间验证操作。
                --setTrigger.timeLoop("180000", "获取注册码的剩余时间")
                setTrigger.timeLoop(1000, "获取注册码的剩余时间()")
        end
        
        local data = 获取自定义键值数据("key1")
        logcat(data)
        
        获取注册码的剩余时间()
        
        设置注册码备注("偶也~~~~")
        local bz = 获取注册码备注()
        logcat("注册码备注:"..bz)
        local gg = 获取项目公告()
        logcat("项目公告:"..gg)
        
        for i = 1 , 100 do
                sleep(500)
        end
end

第一步:初始化数据

调用封装好的方法:数据初始化()
调用这个方法的时候,需要传入项目名称、云应用token、注册码、版本号4个数据,机器码在初始化方法内部已经处理。推荐大家这样使用!

-- 软件执行的第一时间调用这个方法,用来初始化重要数据
        数据初始化("test","728879a0c89c6b7b96f5609e0c19e603","28FE5FF74E97EC05BA5F223720551EEF","2.0.0.0")

 第二步:检查软件是否需要更新

调用封装好的方法:检查更新()
通过初始化传入的版本号与服务器最新的版本号进行对比,如果服务器上的软件版本号比本地的版本号大,那么会执行更新操作。如果相等或者是小于本地版本号,那么不执行更新操作。

toast("current ver:".. 全局_软件版本号)
        -- 检查软件是否需要更新
        检查更新()

第三步:使用注册码登录软件

调用封装好的方法:验证注册码()
调用这个方法,将执行注册码的登录操作,登录成功,会返回正确的数据,数据格式为:成功标记|注册码剩余时间|访问令牌; 如果登录失败,会返回错误信息。
在这个示例代码里,登录失败,软件会停止执行。
登录成功,会开启一个定时器来检测注册码的剩余时间。

 -- 进行注册码的登录验证
        if 验证注册码() == false then
                toast("注册码登录失败,原因:"..全局_错误信息)
                xscript.stop()
        else
                -- 开启定时器进行注册码的时间验证操作。
                --setTrigger.timeLoop("180000", "获取注册码的剩余时间")
                setTrigger.timeLoop(1000, "获取注册码的剩余时间()")
        end

第四步:检测注册码的剩余时间或者是状态

调用封装好的方法:获取注册码的剩余时间()
这个方法是用来获取注册码的剩余时间的,只要注册码在正常使用中,就能获取到正确的剩余时间,如果注册码到期、冻结等等,那么都会返回对应的错误信息,可以参数具体代码。

-- 获取到注册码的剩余使用时间。
        获取注册码的剩余时间()

 

转载于:https://my.oschina.net/cgqz/blog/753300

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值