Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zw_game_sdk
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
CI / CD
CI / CD
流水线
日程表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
提交
问题看板
Open sidebar
zwwl
zw_game_sdk
Commits
f542546b
提交
f542546b
authored
6月 16, 2023
作者:
黄程泽
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'release' 到 'master'
分销方接入说明 查看合并请求 zwwl/zw_game_sdk!102
上级
1527d550
4ba78a5d
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
341 行增加
和
0 行删除
+341
-0
分销数据接入说明.md
分销数据接入说明.md
+341
-0
没有找到文件。
分销数据接入说明.md
0 → 100644
浏览文件 @
f542546b
## 1. 接入说明
## 1. 接入说明
### 1.1 术语表
> | 名称 | 说明 |
> | ------------ | ----------------------------- |
> | 游戏ID | 游戏包对应的唯一值 |
> | Sign | 唯一请求签名串 |
> | secret | 每个账号唯一个的签名秘钥 |
> | Account-Code | 平台账号唯一编码 【平台提供】 |
### 1.2 请求方式 和签名
POST 数据结构 JSON
Header数据需要加验证参数 Sign, Account-Code
a. 按照key ascll 码小到大排序,
b.拼接参数 string = "key1=value1&key2=value2" string = string + "secret=weqqeew";
c. 将string 转为32 位的md5数据, stringMd5 = string.md5();
d. 截取stringMd5 第三位到第18位, 一共 16位字符串, 之后转为大写, 为Sign
注意 如果参数中传有key 是 sign secret 的数据, 则需要先过滤该数据: 比如传参数为 {"sign":"231", "time":"2032-01-01"}
参与签名的数据为 {"time":"2032-01-01"}
### 1.3 注意事项
a. 请求接口频次限制 一个接口相同参数一分钟只能请求一次
b. 总接口限制 全部接口一分钟最多请求 120 次
c. 请求量限制 每页数量最多只能1000 条数据
## 2. 服务端接入
### 2.1 接口
##### 请求域名
> 【HTTPS】https://zmiao.zwnet.cn/api
###### 1.角色列表接口地址 /distributor/role/roleList
请求数据
| 参数名 | 是否必传 | 类型 | 备注 |
| -------------- | -------- | ------ | ---------------------------- |
| start_time | 是 | Date | 注册开始时间 |
| end_time | 是 | Date | 注册结束时间 |
| game_id | 否 | string | 创角游戏ID逗号隔开 "23,45" |
| seq_start_time | 否 | date | 染色开始时间 |
| seq_end_time | 否 | Date | 染色结束时间 |
返回数据
| 参数名 | 是否必传 | 类型 | 备注 |
| -------------- | -------- | ------ | --------------- |
| status_code | 是 | int | 错误码 200 成功 |
| msg | 是 | string | 返回文案 |
| data | 否 | object | 返回数据 |
| data.data | 否 | List | 列表数据 |
| Data.page_info | 否 | Object | 分页信息 |
Data.data 列表数据
| 参数名 | 是否必传 | 类型 | 备注 |
| ----------------- | -------- | -------- | --------------- |
| cp_role_id | 是 | string | cp角色ID |
| username | 是 | string | 账号 |
| channel_key | 是 | string | 渠道ID |
| distributor_id | 是 | int | 分销方ID |
| seq_time | 是 | datetime | 染色时间 |
| server_name | 是 | string | 原始区服 |
| role_name | 是 | string | 角色名称 |
| recharge_total | 是 | string | 充值金额 单位元 |
| combat_num | 是 | string | 战力 |
| role_level | 是 | string | 等级 |
| os | 是 | string | 操作系统 |
| create_time | 是 | Datetime | 创角时间 |
| last_login_time | 是 | Datetime | 最后活跃时间 |
| game_id | 是 | int | 创角游戏ID |
| main_game_id | 是 | string | 创角主游戏ID |
| channel_name | 是 | string | 渠道名称 |
| merge_server_name | 是 | string | 合服区服名 |
| distributor_name | 是 | string | 分销方名 |
| game_name | 是 | string | 创角游戏名 |
| main_game_name | 是 | string | 创角主游戏名 |
Data.page_info 分页数据
| 参数名 | 是否必传 | 类型 | 备注 |
| --------- | -------- | ---- | -------- |
| total | 是 | int | 总数 |
| page | 是 | int | 页码 |
| page_size | 是 | int | 每页数量 |
###### 2.账号列表接口地址 /distributor/member/memberList
请求数据
| 参数名 | 是否必传 | 类型 | 备注 |
| -------------- | -------- | ------ | ---------------------------- |
| start_time | 是 | Date | 注册开始时间 |
| end_time | 是 | Date | 注册结束时间 |
| game_id | 否 | string | 注册游戏ID逗号隔开 "23,45" |
| seq_start_time | 否 | date | 染色开始时间 |
| seq_end_time | 否 | Date | 染色结束时间 |
返回数据
| 参数名 | 是否必传 | 类型 | 备注 |
| -------------- | -------- | ------ | --------------- |
| status_code | 是 | int | 错误码 200 成功 |
| msg | 是 | string | 返回文案 |
| data | 否 | object | 返回数据 |
| data.data | 否 | List | 列表数据 |
| Data.page_info | 否 | Object | 分页信息 |
Data.data 列表数据
| 参数名 | 是否必传 | 类型 | 备注 |
| ---------------- | -------- | -------- | --------------- |
| username | 是 | string | 账号 |
| channel_key | 是 | string | 渠道ID |
| distributor_id | 是 | int | 分销方ID |
| seq_time | 是 | datetime | 染色时间 |
| reg_time | 是 | datetime | 注册时间 |
| recharge_total | 是 | string | 充值金额 单位元 |
| last_login_os | 是 | string | 登录系统 |
| game_id | 是 | int | 注册游戏ID |
| main_game_id | 是 | int | 注册主游戏ID |
| channel_name | 是 | string | 渠道名称 |
| distributor_name | 是 | string | 分销方名 |
| game_name | 是 | string | 注册游戏名 |
| main_game_name | 是 | string | 注册主游戏名 |
Data.page_info 分页数据
| 参数名 | 是否必传 | 类型 | 备注 |
| --------- | -------- | ---- | -------- |
| total | 是 | int | 总数 |
| page | 是 | int | 页码 |
| page_size | 是 | int | 每页数量 |
###### 3.订单列表接口地址 /distributor/order/orderList
请求数据
| 参数名 | 是否必传 | 类型 | 备注 |
| -------------- | -------- | ------ | ---------------------------- |
| start_time | 是 | Date | 注册开始时间 |
| end_time | 是 | Date | 注册结束时间 |
| game_id | 否 | string | 充值游戏ID逗号隔开 "23,45" |
| seq_start_time | 否 | date | 染色开始时间 |
| seq_end_time | 否 | Date | 染色结束时间 |
返回数据
| 参数名 | 是否必传 | 类型 | 备注 |
| -------------- | -------- | ------ | --------------- |
| status_code | 是 | int | 错误码 200 成功 |
| msg | 是 | string | 返回文案 |
| data | 否 | object | 返回数据 |
| data.data | 否 | List | 列表数据 |
| Data.page_info | 否 | Object | 分页信息 |
Data.data 列表数据
| 参数名 | 是否必传 | 类型 | 备注 |
| ---------------- | -------- | -------- | ----------------------- |
| username | 是 | string | 账号 |
| channel_key | 是 | string | 渠道ID |
| distributor_id | 是 | int | 分销方ID |
| seq_time | 是 | datetime | 染色时间 |
| order_time | 是 | datetime | 下单时间 |
| pay_time | 是 | datetime | 支付完成时间 |
| amount | 是 | string | 订单金额 单位元 |
| game_id | 是 | int | 充值游戏ID |
| main_game_id | 是 | int | 充值主游戏ID |
| channel_name | 是 | string | 渠道名称 |
| distributor_name | 是 | string | 分销方名 |
| game_name | 是 | string | 充值游戏名 (充值马甲包) |
| main_game_name | 是 | string | 充值主游戏名 |
| status | 是 | string | 支付状态 |
| pay_type | 是 | string | 充值方式 |
| order_id | 是 | string | 订单号 |
| server_name | 是 | string | 区服名 |
| server_id | 是 | string | 区服ID |
| cp_role_id | 是 | string | cp角色ID |
| role_name | 是 | string | 角色名称 |
Data.page_info 分页数据
| 参数名 | 是否必传 | 类型 | 备注 |
| --------- | -------- | ---- | -------- |
| total | 是 | int | 总数 |
| page | 是 | int | 页码 |
| page_size | 是 | int | 每页数量 |
###### 4.订单列表接口地址 /distributor/game/gameList
请求数据
| 参数名 | 是否必传 | 类型 | 备注 |
| ------ | -------- | ---- | ---- |
| | | | |
返回数据
| 参数名 | 是否必传 | 类型 | 备注 |
| ------------------- | -------- | ------ | --------------- |
| status_code | 是 | int | 错误码 200 成功 |
| msg | 是 | string | 返回文案 |
| data | 否 | List | 列表数据 |
Data 列表数据
| 参数名 | 是否必传 | 类型 | 备注 |
| ------ | -------- | ------ | ------ |
| name | 是 | string | 游戏ID |
| id | 是 | int | 游戏名 |
### 2.2 请求示例
```
shell
请求示例
curl
--location
--request
POST
'onezhangmiao.com:8081/distributor/role/roleList'
\
--header
'Account-Code: hfc1Z_OACy4='
\
--header
'Sign: 30696201debadda2c687675cace397bd'
\
--header
'Content-Type: application/json'
\
--data-raw
'{
"start_time":"2023-06-14",
"end_time":"2023-06-14",
"game_id":"288,360",
"seq_start_time":"",
"page_size":1
}'
json :
{
"start_time"
:
"2023-06-14"
,
"end_time"
:
"2023-06-14"
,
"game_id"
:
"288,360"
,
"seq_start_time"
:
""
,
"page_size"
:1
}
返回示例:
{
"status_code"
: 200,
"msg"
:
"查询成功"
,
"data"
:
{
"data"
:
[
{
"role_id"
:
"40037967"
,
"cp_role_id"
:
"73679790576496644"
,
"member_id"
:
"77242308"
,
"channel_key"
:
"zyou69933"
,
"distributor_id"
: 10,
"seq_time"
:
"2023-06-14 19:22:39"
,
"server_name"
:
"天命375区"
,
"zyou_server_id"
:
"35_41_1r_1475"
,
"role_name"
:
"商朝凉心"
,
"recharge_total"
:
"0.00"
,
"combat_num"
:
"110"
,
"role_level"
: 78,
"os"
:
"android"
,
"create_time"
:
"2023-06-14 23:59:58"
,
"last_login_time"
:
"2023-06-15 00:04:02"
,
"game_id"
: 288,
"main_game_id"
: 35,
"channel_name"
:
"爆靓-传奇龙神-安卓"
,
"merge_server_name"
:
""
,
"distributor_name"
:
"爆靓"
,
"game_name"
:
"领主-官包"
,
"main_game_name"
:
"古惑仔"
}
]
,
"page_info"
:
{
"total"
: 751,
"page"
: 1,
"page_size"
: 1
}
}
,
"extra"
:
{}
}
```
### 2.3 签名规则示例
> **签名秘钥**
>
> game_secret 为 16 位字符串,由 SDK 对接时提供,每一个游戏单独提供一个 game_secret
> **签名串**
>
> 请求参数(去除 sign)通过参数名作升序排序;如果参数值是一个对象,需要将该队形通过参数名升序排序后转换为 json 字符串;将排好序的参数与 game_secret 以一下格式进行字符串拼接(game_secret 放在最后)
>
> key1=value1&key2=value2&key3=value3&game_secret=secret
> **签名算法**
>
> 【md5】
>
> sign = md5(签名串) 之后截取转大写
> ##### 注意
>
> <u>转换 json 注意不要对中文进行转义</u>
##### 签名示例
```
php
<php
?
$
gameSecret =
"game_secret"
;
$
params =
["player_id"
=
>
1245, "game_id" => 14];
$signStr = '';
ksort($params, SORT_REGULAR);
foreach ($params as $key => $val) {
$signStr .= $key . '=' . $val . '
&';
}
$signStr .= 'secret=' . $gameSecret;
return strtoupper(substr(md5($signStr), 2, 16));
```
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论