户端接口文档

1. 简介

介绍: 玄月验证是一款免费的自带发卡系统和收款系统的网络验证 采用的是当前主流的编程语言和数据库 后台采用golang(语言)+MongoDB(数据库)+Webscoket(协议) 是当前最流行的搭配 可用用各种语言的对接包括但不限于(c/c++ js python c# java golang 易语言 H5)等各种语言 具有高并发/高可用/大容量存储等特点

适用版本: v12

易语言教程 GO语言教程 Python教程 一键加验证教程

开发技术栈:
  1. 后端语言 :golang ---------------------------------->支持高并发高可用
  2. 数据库:MongoDB -------------------------------->支持数据库大规模写入和读取操作
  3. 传输协议:Websocket ----------------------------->数据传输实时性
  4. 服务器:Linux(Debian 11.0 ---------------------->稳定安全还奈操
  5. 网页端:ts+vue+element-plus+pipa----------->通用

 

为什么选择Websocket协议呢
  1. ws协议能有更好的跨域和墙的穿透能力
  2. 可以在没有防火墙的情况下在应用层比http协议 防CC攻击效果更加好 (ps:很多IP代理 只能代理HTTP协议)
  3. 在高并发的场景下ws协议比HTTP协议 性能更好 查询数据库次数更少 (ws的头部 比http的头部更加精简)
  4. ws协议可以在服务器端做更多的判断用来判断客户端的合法性 (http如果本地被干掉了心跳包 那就失去了对客户端的控制)
  5. ws协议比HTTP协议 有更好的实时性 ,可以随时服务器向客户端推送数据
  6. 在相同的服务器配置下,WebSocket 协议通常比 HTTP 协议 能承受更高的并发连接
  7. 交互速度更快,响应速度更快

 

常用功能介绍:

例如:注册赠送、绑机、转绑、多开限制、远程公告、远程变量、核心数据、黑名单管理、实时消息推送、在线用户管理、数量统计、账单核对、在线发卡、在线收款等

特点介绍:
传输安全超大并发技术数据库自动备份Linux 服务器
玄月验证采用动态加密传输字符流技术,可防止数据被监听和窃取,大大提高了安全可靠性因后台采用go语言开发,天然支持超高并发,能很好的后台数据库自动备份功能,一天一备份,可以有效防止因误删除数据,而造成重大损失Linux 系统是强大的系统,可以用最少的资源,换最大的工作效率,不仅安全可靠而且还十分稳定.
模块对接一键对接接口对接手机App管理
玄月验证支持模块,目前已提供易语言的接口模块和示例,可使用远程变量/核心数据/加入黑名单/设置用户配置信息等功能玄月验证支持一键加验证,提供两种模式选择 兼容模式支持x64带壳的程序,加完验证可继续加VMP壳子保护 注:能对接的绝不用一键玄月验证提供了详细的接口文档,可对接其他编程语言,保证了对接的灵活性玄月验证支持手机App管理,当电脑不在身边时可用App管理软件/卡密/用户,避免错失重要商机
会员版: 使用群主服务器

特点:

  1. 不用买服务器 简单方便 省去买服务器的钱
  2. 可以体验最新的功能
授权版:使用自己的服务器

特点:

  1. 支持内网穿透可用( NAS 旧电脑 工控机) 等一些硬件设备作为服务器
  2. 支持轻应用服务器 (最低配置要求 1h1g1m 可同时在线1000人)
  3. 支持IPv6 (使访问速度更快 效率更高 配合ddns 可自建服务器)
  4. 不怕因群主服务器被攻击而躺枪
  5. 无软件位和用户量的限制
  6. 数据存放在自己的服务器上 安全稳定
  7. 后台自动每天定时进行数据库备份 不用担心误删数据找不回来的情况
  8. 后台进程守护和开机自启 ->程序挂掉会自动拉起的功能和重启服务器自动开机自启
  9. 支持高并发,因GO语言天然支持高并发 可以支持更多的连接
容量说明:

删除软件/删除到期用户 可以恢复容量

  1. 运营授权 :可以自己运营软件 自己卖验证 除授权版外的会员(包括 白银会员 黄金会员 铂金会员)
  2. 端口转发:因群主服务器在国外导致个别地区访问不了 搭建端口转发 (用户->你的服务器->群主服务器) 通过你的服务器中转连接群主服务器
模式免费体验白银会员黄金会员铂金会员授权版永久授权运营授权
服务器群主服务器群主服务器群主服务器群主服务器自备服务器(Linux)自备服务器(Linux)自备服务器(Linux)
软件1个10个30个50个无限制无限制无限制
用户2个100个300个500个无限制无限制无限制
卡密无限制无限制无限制无限制无限制无限制无限制
远程变量无限制无限制无限制无限制无限制无限制无限制
防破强度困难困难困难困难困难困难困难
用户数据群主服务器群主服务器群主服务器群主服务器自己服务器自己服务器自己服务器
通信封包加密
云检测
云更新
维护升级
实时收款
技术指导
VMP授权生成
端口转发
直链下载
运营验证
售价0¥25¥/月30¥/月40¥/月388¥/年2800¥6800¥

2. 玄月验证接口使用说明

使用websoket协议连接服务器 ,发送规定的json加密数据 来与服务器进行交互,

因群主服务器的原因 国内可能存在部分地区屏蔽情况 ,可采用转发的方式 使用自己的服务器进行转发

3. WebSocket接口

群主免费服务器连接地址 : ws://msplock.vip:8810/api/user/ws?ExeID=xxx&DevID=xxxx

如果你购买了服务器后台 请填写自己的服务器后台地址: 如ws://xxxxxx:8810/api/user/ws?ExeID=xxx&DevID=xxxx 支持IPv6

通信封包加密规则:

接口通讯密钥(服务器自动下发)

提交数据加密:所有提交的数据发送:需通过RC4加密 才能与服务器通信

返回数据解密:所有返回的数据发送:需要通过RC4解密

服务器下发的数据均为 base64编码

注意: 连接服务器,服务器会自动下发接口加密的通讯密钥,需要使用 <<作者密钥>> 解密出接口的通讯密钥,之后使用新密钥进行加解密操作

需要将json 字符串进行utf-8 编码 在进行RC4加密 base64编码发送


3.1 连接地址说明

群主免费服务器连接地址 ws://msplock.vip:8810/api/user/ws?ExeID=xxx&DevID=xxxx

名称类型注释
ExeID文本型软件ID
DeviceID文本型设备ID
3.2 获取软件基本信息

var json = { "Type": "GetExeInfo" }

3.3 获取验证码

var json = { "Type": "GetCode" }

3.4 用户注册

var json = { "Type": "Register", "Data": { "Name": Name, "Pwd": Pwd, "Code": Code } }

名称类型注释
Name文本型用户名
Pwd文本型密码
Code文本型验证码
3.5 用户登录

var json = {"Type":"Login","Data":{"Name":Name,"Pwd":Pwd}}

名称类型注释
Name文本型用户名
Pwd文本型密码
3.6 卡密登录

var json = {"Type":"CarLogin","Data":{"Serial":Serial}}

名称类型注释
Serial文本型卡密
3.7 卡密充值

var json = {"Type":"UserPay","Data":{"Name":Name,"Serial":Serial}}

名称类型注释
Name文本型用户名
Serial文本型卡密
3.8 修改密码

提交数据::{"Type":"UpUserPwd","Data":{"Name":Name,"OldPwd":OldPwd,"NewPwd":NewPwd}}

名称类型注释
Name文本型用户名
OldPwd文本型旧密码
NewPwd文本型新密码
3.9 换绑

换绑成功 扣除用户到期时间

var json = {"Type":"BindDeviceID","Data":{"Name":Name,"Pwd":Pwd}}

名称类型注释
Name文本型用户名
Pwd文本型密码
3.10 加入设备黑名单

将用户状态 修改为禁用 并把设备加入黑名单中

var json = {"Type":"AddBlack","Data":{"Bak":Bak}}

名称类型注释
Bak文本型情况说明
3.11 获取用户信息

var json = {"Type":"GetUserInfo"}

3.12 设置用户配置信息

用于用户新设备下载配置文件

提交数据::{"Type":"SetUerConf","Data":{"Conf":Conf}}

名称类型注释
Conf文本型用户配置信息 如:用户头像/按键设置等
3.13 获取核心加密数据

var json = {"Type":"GetExeData"}

3.14 获取远程加密变量

var json ={"Type":"GetVariable","Data":{"Key":Key}}

名称类型注释
Key文本型键名称
3.15 支付_获取微信二维码链接和发卡链接

var json ={"Type":"GetAdminPay"}

3.16 支付_查询卡密

判断仓库里是否有对应类型的卡密 返回卡ID

var json ={"Type":"FindCarInfo","Data":{"CarType":CarType}}

名称类型注释
CarType整数型0=小时卡 1=天卡 2=周卡 3=月卡 4=季卡 5=半年卡 6=年卡 7=永久卡
3.17 支付_创建支付订单

创建支付宝订单 返回base64 图片二维码

var json ={"Type":"AliPayCreate","Data":{"CarID":CarID}}

名称类型注释
CarID文本型卡ID 由支付_查询卡密 获得
3.18 支付_是否到账

到账后由服务器自动推送 tag=CompletePayment 在接受事件里接受自己处理回调

返回卡密信息

3.19 支付_提卡

返回卡密信息

var json ={"Type":"PutCar","Data":{"BuillID":BuillID}}

名称类型注释
BuillID文本型支付宝订单号
3.20 主动心跳

必须在10分钟之内执行一次

var json ={"Type":"Ping","Data":{"Token":Token,"Key":key}}

名称类型注释
Token文本型(可空)加密数据
Key文本型(可空)加密密钥

token 组成

名称类型注释
ExeID文本型(可空)软件ID
DevID文本型(可空)设备ID
AdminID文本型(可空)作者密钥
Version文本型(可空)版本
ExeMD5文本型(可空)软件md5
CRCOld文本型(可空)CRC初始
CRCNew文本型(可空)CRC新
Time文本型(可空)时间戳
3.21 下线通知

服务器自动推送 tag=OffLine 在接受事件里自己处理(程序退出)

3.22 实时消息

服务器自动推送 tag=SendMsg 在接受事件里自己处理(程序展示实时消息)

3.23 扫码登陆

var json ={"Type":"QuickLogin"}

 

4.HTTP网页接口

4.1 GetCode 获取验证码-GET

/api/user/GetCode?DevKey=XXXXXX

名称类型注释
DevKey文本型校验码
4.2 GetExeInfo 获取软件信息-GET

/api/user/GetExeInfo?DevKey=XXXXXX

名称类型注释
DevKey文本型校验码
4.3 UserPay 用户充值-POST

/api/user/UserPay

名称类型注释
ExeID文本型软件ID
Name文本型用户名
Serial文本型卡密
4.4 UpUserPwd 更新用户密码-POST

/api/user/UpUserPwd

名称类型注释
ExeID文本型软件ID
Name文本型用户名
OldPwd文本型旧密码
NewPwd文本型新密码
ExeID文本型软件ID
4.5 BindDeviceID 解绑-POST

/api/user/BindDeviceID

名称类型注释
ExeID文本型软件ID
Name文本型用户名
Pwd文本型密码
ExeID文本型软件ID
4.6 CarLogin 卡密登录-POST

/api/user/CarLogin/api/user/CarLogin?DevKey=XXXXXX

名称类型注释
Serial文本型卡密
4.7 Login 账号登录-POST

/api/user/Login?DevKey=XXXXXX

名称类型注释
Name文本型用户名
Pwd文本型密码
4.8 Register 用户注册

/api/user/Register

名称类型注释
ExeID文本型软件ID
Name文本型用户名
Pwd文本型密码
Code文本型验证码
DevKey文本型检验码
4.9 FindCarInfo 获取卡密信息

/api/user/FindCarInfo?DevKey=XXXXXX

名称类型注释
ExeID文本型软件ID
TyCar整数型0-7 (0=小时卡 1=天卡 2=周卡 3=月卡 4=季卡 5=半年卡 6=年卡 7=永久卡)