录入时间:2017/2/11 20:11:24 最后更新:2017/2/23 17:05:27
目的:登陆验证、二次验证、高级API取自定义接口数据</p> 返回的数据=ks_cmd("check",单元集) 返回的数据: 可能是明文单元集,也可能是密文单元集,具体返回的有哪些单元,请参见SoftXLic.DLL接口 如果返回的数据单元集中的单元state的值不为100,表示验证失败,可以通过GD_(明文单元集,"message")获取详细的出错信息 1、调用 ks_cmd("check",单元集) 前必须调用一次ks_cmd("set",单元集)设置以下参数 1.1、用户模式 ks_cmd("set","<username>用户名</username><passowrd>登陆密码</password><clientid>客户端ID通道号</clientid>") 1.2、卡号模式 ks_cmd("set","<keystr>注册卡号</keystr><clientid>客户端ID通道号</clientid>") 1.3、可选设置 ks_cmd("set","<bdinfo>绑定信息</bdinfo>") 1.4、ks_cmd("set",单元集)具体说明请参见SoftXLic.DLL接口 2、登陆 2.1、按自己的算法生成一个随机字符串 randstr randstr=生成随机串() 2.2、加密的单元集数据=ks_cmd("check","<randomstr>randstr</randomstr>") 如果你传入了randomstr单元,返回的单元集数据里肯定也会有一个相同值的randomstr单元 可以利用此特性做一些验证效验 在服务端高级API里的自定义加密函数里可以加密randomstr的值,此时返回的randomstr单元值就不是原样返回了 需要注意的时,没有连接到服务器时,本地验证,该值还是原样返回的 2.3、解密返回的单元集数据,用算定义解密的包装函数FD_()使其变成明文,以便取出数据 明文单元集=FD_(加密的单元集数据) 2.4、对明文单元集中的单元数据进行读取和效验 3、二次验证 2.1、按自己的算法生成一个随机字符串 randstr randstr=生成随机串() 2.2、返回的数据=ks_cmd("check","<randomstr>randstr</randomstr>") 如果你传入了randomstr单元,返回的单元集数据里肯定也会有一个相同值的randomstr单元 可以利用此特性做一些验证效验 2.3、解密返回的数据,用算定义解密的包装函数FD_()使其变成明文,以便取出数据 2.3.1、二次验证时如果没有连接服务器,返回的数据是明文的单元集(randomstr返回的是原值) 2.3.2、只有在连接了服务器验证的情况下,返回的数据才是密文的单元集(如果你在服务端加密函数里对randomstr进行了加密运算,randomstr就不是原值) 2.3.3、二次验证并非都会连接服务器验证 2.3.4、要强制连接服务器进行二次验证,请用 返回的数据=ks_cmd("check","<randomstr>randstr</randomstr><connect>1</connect>") 2.3.5、明文单元集=FD_(返回的数据) 2.4、对明文单元集中的单元数据进行读取和效验 读取指定单元 GD_(明文单元集,单元名) 例如读取randomstr GD_(明文单元集,"randomstr") 效验方式因人而异,我这里就不写了 4、取服务端高级API函数接口的数据 4.1、取服务端高级API函数据口的数据时同时会进行二次验证,是强制连接服务器的 4.2、下边的两种调用方式都可以 4.2.1、加密的单元集=ks_cmd("check","<advapi>v_getb,100,200</advapi>") 4.2.1、加密的单元集=ks_cmd("check","<randomstr>randstr</randomstr><advapi>v_getb,100,200</advapi>") 4.3、解密返回的数据 4.3.1、用算定义解密的包装函数FD_()使其变成明文 明文单元集=FD_(加密的单元集) 4.3.2、如果你有传入randomstr,可以从返回值中取出randomstr进行效验 4.3.3、advapi返回的值=GD_(明文单元集,"advapi")