C# winforms接入示例
首先,应当先配置我所截图的软件参数(软件参数可在软件列表的软件详情查找),配置完软件参数如下图所示:
客户端登录协议随意切换,Zone网络验证系统都能够支持!
1:初始化功能:
调用初始化代码:
ApiResponse m_ApiResponse = this.zoneHelper.GetSoftInfo();
初始化,获取软件的公告 新版本等.
返回结果如下:
{
"status": "200",
"message": "ClientGetInfo!",
"code": "60033",
"data": {
"Status": "200",
"Message": "发现新版本!",
"New_version": "1.1.2[新版本号]",
"New_notice": "ksahjhfjgukjwhe[新版本公告内容]",
"New_downloadurl": "http://www.asdsadads.cn[新版本下载地址]",
"New_downloadpwd": "12333[新版本下载密码]",
"SoftwareName": "CF活动助手",
"SoftwareVer": "1.0.0[当前版本号]",
"LoginType": "1",
"Notice": "[当前版本公告内容]"
}
}
代码如下
2:登录功能:
调用登录代码:
ApiResponse m_ApiResponse = this.zoneHelper.Login(卡密/账号密码);
进行登录操作,登录返回的m_ApiResponse在示例中有详细的解释
返回结果如下:
{
"status": "200",
"message": "Active Card!",
"code": "50015",
"data": {
"run_status": "success",
"Token": "pfiFFmBsDAekOfpUditH0jI1yTdxcNozQdgYrRuaDpnZ9qDjxAEDbo0nnPpp0RmzloVrDQrZsXwGh
NsNDe8oE7DjUCzdyGsNof4XZ633WA336wznr8PoQ9ct6I9bNoA1[用于其他请求]",
"Expiration_time": "1711539970527[时间消耗:返回到期时间]",
"Expiration_num": "756[点数消耗:返回剩余点数]",
"Expiration_time_HeartBeat": "1711539970527",
"Message": "登录成功!"
}
}
之后如下图判断是否登录成功
![](/demo/img/2024022215382700001.png)
登录成功必须将 this.zoneHelper 传递给你的子窗口程序,用于后面的心跳验证
3:心跳验证功能:
心跳验证必须你自己写一个线程/开启一个时钟,每隔一段时间重复调用即可
心跳代码:
ApiResponse m_ApiResponse = this.zoneHelper.HeartBeat();//心跳一次
心跳返回的 m_ApiResponse 示例中有详细的解释
返回结果如下:
{
"status": "200",
"message": "HeartBeat!",
"code": "50010",
"data": {
"run_status": "success",
"Status": "200",
"Expiration_time_HeartBeat": "1711539980634",
"Message": "心跳已续上"
}
}
心跳成功如下:
![](/demo/img/2024022215382700002.png)
心跳失败就可以执行强制关闭程序的命令就行了
4:扣点操作
扣点函数:
ApiResponse m_ApiResponse = this.zoneHelper.SubScore(点数);
同样返回的m_ApiResponse在示例中有详细的解释
返回结果如下:
{
"status": "200",
"message": "Sub Score Success!",
"code": "50017",
"data": {
"run_status": "success",
"Status": "200",
"Current_Score": "761[扣完剩余的点数-long类型]",
"Message": "Sub Score Success!"
}
}
扣点成功如下:
5:查询操作
查询函数:
ApiResponse m_ApiResponse = this.zoneHelper.QueryCard(卡密);
ApiResponse m_ApiResponse = this.zoneHelper.QueryAccount(账号);
同样返回的m_ApiResponse在示例中有详细的解释
返回结果如下:
{
"status": "200",
"message": "Get Card Info!",
"code": "50033",
"data": {
"run_status": "success[代表执行成功]",
"Account": "[若是账号查询则返回账号]",
"Password": "[若是账号查询则返回密码]",
"CardHead": "CCFF[卡密前缀]",
"Card": "KXJ3ASJRBKIAHCGP31X[卡密后缀]",
"CapacityForTime": "0[到期时间]",
"CapacityForNum": "392[剩余点数]",
"Use_time": "1709779156076[当前时间]",
"Status": "5
[卡密状态:0=未开通,1=未使用,2=已使用(在线),3=已禁用,4=已失效,5=已使用(离线),6=已使用(充值)]
[账号状态:0=正常,1=在线,2=离线,3=已禁用]",
"UsedMacCode": "6d36a34b2a5d5a63390dec0789506fe5[当前机器码]",
"UsedIp": "192.168.65.1[当前IP]",
"UsedMachineName": "DESKTOP-VHJG83C[当前机器名]",
"UsedMacCodeList": "af6299303ea26efdac3e7219aad1ee71,6d36a34b2a5d5a63390dec0789506fe5,
9d789c777be556e349e4ee8b460dd1c5,6d36a34b2a5d5a63390dec0789506fe5[使用过的历史机器码]",
"UsedIpList": "192.168.23.1,192.168.65.1,192.168.0.104,192.168.65.1[使用过的历史IP]",
"Use_timeList": "1709779156076[使用过的历史时间]",
"UsedMachineNameList": "LZONEL,DESKTOP-VHJG83C,LZONEL,DESKTOP-VHJG83C[使用过的历史机器名]",
"Unbind": "0[当前剩余解绑次数]"
}
}
查询成功如下:
6:解绑操作
解绑函数:
ApiResponse m_ApiResponse = this.zoneHelper.UnbindCard(卡密);
ApiResponse m_ApiResponse = this.zoneHelper.UnbindAccount(账号,密码);
同样返回的m_ApiResponse在示例中有详细的解释
返回结果如下:
{
"status": "200",
"message": "Unbind Success!",
"code": "50040",
"data": {
"run_status": "success[操作成功]",
"CapacityForTime": "0[剩余时间]",
"CapacityForNum": "99[剩余点数]",
"Unbind": "10[剩余解绑次数]",
"Message": "解绑成功!"
}
}
查询成功如下:
7:防破解功能说明
云变量:
你可以设置mode,来灵活限制是否需要用户登录成功过后获取到云变量
ApiResponse m_ApiResponse = this.zoneHelper.GetAntiVariableValue(云变量名称);
返回结果如下:
{
"status": "200",
"message": "success-token!",
"code": "70003",
"data": {
"run_status": "success",
"Status": "",
"value": "lzonel_999[这个是云变量的值]",
"Message": ""
}
}
代码如下:
云算法:
你可以设置mode,来灵活限制是否需要用户登录成功过后获取到云算法
ApiResponse m_ApiResponse = this.zoneHelper.GetAntiAlgorithmValue(云算法名称);
返回结果如下:
{
"status": "200",
"message": "Success-GET!",
"code": "70015",
"data": {
"run_status": "success",
"Status": "",
"value": "[你的云算法返回的值]",
"Message": ""
}
}
代码如下:
黑名单: