扣点 (action=deduct)
扣除用户点数。支持事务保护和幂等性,确保不会重复扣点。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 deduct |
| token | string | 是 | 登录令牌 |
| points | int | 是 | 要扣除的点数(必须大于0) |
| request_id | string | 强烈建议 | 请求唯一ID,用于幂等性保护,防止重复扣点 |
| machine_code | string | 建议 | 机器码,用于验证一致性 |
| timestamp | int | 是 | 时间戳 |
成功响应 (code=8)
| 字段名 | 类型 | 说明 |
| timestamp | int | 服务器时间戳 |
| points | int | 扣除后的剩余点数 |
| deducted_points | int | 本次扣除的点数 |
可能的错误码
| 错误码 | 说明 | 处理建议 |
| 8001 | 扣点参数错误 | 检查参数 |
| 8002 | token无效 | 重新登录 |
| 8003 | 用户不存在 | 重新登录 |
| 8004 | 机器码不匹配 | 可能被盗用 |
| 8010 | 点数不足 | 提示充值 |
| 8011 | 重复扣点请求 | 该request_id已处理过 |
强烈建议传入唯一的 request_id(如UUID),防止网络重试导致重复扣点。相同request_id的请求只会执行一次。
请求示例
action=deduct&machine_code=ABC123&points=10&request_id=uuid-12345×tamp=1700000000&token=eyJhbGciOiJIUzI1NiIs...
响应示例
{
"code": 8,
"msg": "扣点成功",
"timestamp": 1700000001,
"points": 90,
"deducted_points": 10
}