API DOCUMENTATION

G7S_Api_银商版本

API 接口文档

Base URL: /api 认证方式:Bearer Token(Sanctum) 所有请求/响应均为 Content-Type: application/json


目录


认证

1. 登录

GET / POST /api/login

无需认证。

请求参数

参数名 类型 必填 说明
username string 账号名
password string 登录密码

响应示例

成功 (200)

{
  "code": 200,
  "userinfo": {
    "AgentID": 1001,
    "AgentAccount": "agent01",
    "Score": 9999.00
  },
  "token": "1|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

失败 (422)

{
  "code": 422,
  "message": "Password error"
}
HTTP 状态码 code message 说明
200 200 登录成功
422 422 Account does not exist 账号不存在
422 422 Password error 密码错误
422 422 Account is frozen 账号已冻结

2. 退出登录

GET /api/logout

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

响应示例

成功 (200)

{
  "code": 200,
  "message": "success"
}

玩家管理

3. 创建玩家

POST /api/create_player

需要 Bearer Token 认证 同一账号名并发请求将被拒绝(幂等锁 3 秒)

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
account string 玩家账号,长度 6~24 位
password string 玩家密码,长度 6~24 位
recharge_amount integer 注册时同步充值金额(元),默认为 0

响应示例

成功 (200)

{
  "code": 200,
  "message": "success",
  "userinfo": {
    "account": "player001",
    "password": "123456"
  }
}

失败

HTTP 状态码 code message 说明
422 422 Player already exists for this account name 账号已存在
422 422 Score input error 充值金额有误
422 422 Insufficient score 代理积分余额不足
429 429 Duplicate request 重复请求(并发锁)
500 500 Internal Server Error. Something went wrong 服务器内部错误

4. 玩家积分变更(充值/兑换)

POST /api/change_score

需要 Bearer Token 认证 同一 user_id 并发请求将被拒绝(Redis 锁 3 秒)

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
user_id integer 玩家 UserID
type integer 操作类型:1 充值(默认),2 兑换
recharge_amount integer 操作金额(元),必须大于 0
remark string 备注,最大 512 字符

响应示例

成功 (200)

{
  "code": 200,
  "message": "success"
}

失败

HTTP 状态码 code message 说明
422 422 Exception operation, please try again 并发锁冲突,请稍后重试
422 422 Account does not exist 玩家不存在或无权限操作
422 422 Score input error 金额有误
422 422 Insufficient score 充值时代理余额不足 / 兑换时玩家积分不足
500 500 Internal Server Error. Something went wrong 服务器内部错误

5. 订单记录查询

POST /api/order_records

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
user_id integer 玩家 UserID
start_date string 查询开始日期,格式 Y-m-d,如 2024-01-01
end_date string 查询结束日期,格式 Y-m-d,须 >= start_date
type integer 记录类型:1 充值记录(默认),2 兑换记录
per_page integer 每页条数,可选值:102050100200

响应示例

成功 (200)

{
  "code": 200,
  "message": "success",
  "data": {
    "total": 100,
    "lists": [
      {
        "UserID": 10001,
        "SourceScore": 100.00,
        "ChangeScore": 50.00,
        "TargetScore": 150.00,
        "InsertTime": "2024-01-15 12:30:00",
        "OpID": 1001
      }
    ]
  }
}

字段说明

字段名 类型 说明
UserID int 玩家 ID
SourceScore float 变更前积分(元)
ChangeScore float 变更积分(元,正数充值/负数兑换)
TargetScore float 变更后积分(元)
InsertTime string 操作时间
OpID int 操作代理 ID

6. 游戏记录查询

POST /api/game_records

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
user_id integer 玩家 UserID
start_date string 查询开始日期,格式 Y-m-d,如 2024-01-01
end_date string 查询结束日期,格式 Y-m-d,须 >= start_date
per_page integer 每页条数,可选值:102050100200

响应示例

成功 (200)

{
  "code": 200,
  "message": "success",
  "data": {
    "total": 50,
    "lists": [
      {
        "UserID": 10001,
        "Accounts": "player001",
        "NickName": "player001",
        "Profit": 200,
        "Gain": 500,
        "Loss": 300,
        "StartTime": "2024-01-15 10:00:00",
        "EndTime": "2024-01-15 10:30:00",
        "scoreInfo": {
          "Score": 15000,
          "UserID": 10001
        }
      }
    ]
  }
}

字段说明

字段名 类型 说明
UserID int 玩家 ID
Accounts string 玩家账号
NickName string 玩家昵称
Profit int 盈利(积分,分为单位)
Gain int 赢分(积分,分为单位)
Loss int 输分(积分,分为单位)
StartTime string 游戏开始时间
EndTime string 游戏结束时间
scoreInfo object 当前积分信息

游戏

7. 游戏列表

GET /api/game_list

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

响应示例

成功 (200)

{
  "code": 200,
  "message": "success",
  "data": {
    "ip_list": ["192.168.1.1"],
    "slot": [
      [101, 1, [[100, 8000, 0, 1001]], 0]
    ],
    "chess": [
      [201, 2, [[200, 8001, 0, 1002]], 0]
    ]
  }
}

data 字段说明

字段名 说明
ip_list 服务器 IP 列表,游戏房间的 ServerAddr 以下标索引引用
其他分类键 各游戏类型分组,每条记录格式:[KindID, TypeID, [房间列表], MaintainStatus]

房间列表字段(数组索引对应):

索引 说明
0 MinEnterScore(最低入场积分)
1 ServerPort(服务器端口)
2 IP 索引(对应 ip_list 数组下标)
3 ServerID(服务器 ID)

失败 (500)

{
  "code": 500,
  "message": "Internal Server Error. Something went wrong",
  "data": []
}

8. 获取游戏链接

POST /api/get_game_url

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
user_id integer 玩家 UserID
game_id integer 游戏 KindID
back_url string 回调地址
lang string 语言,可选值:en(默认)、cnvnpt

响应示例

成功 (200)

{
  "code": 200,
  "message": "success",
  "game_url": "https://yoloh5.play8.cyou/play85/?UserID=10001&token=xxxx&ChannelID=10022&userGUID=xxxx&GameID=101&ServerID=1001&ServerAddr=192.168.1.1&serverPort=8000&lang=en&apiType=1"
}

失败

HTTP 状态码 code message 说明
422 422 Account does not exist 玩家不存在
422 422 Game not available 游戏房间不可用
500 500 Internal Server Error. Something went wrong 服务器内部错误

9. 踢出游戏中玩家

POST /api/kick_player

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
user_id integer 玩家 UserID
lang string 语言,可选值:en(默认)、cnvnpt

响应示例

成功 (200)

{
  "code": 200,
  "message": "success"
}

失败

HTTP 状态码 code message 说明
422 422 Account does not exist 玩家不存在
500 500 Internal Server Error. Something went wrong 服务器内部错误

10. 获取玩家余额

POST /api/get_player_balance

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
user_id integer 玩家 UserID
lang string 语言,可选值:en(默认)、cnvnpt

响应示例

成功 (200)

{
  "code": 200,
  "message": "success",
    "data": {
        "user_id": 1,
        "balance": 1,
        "query_time": "xxxx-xx-xx xx:xx:xx.xxxx"
    }
}

16. 重置玩家密码

POST /api/reset_player_password

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
user_id integer 玩家 UserID
new_password string 新密码(长度6-24)
lang string 语言,可选值:en(默认)、cnvnpt

响应示例

成功 (200)

{
  "code": 200,
  "message": "success"
}

代理管理

11. 获取代理余额

POST /api/get_agent_balance

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
agent_id integer 玩家 UserID
lang string 语言,可选值:en(默认)、cnvnpt

响应示例

成功 (200)

{
  "code": 200,
  "message": "success",
    "data": {
        "agent_id": 1,
        "balance": 1,
        "query_time": "xxxx-xx-xx xx:xx:xx.xxxx"
    }
}

12. 重置代理密码

POST /api/reset_agent_password

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
agent_id integer 代理ID
new_password string 新密码(长度6-24)
lang string 语言,可选值:en(默认)、cnvnpt

响应示例

成功 (200)

{
  "code": 200,
  "message": "success"
}

13. 创建代理

POST /api/create_agent

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
account string 账号(6-24位,必须包含数字和字母)
password string 密码(6-24位)
recharge_amount integer 充值金额
role string store或者distributor
lang string 语言,可选值:en(默认)、cnvnpt

响应示例

成功 (200)

{
    "code": 200,
    "message": "success",
    "userinfo": {
        "score": "xxx",
        "account": "xxxxxx",
        "password": "xxxxxx"
    }
}

14. 代理积分变更(充值/兑换)

POST /api/change_agent_score

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
agent_id integer 代理ID
type integer 1-充值 2-兑换
amount integer 金额
lang string 语言,可选值:en(默认)、cnvnpt

响应示例

成功 (200)

{
    "code": 200,
    "message": "success",
    "data": {
        "agent_id": 13654,
        "before_balance": 10,
        "change_amount": -10,
        "after_balance": 0
    }
}

通用错误码

HTTP 状态码 code 说明
200 200 请求成功
401 未认证,Token 无效或已过期
422 422 参数校验失败或业务逻辑错误
429 请求过于频繁(并发锁)
500 500 服务器内部错误

15. 代理订单记录查询

POST /api/change_agent_score

需要 Bearer Token 认证

请求头

Authorization: Bearer {token}

请求参数

参数名 类型 必填 说明
agent_id integer 代理ID
type integer 1-充值 2-兑换
start_date date 开始日期
end_date date 结束日期
per_page integer 每页显示条数
lang string 语言,可选值:en(默认)、cnvnpt

响应示例

成功 (200)

{
    "code": 200,
    "message": "success",
    "data": {
        "total": 2,
        "lists": [
            {
                "AgentID": 13654,
                "SourceScore": "10.00",
                "ChangeScore": "-10.00",
                "TargetScore": "0.00",
                "InsertTime": "2026-05-18 13:56:23",
                "OpID": 10102,
                "type": 2
            },
            {
                "AgentID": 13654,
                "SourceScore": "0.00",
                "ChangeScore": "10.00",
                "TargetScore": "10.00",
                "InsertTime": "2026-05-18 13:55:52",
                "OpID": 10102,
                "type": 1
            }
        ]
    }
}

通用错误码

HTTP 状态码 code 说明
200 200 请求成功
401 未认证,Token 无效或已过期
422 422 参数校验失败或业务逻辑错误
429 请求过于频繁(并发锁)
500 500 服务器内部错误

认证说明

/api/login 外,所有接口均需在请求头中携带 Token:

Authorization: Bearer {登录接口返回的 token}

Token 采用 Laravel Sanctum 实现,每次登录会删除旧 Token 并生成新 Token,同一账号不支持多端同时在线。