护卫盾网络验证系统
简介及特点
新手视频教程
1.开通授权并安装服务端
常见问题
服务器域名简介
开通授权及安装服务端
如何更新服务端
如何迁移服务端
显示未授权的故常排除
关于域名备案问题
核心库与WebAPI的区别
快速验证与常规验证的区别
Windows服务器无法显示验证码
什么是软件自定义常量
什么是用户自定义常量
开发文档
返回状态码
核心库函数说明
快速验证-初始化
快速验证-取软件自定义常量
快速验证-取软件自定义常量节点值
常规验证-字节流加载皮肤
常规验证-本地文件加载皮肤
常规验证-初始化
常规验证-取软件数据
常规验证-取软件版本数据
常规验证-取软件自定义常量节点值
常规验证-取验证码-字节流
常规验证-获取验证码-本地文件
常规验证-获取机器码
常规验证-注册通行证
常规验证-发送改密验证邮件
常规验证-修改密码
常规验证-账户充值
常规验证-加入黑名单
常规验证-用户登录
常规验证-获取用户数据
常规验证-取用户自定义常量节点值
常规验证-扣点
常规验证-扣时
常规验证-扣余额
常规验证-绑定用户数据
常规验证-绑定机器码
常规验证-调用远程PHP函数
常规验证-进程通信-取资料
常规验证-心跳
常规验证-退出登录
常规验证-载入内置窗口
常规验证-取云端独立自定义常量
其它函数-保存配置/读取配置
其它函数-获取核心库版本号
其它函数-获取出错信息
其它函数-计算机蓝屏
其它函数-获取MD5值
其它函数-取程序目录/取模块目录
其它函数-过滤HTML标签
WebAPI开发手册
WebAPI-组包规则
WebAPI-解包规则
WebAPI-数据校验
WebAPI-快速验证
WebAPI-常规验证-初始化
WebAPI-常规验证-取验证码
WebAPI-常规验证-用户登录
WebAPI-常规验证-心跳通信
WebAPI-常规验证-绑定用户数据
WebAPI-常规验证-绑定机器码
WebAPI-常规验证-注册通行证
WebAPI-常规验证-发送改密验证邮件
WebAPI-常规验证-修改密码
WebAPI-常规验证-账户充值
WebAPI-常规验证-扣点
WebAPI-常规验证-扣时
WebAPI-常规验证-扣余额
WebAPI-常规验证-调用远程PHP函数
WebAPI-常规验证-添加黑名单
WebAPI-常规验证-退出登录
WebAPI-常规验证-取云端独立自定义常量
如何调用自动更新程序
远程自定义函数
全局变量
数据库操作函数
新增记录
查询记录-多条记录
查询记录-单条记录
查询记录-多条记录(SQL)
查询记录-单条记录(SQL)
执行SQL语句
更新记录
删除记录
统计数量
其它函数
常用自定义函数分享
获取充值卡详情
获取某软件在线人数
批量生成测试通行证
获取用户扣点记录
制作示例程序免费领取授权
EUE文档 - 私有云文档管理系统
-
+
首页
WebAPI-常规验证-扣点
## 请求地址 `管理后台创建软件后获取`例:`http://demo.huweidun.cn/ac.php?s=8508c320cacb0634c0e241df2f3345fe` ## 公共提交参数 | 参数名 | 示例值 | 参数说明 | | ---- | ---- | ---- | | sid | <div style="width: 350px">00362ace-e994-411a-a9bf-f31f9177b6f3 | 软件SID,后台添加软件后获得。</div> | | uuid | d6fadd40-7267-4178-9b35-4c8ff61e0c07 | 封包安全码,每次必须变动,用于校验数据合法性方案之一。 | | t | 1630766594 | 客户端10位时间戳。 | | m1 | 590b782aa78cc3333c84eaa975ab9dc1 | 封包token(sid+key+t 拼接后取MD5值) | | m2 | b1dfd79c7cf0f5df8f77c12352af952c | 当前程序MD5值,如果开启校验MD5,则此值必填,可于程序运行时动态读取自身MD5值。 | | m3 | f50ebce838ae4b8e212578dd0bc23d9f | moduleMd5,购买授权后获得,如使用dll文件,请传入DLLMD5值,同时在"后台-系统-系统设置"中填写。 | | mcode | b4f43bb8-32dc-4d9a-9094-74e39cd61c37 | 客户端机器码(自行获取机器码,若机器码变动则会提示转绑[如果开启"绑定机器码"]) | | clientid | 36ebe72d-51d8-4252-b99c-37da152717ac | 客户端运行ID,此ID在软件退出之前不可变动,也就是每次启动都生成一个新的clientid,软件退出即作废。 | | webkey | 0241946994e62e289e4622b07154b961 | 通用秘钥(webKey),购买授权后获得。 | ## 公共返回参数 | 参数名 | 示例值 | 参数说明 | | ---- | ---- | ---- | | status | <div style="width: 350px">success</div> | success为正常,error为错误。 | | code | 200 | 200为正常,其它为错误,请参照<a href="/project-1/doc-6/" target="_blank">返回状态码</a>。 | | msg | 账号或密码错误. | 错误内容,无错误返回空,请参照<a href="/project-1/doc-6/" target="_blank">返回状态码</a>。 | | token | 324daaf6558361aa8f27d607c72262af | 返回封包token(提交封包中的m1+返回封包中t,拼接后取MD5值) | | t | 1630766888 | 封包时间戳 | | uuid | d6fadd40-7267-4178-9b35-4c8ff61e0c07 | 提交封包的UUID,原样返回。 | | result | 请查看不同函数说明 | 数据主体,Json格式,每个函数返回的数据不同,具体请参照对应函数说明。 | | result_token | 627b0d546ccb1d4896373305d74c6933 | 数据主体token,将数据以ASCII首字母递增排序,拼接键名与键值,拼接完毕后加上通信秘钥一起取MD5值。 | ## 传参说明 * 只需按规则拼接参数后加密传送即可。 * 封包内参数分为公共参数和函数参数。 * 公共参数为所有命令均需要提交的参数。 * 函数参数根据不同函数说明决定提交哪个参数,对应函数内均有说明。 ## 函数参数 `action=deductpoint&user=扣点账号&num=扣除点数&msg=扣点备注&interval=0` ## 提交示例 ``` { "action": "deductpoint", "clientid": "fd3c15de-ef05-461b-72bf-edb342ab118c", "interval": "0", "key": "GorgBdTnRDYxQGxKC9pYB42O933Pzxx4", "m1": "00f8812c19778ad923d043ba03069016", "m2": "d41d8cd98f00b204e9800998ecf8427e", "m3": "a0368bba05140b66e8172247da2650ab", "mcode": "de11dbe0-aff6-d5ff-0e38-76e51d30ee21", "msg": "测试扣点5点.", "num": "5", "sid": "c1162b61-fa71-4214-b66b-014ae6b0a99a", "t": "1630822224", "user": "user6", "uuid": "318cadca-e153-4104-7e15-9a5c137fc933", "webkey": "943e508419c4cd486ab894d3f7dbee50" } ``` ## 成功返回 ``` { "status": "success", "code": "200", "uuid": "318cadca-e153-4104-7e15-9a5c137fc933", "result": { "point": "495" }, "msg": "", "token": "62662eb5a798ca738b274191f13c3e5b", "t": 1630822223, "result_token": "0b66a18dc90a9f23429aded114fef037" } ``` ## 数据主体解析(result) `point` 点数余额。 ## 失败返回 一般失败原因为账户点数余额不足,具体请参照返回状态码。 ``` { "status": "error", "code": "225", "uuid": "c73684e4-fa74-4b87-8391-fa0c00e564d8", "result": null, "msg": "\u70b9\u6570\u4e0d\u8db3,\u6263\u70b9\u5931\u8d251.", "token": "08b5663c923cfd71efc2c2a845f94d2d", "t": 1630822360, "result_token": null } ``` ## 特别说明 - 如果未开启`记录扣点日志`则remarks和interval参数无效。每次调用该函数,均扣点。 - 如果已开启`记录扣点日志`,则只有相同的数量和备注,才会校验interval。 - 扣点示例(已开启`记录扣点日志`)下方演示了多项目穿插扣点。 | 扣点时间 | 扣除点数 | 扣点备注 | 扣点间隔 | 实际是否扣点 | 原因说明 | | ---- | ---- | ---- | ---- | ---- | ---- | | 2020年9月25日12:00:00 | 5 | 日功能费用 | 86400 | 是 | 限制86400秒内不重复扣点,本次为首次扣点,所以会扣除 | | 2020年9月25日14:00:00 | 5 | 日功能费用 | 86400 | 否 | 相同的点数与备注,且扣点间隔未超过86400秒,所以不会扣除 | | 2020年9月25日16:00:00 | 5 | 日功能费用 | 86400 | 否 | 相同的点数与备注,且扣点间隔未超过86400秒,所以不会扣除 | | 2020年9月25日17:00:00 | 1 | 日功能附加费用 | 86400 | 是 | 拥有不同的点数与备注,是新功能扣点,所以会扣除 | | 2020年9月25日18:00:00 | 5 | 日功能费用 | 86400 | 否 | 相同的点数与备注,且扣点间隔未超过86400秒,所以不会扣除 | | 2020年9月25日19:00:00 | 1 | 日功能附加费用 | 86400 | 否 |相同的点数与备注,且扣点间隔未超过86400秒,所以不会扣除 | | 2020年9月26日12:00:01 | 5 | 日功能费用 | 86400 | 是 | 虽然拥有相同的点数与备注,但间隔已超过86400秒,所以会扣除 | | 2020年9月26日17:00:01 | 1 | 日功能附加费用 | 86400 | 是 | 虽然拥有相同的点数与备注,但间隔已超过86400秒,所以会扣除 | ## 应用场景 - 记录扣点日志 用户群体比较计较的情况下,每一笔扣点都要看明细,如果开启记录扣点日志,用户可以在`用户中心`查看历史扣点记录,消费更加清晰。 - 互斥体 扣点函数中的`扣除点数`与`扣点备注`为检测重复扣点的互斥体,如果两项均相同,则校验是否在扣点间隔内,在间隔内,说明没到扣点时间,`不扣点`,如已超过间隔,则`扣点`。常应用于不需要重复扣点的场景,例如24小时内使用某功能,不重复扣点,那么间隔就是86400秒。 ## 应用举例 例子前提:微博养号软件,三个功能,1.注册账号(扣5点),2.登录账号(每号24小时内扣2点),发文(扣2点)。 1. 每注册一个账号`hwd_deductPoint(5,"注册扣点",0);`这里无需校验扣点间隔,执行一次扣5点。 2. 每登录一个账号`hwd_deductPoint(2,"登录扣点[操作的账号]",86400);`首次执行扣2点,24小时内同账号重复登陆,不重复扣点。 3. 每发布一条博文`hwd_deductPoint(2,"发文扣点",0);`这里无需校验扣点间隔,执行一次扣2点。 4. ps.第2步使用的互斥体为`登录扣点[操作的账号]`这里有个可变因素`操作的账号`,使用此方法可以保证每个操作的账号为独立的互斥体。
管理员
Sept. 5, 2021, 2:14 p.m.
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
冀ICP备19021017号-14
冀公网安备 13108202000785号
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码