Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zw_game_sdk
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
CI / CD
CI / CD
流水线
日程表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
提交
问题看板
Open sidebar
zwwl
zw_game_sdk
Commits
584b618a
提交
584b618a
authored
11月 22, 2025
作者:
闫永超
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'release' 到 'master'
服务端接口文档 查看合并请求 zwwl/zw_game_sdk!246
上级
62a682a4
30b91a31
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
1383 行增加
和
4 行删除
+1383
-4
三方提供接口的文档.md
三方提供接口的文档.md
+206
-0
企微客服绑定回调.md
企微客服绑定回调.md
+2
-2
微信小游戏游戏圈礼包-订阅消息外部token.md
微信小游戏游戏圈礼包-订阅消息外部token.md
+2
-2
服务端接口.md
服务端接口.md
+1173
-0
没有找到文件。
三方提供接口的文档.md
0 → 100644
浏览文件 @
584b618a
# 第三方接口说明
# 第三方接口说明
### 目录
[
签名规则1
](
#sigin1
)
1.1
[
发送邮件模块
](
#sec1.1
)
1.2
[
合区区服信息上报模块
](
#sec1.2
)
1.3
[
禁言角色接口
](
#sec1.3
)
1.4
[
解封角色禁言接口
](
#sec1.3
)
1.5
[
封角色、 账号 接口
](
#sec1.3
)
1.6
[
解封角色、 账号 接口
](
#sec1.3
)
1.7
[
跨服活动抓取模块
](
#sec1.4
)
##### 签名规则1<a name="sigin1"></a>
1.
POST 数据结构 JSON
2.
Header数据需要加验证参数 Authorization
3.
Authorization 将请求数据,
a. 按照key ascll 码小到大排序,
b.拼接参数 string = "key1=value1
&key2=value2";
c. 将string 转为32 位的md5数据, stringMd5 = string.md5();
d. 截取stringMd5 第二位到第17位, 一共 16位字符串, 之后转为大写, 为Authorization
### 1.1 发送邮件模块 <a name="sec1.1"></a>
打通掌游和游戏之间,发送邮件功能
请求数据
| 字段 | 是否必传 | 字段类型 | | |
|--------------|------|-----------|--------------------------| ---- |
| email_type | 是 | int | 邮件类型 : 1 个人邮件 2 全服邮件 | |
| platform | 是 | int | 平台 | |
| main_game_id | 是 | Int | 主游戏ID | |
| title | 是 | String | 标题 | |
| send_user | 是 | String | 发送人(指定为管理员) | |
| content | 是 | String | 内容 | |
| send_time | 是 | datetime | 发送时间 | |
| server_id | 是 | string | 原始区服id | |
| cp_role_id | 否 | string | cp角色id (个人邮件必传) | |
| role_name | 否 | string | 角色名 (个人邮件必传) | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- |--------------|
| code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 发送成功 |
### 1.2 合区区服信息上报模块 <a name="sec1.2"></a>
请求数据
| 字段 | 是否必传 | 字段类型 | | |
|-------------------------|------|-----|-----------------|------|
| merge_server_start_time | 是 | int | 合服开始时间(时间戳精确到秒) | |
| merge_server_end_time | 是 | int | 合服结束时间(时间戳精确到秒) | |
返回数据
| | 是否必要 | 字段类型 | |
|------------------------| -------- | -------- | ------------------------------------------------------------ |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
| data | 是 | Object
[
] | |
| data.main_server | 是 | String | 主服 | |
| data.deputy_server | 是 | String | 被合区服 | |
| data.merge_server | 是 | String | 合服后名称 | |
| data.main_game_id | 是 | int | 主游戏ID | |
| data.state | 是 | int | 当前合服状态 | |
| data.server_ids | 是 | String | 原始区服 (原始区服id-名称 逗号链接) 例:46838-无相838区,46842-无相842区 | |
| data.platform | 是 | int | 平台 | |
| data.merge_server_time | 是 | int | 合服时间(时间戳精确到秒) | |
### 1.3 禁言角色接口 <a name="sec1.3"></a>
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ---------------- | -------- | -------- | ----------------------------------------- | ---- |
| banned_type | 是 | int | 封禁方式 : 1 禁言角色 3 静默禁言 | |
| banned_time_type | 是 | Int | 封禁时间类型 : 1 小时 2 天 3 永久封禁 | |
| banned_time | 是 | Int | 封禁时间值: 例如 1 0 | |
| cp_role_id | 是 | String | 角色ID | |
| server_id | 是 | String | 角色注册区服ID | |
| game_id | 否 | int | 创角游戏ID | |
| zw_number | 是 | int | 1 2 3 4 例如掌玩1 | |
| player_id | 是 | string | 登录账号返回信息 唯一信息 确定账号 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 封禁成功 |
### 1.4 解封角色禁言接口 <a name="sec1.4"></a>
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ----------- | -------- | -------- | ----------------------------------------- | ---- |
| cp_role_id | 是 | String | 角色ID | |
| game_id | 否 | int | 创角游戏ID | |
| zw_number | 是 | int | 1 2 3 4 例如掌玩1 | |
| banned_type | 是 | int | 封禁方式 : 1 禁言角色 3 静默禁言 | |
| server_id | 是 | String | 角色注册区服ID | |
| player_id | 是 | string | 登录账号返回信息 唯一信息 确定账号 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | ----------------------------- |
| code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 解封角色禁言成功 |
### 1.5 封角色、 账号 接口 <a name="sec1.5"></a>
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ----------- | -------- | -------- | ------------------------------------ | ---- |
| cp_role_id | 是 | String | 角色ID | |
| banned_type | 是 | int | 1 封角色 2 封账号 默认封角色 | |
| server_id | 是 | String | 角色注册区服ID | |
| game_id | 否 | int | 创角游戏ID | |
| zw_number | 是 | int | 1 2 3 4 例如掌玩1 | |
| player_id | 是 | string | 登录账号返回信息 唯一信息 确定账号 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | ------------------------- |
| code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 封禁角色成功 |
### 1.6 封角色、 账号 接口 <a name="sec1.5"></a>
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ----------- | -------- | -------- | ------------------------------------ | ---- |
| cp_role_id | 是 | String | 角色ID | |
| banned_type | 是 | int | 1 封角色 2 封账号 默认封角色 | |
| game_id | 否 | int | 创角游戏ID | |
| zw_number | 是 | int | 1 2 3 4 例如掌玩1 | |
| server_id | 是 | String | 角色注册区服ID | |
| player_id | 是 | string | 登录账号返回信息 唯一信息 确定账号 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | ------------------------- |
| code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 解封角色成功 |
### 1.7 跨服活动抓取模块 <a name="sec1.7"></a>
请求数据
| 字段 | 是否必传 | 字段类型 | | |
|----------------|------|-----|------------------------------------------------|------|
| min_start_time | 是 | dateTime | 活动开始时间最小值筛选,筛选start_time字段 2025-10-29 00:00:00 | |
| max_start_time | 是 | dateTime | 活动开始时间最大值筛选,筛选start_time字段 2025-10-29 23:59:59 | |
| page | 是 | int | 页数 | |
| page_size | 是 | int | 每页数据条数 | |
返回数据
| | 是否必要 | 字段类型 | |
|------------------------| -------- | -------- |---------------------------------------------|
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
| data | 是 | Object
[
] | |
| data.platform | 是 | int | 平台 | |
| data.main_game_id | 是 | int | 主游戏ID | |
| data.group_id | 是 | String | 跨服组id | |
| data.server_id | 是 | Array | 区服ID 数据格式传数组,示例格式:
[
"13000","14000","15000"
]
| |
| data.name | 是 | String | 活动名称 | |
| data.start_time | 是 | dateTime | 活动开始时间 2025-10-29 09:00:00 | |
| data.end_time | 是 | dateTime | 活动结束时间 2025-10-29 12:00:00 | |
企微客服绑定回调.md
浏览文件 @
584b618a
v1.0
v1.0
...
@@ -12,7 +12,7 @@ v1.0
...
@@ -12,7 +12,7 @@ v1.0
3.
Authorization 将请求数据,
3.
Authorization 将请求数据,
a. 按照key ascll 码小到大排序,
a. 按照key ascll 码小到大排序,
b.拼接全部body参数 string = "
cp_role_id=value1&cp_account
=value2" + secert;
b.拼接全部body参数 string = "
key1=value1&key2
=value2" + secert;
c. 将string 转为32 位的md5数据, stringMd5 = string.md5();
c. 将string 转为32 位的md5数据, stringMd5 = string.md5();
d. 截取stringMd5 第二位到第17位, 一共 16位字符串, 之后转为大写, 为Authorization
d. 截取stringMd5 第二位到第17位, 一共 16位字符串, 之后转为大写, 为Authorization
...
...
微信小游戏游戏圈礼包-订阅消息外部token.md
浏览文件 @
584b618a
# 服务端
接口说明-v1.0.0
# 服务端
接口说明-v1.0.0
...
@@ -108,7 +108,7 @@
...
@@ -108,7 +108,7 @@
>
>
> 请求参数(去除 sign)通过参数名作升序排序;如果参数值是一个数组不参与签名,如果参数值是一个对象不参与签名, game_secret 以一下格式进行字符串拼接(game_secret 放在最后)
> 请求参数(去除 sign)通过参数名作升序排序;如果参数值是一个数组不参与签名,如果参数值是一个对象不参与签名, game_secret 以一下格式进行字符串拼接(game_secret 放在最后)
>
>
> key1=value1&key2=value2&key3=value3
&game_secret=
secret
> key1=value1&key2=value2&key3=value3
game_
secret
> **签名算法**
> **签名算法**
>
>
...
...
服务端接口.md
0 → 100644
浏览文件 @
584b618a
# 服务端接口说明
# 服务端接口说明
### 目录
1.[
接入说明
](
#sec1
)
1.1
[
术语表
](
#sec1.1
)
1.2
[
数据字典
](
#sec1.2
)
2.[
服务端接口
](
#sec2
)
2.1
[
接口规则
](
#sec2.1
)
请求域名
请求方式
请求格式
返回格式
状态说明
3.[
接口列表
](
#sec3
)
[
签名规则1
](
#sigin1
)
3.1.1
[
AI检查敏感词
](
#sec3.1.1
)
3.1.2
[
企微客服绑定回调接口
](
#sec3.1.2
)
3.1.3
[
灵符日志上报接口
](
#sec3.1.3
)
3.1.4
[
角色击杀日志上报接口
](
#sec3.1.4
)
3.1.5
[
boss击杀日志上报接口
](
#sec3.1.5
)
3.1.6
[
拍卖行上架上报
](
#sec3.1.6
)
3.1.7
[
玩家交易记录
](
#sec3.1.7
)
3.1.8
[
查询账号角色创角数接口
](
#sec3.1.8
)
3.1.9
[
跨服活动上报接口
](
#sec3.1.9
)
3.1.10
[
道具日志接口
](
#sec3.1.10
)
3.1.11
[
聊天记录风控接口
](
#sec3.1.11
)
[
签名规则2
](
#sigin2
)
3.2.1
[
AI敏感词聊天记录上报
](
#sec3.2.1
)
[
签名规则3
](
#sigin3
)
3.3.1
[
AI自动封禁上报接口
](
#sec3.3.1
)
[
签名规则4
](
#sigin4
)
3.4.1
[
接收前日全量角色数据接口
](
#sec3.4.1
)
[
签名规则5
](
#sigin4
)
3.5.1
[
获取小游戏token
](
#sec3.5.1
)
[
签名规则6
](
#sigin6
)
3.6.1
[
服务端角色上报(此接口和sdk只保留一个)
](
#sec3.6.1
)
3.6.2
[
是否允许创角
](
#sec3.6.2
)
3.6.3
[
聊天记录
](
#sec3.6.3
)
3.6.4
[
地图记录
](
#sec3.6.4
)
[
签名规则7
](
#sigin7
)
3.7.1
[
AI获取角色标签接口
](
#sec3.7.1
)
1.
接入说明
<a
name=
"sec1"
></a>
### 1.1 术语表<a name="sec1.1"></a>
> | 名称 | 说明 |
> | ---------- | ------------------------------------------------------------ |
> | CP | 游戏研发商。 |
> | SDK | 由平台方提供给游戏研发商,用于游戏接入平台登录,支付。 |
> | SDK 服务 | 由平台方开发,用于完成 SDK 的登录,支付流程,承接游戏服务端的数据。 |
> | 游戏服务 | 游戏研发商开发,为游戏提供服务。 |
> | 小游戏 | 游戏研发方商开发的微信小游戏。 |
> | H5游戏 | 游戏研发商开发的网页版游戏一般情况系与小游戏同游同服 |
> | 支付服务 | 由平台方调用支付服务,包括米大师,微信支付等 |
> | 小游戏入口 | 小游戏的入口链接,SDK 方默认为 pages/index/index(如果 CP 方不同需要提前与 SDK 沟通) |
### 1.2 数据字典<a name="sec1.2"></a>
> | 名称 | 说明 |
> |-------------|---------------------------------|
> | member_id | 用户在平台注册账号的唯一标识。 |
> | player_id | 用户在平台的一个游戏中的唯一标识。 |
> | user_token | 用户在平台登录的会话标识。 |
> | game_id | 游戏在平台的唯一标识。 |
> | game_secret | 平台方提供,游戏签名秘钥。 |
> | cp_order_id | 游戏研发商订单唯一标识 |
> | order_id | 平台方提供,订单唯一标识,与 cp_order_id 一一对应 |
> | secret | 平台方提供,游戏签名秘钥 与 game_secret 不同 |
## 2.服务端接入<a name="sec2"></a>
### 2.1 接口规则<a name="sec2.1"></a>
##### 请求域名
> 【HTTPS】zyouapi.wozhangwan.com
##### 请求方式
> 【POST】
##### 请求格式
> 【JSON】
##### 返回格式
> 【JSON】
##### 状态说明
| 状态码 | 说明 |
| ------ | -------- |
| 1 | 成功 |
| -1 | 错误 |
| -100 | 未登录 |
| -422 | 参数错误 |
## 3.接口列表<a name="sec3"></a>
##### 签名规则1<a name="sigin1"></a>
1.
POST 数据结构 JSON
2.
Header数据需要加验证参数 Authorization
3.
Authorization 将请求数据,
a. 按照key ascll 码小到大排序,
b.拼接参数 string = "key1=value1&key2=value2" + secert;
c. 将string 转为32 位的md5数据, stringMd5 = string.md5();
d. 截取stringMd5 第二位到第17位, 一共 16位字符串, 之后转为大写, 为Authorization
### 3.1.1 AI检查敏感词<a name="sec3.1.1"></a>
> 接口需要进行签名,签名方法详见[签名规则1](#sigin1)
接口地址:/server/chat/chatRickReport
请求数据
| 字段 | 是否必传 | 字段类型 | | |
|------------------|------|----------|-----------------------------------------|------|
| zw_app_id | 是 | String | 掌玩appId | |
| cp_role_id | 是 | String | 发言角色ID | |
| action_time | 是 | DateTime | 发送时间 | |
| context | 是 | String | 聊天内容 | |
| context_type | 是 | String | 文本类型,默认为'chat' 聊天 'nick' 昵称 'post' 帖子 | |
| channel_id | 否 | String | 渠道ID | |
| user_id | 否 | String | 用户ID | |
| ip | 否 | String | IP | |
| room_id | 否 | String | 聊天ID | |
| room_name | 否 | String | 聊天室名 | |
| server_id | 否 | String | 区服ID | |
| game_version | 否 | String | 游戏版本号 用于游戏区分不同版本 | |
| receive_id | 否 | String | 消息接受者 私聊场景下聊天对象角色ID | |
| main_game_id | 是 | Int | 主游戏ID | |
| open_server_time | 是 | DateTime | 开服时间 | |
| is_send_diting | 否 | Int | 是否推送谛听,默认为1-是,传参值:1-是,2-否 | |
返回数据
| | 是否必要 | 字段类型 | |
| --------------- | -------- | -------- | ------------------------------------------------------------ |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
| data | 是 | Object | |
| data.label | 是 | string | 标签 normal: 正常; politics: 政治敏感; terror: 暴恐违禁; porn: 文本色情; ad:恶意推广; curse: 咒骂敌视; nonsense: 刷屏灌水; customize: 用户自定义。 |
| data.suggestion | 是 | String | 是否通过 pass: 通过。 review: 建议人工审核。 block: 文本不合规,建议屏蔽。 |
```shell
请注意:room_id需要传聊天室id,我们需要根据不同的聊天类型设置不同的检测规则,让消息的拦截更智能和精准。
所需的聊天类型:
● 世界:1
● 行会:2
● 系统:3
● 地图:4
● 组队:5
● 跨服:8
● 个人:100
数据传输内容
● 聊天审核:在玩家发送聊天时, 调用审核接口,其中context为聊天内容 context_type设置为 chat
● 昵称审核:在玩家设置昵称或更改昵称时,调用审核接口, 其中context为待审核文本(昵称名), context_type设置为 nick, 昵称审核时若无角色ID(cp_role_id), 则不传cp_role_id字段或传空字符串, 注意不要传0
● 行会公告审核:在玩家设置行会公告时,调用审核接口,其中context为待审核文本(公告内容), context_type设置为post
● 行会昵称审核:在玩家设置行会昵称时,调用审核接口,其中context为待审核文本(行会昵称名), context_type设置为nick
● 区服审核:当调用审核服务时, 接口传输增加一个字段,字段名为server_id 内容为区服,类型为字符串
返回结果处理
● 接口返回结果中 suggestion 为pass则允许发送该聊天 为block或review均拦截
```
### 3.1.2 企微客服绑定回调接口<a name="sec3.1.2"></a>
> 接口需要进行签名,签名方法详见[签名规则1](#sigin1)
/server/customer_sdk/bindCallback
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ---------------- | -------- | -------- | ----------------------------------------- | ---- |
| corp_id | 是 | String | 企微主体ID | |
| corp_name | 是 | String | 企微主体名 | |
| user_id | 是 | String | 企微用户ID | |
| corp_customer_id | 是 | String | 企微客服号ID | |
| corp_customer_name | 是 | String | 企微客服号名 | |
| game_id | 是 | Int | 游戏ID | |
| main_game_id | 是 | String | 主游戏ID | |
| u_id | 是 | int | 账号ID | |
| timestamp | 是 | int | 时间戳 | | | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
### 3.1.3 灵符日志上报接口<a name="sec3.1.3"></a>
> 接口需要进行签名,签名方法详见[签名规则1](#sigin1)
/server/magic/magicReport
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ---------------- | -------- | -------- |--------------------------| ---- |
| zw_app_id | 是 | String | app_id | |
| cp_role_id | 是 | String | cp角色ID | |
| role_name | 是 | String | 角色名称 | |
| server_id | 是 | String | 区服ID | |
| server_name | 是 | String | 区服名称 | |
| cp_account | 是 | String | 用户ID | |
| action_time | 是 | dateTime | 发生时间 2024-05-08 15:00:00 | |
| behavior | 是 | String | 行为 | |
| variation | 是 | String | 改变量 | |
| remaining | 是 | String | 剩余量 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 操作成功 |
### 3.1.4 角色击杀日志上报接口<a name="sec3.1.4"></a>
> 接口需要进行签名,签名方法详见[签名规则1](#sigin1)
/server/attack/attackReport
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ---------------- | -------- | -------- | ----------------------------------------- | ---- |
| zw_app_id | 是 | String | app_id | |
| cp_role_id | 是 | String | 被击杀杀角色ID | |
| server_id | 是 | String | 区服ID | |
| server_name | 是 | String | 区服名称 | |
| cp_account | 是 | String | 用户ID | |
| action_time | 是 | dateTime | 击杀时间 2024-05-08 15:00:00 | |
| source | 是 | String | 击杀来源 | |
| source_cp_role_id | 是 | String | 击杀人角色ID 击杀是玩家的时候必传击杀人角色ID | |
| main_game_id | 是 | int | 主游戏ID | |
| map | 是 | String | 击杀地图 | |
| drop | 是 | String | 击杀掉落 | |
|
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
### 3.1.5 boss击杀日志上报接口<a name="sec3.1.5"></a>
> 接口需要进行签名,签名方法详见[签名规则1](#sigin1)
接受boss击杀日志数据
/server/attack/bossAttackReport
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ---------------- | -------- | -------- | ----------------------------------------- | ---- |
| zw_app_id | 是 | String | app_id | |
| cp_role_id | 是 | String |击杀角色ID | |
| server_id | 是 | String | 区服ID | |
| server_name | 是 | String | 区服名称 | |
| cp_account | 是 | String | 用户ID | |
| action_time | 是 | dateTime | 击杀时间 2024-05-08 15:00:00 | |
| role_name | 是 | String | 角色名 | |
| boss_name | 是 | String | 被击杀boss 名称 | |
| main_game_id | 是 | int | 主游戏ID | |
| map | 是 | String | 击杀地图 | |
| type | 是 | int | 击杀者 1 参与者 2 | |
|
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
### 3.1.6 拍卖行上架上报接口<a name="sec3.1.6"></a>
> 接口需要进行签名,签名方法详见[签名规则1](#sigin1)
拍卖行上架上报
/server/game_auction_house/report
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ---------------- |------| -------- |------------------------| ---- |
| zw_app_id | 是 | String | app_id | |
| cp_role_id | 是 | String | 角色ID | |
| server_id | 是 | String | 区服ID | |
| server_name | 是 | String | 区服名称 | |
| cp_account | 是 | String | 用户ID | |
| action_time | 是 | dateTime | 交易时间 2024-05-08 15:00:00 | |
| role_name | 是 | String | 角色名 | |
| good_name | 是 | String | 上架物品名称 | |
| good_num | 是 | int | 上架物品数量 | |
| auction_prop_num | 否 | int | 消耗道具数量 1竞拍价 | |
| auction_prop_name | 否 | String | 消耗道具名称 1竞拍价 | |
| prop_name | 否 | String | 消耗道具名称 一口价 | |
| prop_num | 否 | int | 消耗道具数量 一口价 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
### 3.1.7 玩家交易记录接口<a name="sec3.1.7"></a>
> 接口需要进行签名,签名方法详见[签名规则1](#sigin1)
玩家交易记录上报
/server/game_auction_house/trade
请求数据
| 字段 | 是否必传 | 字段类型 | | |
|------------------| -------- | -------- |-------------------------| ---- |
| zw_app_id | 是 | String | app_id | |
| cp_role_id | 是 | String | cp角色id 1 | |
| server_id | 是 | String | 区服ID | |
| server_name | 是 | String | 区服名称 | |
| cp_account | 是 | String | 用户id 1 | |
| cp_account_two | 是 | String | 用户id 2 | |
| action_time | 是 | dateTime | 交易时间 2024-05-08 15:00:00 | |
| role_name | 是 | String | 角色名 1 | |
| trade_role_name | 是 | String | 角色名 2 | |
| trade_cp_role_id | 是 | String | cp角色id 2 | |
| good_name | 是 | String | 物品名称1 多个逗号隔开 | |
| good_name_two | 是 | String | 物品名称2 多个逗号隔开 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
### 3.1.8 查询账号角色创角数接口<a name="sec3.1.8"></a>
> 接口需要进行签名,签名方法详见[签名规则1](#sigin1)
查询账号角色创角数
/server/role/getMemberRoleNum
请求数据
| 字段 | 是否必传 | 字段类型 | | |
|------------------| -------- | -------- |-----------------------------------------| ---- |
| member_id | 是 | String | 账号ID | |
返回数据
| | 是否必要 | 字段类型 | |
|---------------| -------- |--------|---------------------------------------------------|
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
| data | 是 | Object | |
| data.role_num | 是 | int | 账号角色创角数 |
### 3.1.9 跨服活动上报接口<a name="sec3.1.9"></a>
> 接口需要进行签名,签名方法详见[签名规则1](#sigin1)
> server_id字段是数组,不需要放到签名生成的参数里。签名只需要传zw_app_id,group_id,name,start_time,end_time这几个参数;
/server/gameCrossZoneActivity/activityReport
请求数据
| 字段 | 是否必传 | 字段类型 | | |
|-------------------| -------- | -------- |-------------------------------------------------------------------------------------------------------------------------------| ---- |
| zw_app_id | 是 | String | app_id | |
| group_id | 是 | String | 跨服组id | |
| server_id | 是 | Array
<String>
| 区服ID 数据格式传数组,示例格式:
[
"13000","14000","15000"
]
<br/>
生成签名的时候不要把server_id参数放进去,只需要放zw_app_id,group_id,name,start_time,end_time这几个参数进去生成 | |
| name | 是 | String | 活动名称 | |
| start_time | 是 | dateTime | 活动开始时间 2024-08-29 09:00:00 | |
| end_time | 是 | dateTime | 活动结束时间 2024-08-31 12:00:00 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- |--------------|
| status_code | 是 | int | 1 成功 -1 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
### 3.1.10 道具日志接口<a name="sec3.1.10"></a>
> 接口需要进行签名,签名方法详见[签名规则1](#sigin1)
接受道具日志数据
/server/prop/reportLog
请求数据
| 字段 | 是否必传 | 字段类型 | | |
|---------------------|------|----------|--------------------------|------|
| zw_app_id | 是 | String | app_id | |
| cp_account | 是 | String | 用户ID | |
| cp_role_id | 是 | String | 角色ID | |
| role_name | 否 | String | 角色名称 | |
| server_id | 否 | String | 区服ID | |
| server_name | 否 | String | 区服名称 | |
| recharge_total | 否 | Int | 累计充值(单位:分) | |
| week_recharge_total | 否 | Int | 周充值(单位:分) | |
| prop_id | 否 | String | 道具id | |
| prop_name | 否 | String | 道具名 | |
| special_prop_name | 否 | String | 特殊道具名 | |
| amount | 否 | Int | 收入支出金额(单位:分) | |
| prop_num | 否 | String | 道具数量 | |
| prop_remain_num | 否 | Int | 道具剩余数量 | |
| source | 否 | String | 来源 | |
| action_time | 否 | dateTime | 发生时间 2024-05-08 15:00:00 | |
|
返回数据
| | 是否必要 | 字段类型 | |
|-------------|------|--------|--------------|
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
### 3.1.11 聊天记录风控接口<a name="sec3.1.11"></a>
> 接口需要进行签名,签名方法详见[签名规则1](#sigin1)
接受风控数据
/server/chat/rickReport
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ---------------- | -------- | -------- | ----------------------------------------- | ---- |
| main_game_name | 是 | String | 主游戏名称 | |
| cp_role_id | 是 | String | 角色ID | |
| server_id | 是 | String | 区服ID | |
| cp_account | 是 | String | 用户ID | |
| action_time | 是 | dateTime | 发送时间 | |
| content | 是 | String | 聊天内容 | |
| context | 否 | String | 上下文检索 | |
| risk_text | 否 | String | 风控类型 | |
| handle_text | 否 | String | 处理结果 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
##### 签名规则2<a name="sigin2"></a>
1.
POST 数据结构 JSON
2.
Header数据需要加验证参数 Authorization
3.
Authorization 将请求数据,
b.拼接参数 string = "date=yyyy-mm-dd(例如:2024-11-19)" + secert;
c. 将string 转为32 位的md5数据, stringMd5 = string.md5();
d. 截取stringMd5 第二位到第17位, 一共 16位字符串, 之后转为大写, 为Authorization
### 3.2.1 AI敏感词聊天记录上报接口<a name="sec3.2.1"></a>
> 接口需要进行签名,签名方法详见[签名规则2](#sigin2)
定时同步匹配到敏感词的聊天记录
/server/chat/chatSensitiveReport
请求数据
| 字段 | 是否必传 | 字段类型 | | |
|-------------------|------|----------|---------------------|---------------------|
| token | 是 | String | 谛听token | data里面只传该token下面的数据 | |
| data | 是 | Object
[
] | 传输具体数据 | 一次最多1000条 | | |
| data.log_id | 是 | String | 记录唯一id | | | |
| data.role_id | 是 | String | 角色ID | | | |
| data.action_time | 是 | dateTime | 发送时间 | | | |
| data.context | 是 | String | 聊天内容 | | | |
| data.context_type | 否 | String | 文本类型 | | | |
| data.channel_id | 否 | String | 渠道ID | |
| data.user_id | 否 | String | 用户ID | |
| data.ip | 否 | String | IP | |
| data.room_id | 是 | String | 聊天ID | | | |
| data.room_name | 否 | String | 聊天室名 | | | |
| data.area | 是 | String | 区服ID | | | |
| data.label | 是 | String | 标签 | | | |
| data.receive_id | 否 | String | 消息接受者 私聊场景下聊天对象角色ID | | | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
```shell
```
##### 签名规则3<a name="sigin3"></a>
1.
POST 数据结构 JSON
2.
Header数据需要加验证参数 Authorization
3.
Authorization 将请求数据,
a. 按照key ascll 码小到大排序,
b.拼接参数 string = "cp_role_id=value1&cp_account=value2&time=当天的年月日date('Y-m-d')" + secert;
c. 将string 转为32 位的md5数据, stringMd5 = string.md5();
d. 截取stringMd5 第二位到第17位, 一共 16位字符串, 之后转为大写, 为Authorization
### 3.3.1 AI自动封禁上报接口<a name="sec3.3.1"></a>
> 接口需要进行签名,签名方法详见[签名规则3](#sigin3)
接受AI自动封禁数据
/server/chat/bannedReport
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ---------------- | -------- | -------- | ----------------------------------------- | ---- |
| main_game_name | 是 | String | 主游戏名称 | |
| cp_role_id | 是 | String | 角色ID | |
| server_id | 是 | String | 区服ID | |
| cp_account | 是 | String | 用户ID | |
| action_time | 是 | dateTime | 发送时间 | |
| banned_time_type | 是 | Int | 封禁时间单位 1小时2天3永久封禁4分钟 | |
| banned_time | 是 | String | 封禁时间 | |
| banned | 是 | Object | 封禁详情 | |
| banned.project | 是 | String | 所属项目 | | | |
| banned.cp_role_id | 是 | String | 角色id | | | |
| banned.list_type | 是 | String | 名单类型 | | | |
| banned.current_hit | 是 | String | 当前命中 | | | |
| banned.hit_total | 是 | String | 累计命中 | | | |
| banned.release_time | 是 | dateTime | 释放时间 | | | |
| banned.handel_user | 是 | String | 操作用户 | | | |
| banned.remark | 是 | String | 备注信息 | | | |
| banned.hit | 是 | Array | 命中统计 | | | |
| banned.hit.content | 是 | String | 命中文本 | | | |
| banned.hit.type | 是 | String | 命中类型 | | | |
| banned.hit.key | 是 | String | 关键字 | | | |
| banned.hit.time | 是 | dateTime | 时间 | | | | | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
##### 签名规则4<a name="sigin4"></a>
1.
POST 数据结构 JSON
2.
Header数据需要加验证参数 Authorization
3.
Authorization 将请求数据,
a. 按照key ascll 码小到大排序,
b. 拼接参数 string = "main_game_id=value&time=当天的年月日date('Y-m-d')" + secert;
c. 将string 转为32 位的md5数据, stringMd5 = string.md5();
d. 截取stringMd5 第二位到第17位, 一共 16位字符串, 之后转为大写,
### 3.4.1接收前日全量角色数据接口<a name="sec3.4.1"></a>
> 接口需要进行签名,签名方法详见[签名规则4](#sigin4)
接收前日全量角色数据
/server/role/completeRole
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ---------------- | -------- | -------- | ----------------------------------------- | ---- |
| main_game_id | 是 | Int | 提供对接唯一ID | |
| role | 是 | Array | | |
| role.cp_role_id | 是 | String | CP角色ID | |
| role.server_id | 是 | String | 区服ID | |
| role.cp_account | 是 | String | 用户ID | |
| role.server_name | 是 | String | 区服名 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
```
shell
postman 示例 :
curl --location --request POST '替换域名/server/role/completeRole'
\
--header 'auth-id: 4155'
\
--header 'User-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ6eW91Lndvemhhbmd3YW4uY29tIiwiYXVkIjoienlvdS53b3poYW5nd2FuLmNvbSIsImlhdCI6MTY4NDc1NTYyMCwiZGF0YSI6eyJpZCI6IjcwMTg4MjY3IiwiZ2FtZV9pZCI6IjI1MSIsInBsYXllcl9pZCI6IjcwMzc4NzMwIn19.QtGmjmJXTQPHQMspzosBbvJnadoKQ3-cXM-ePFLXOe0#251'
\
--header 'Version: 1.0'
\
--header 'Equipment: yttt'
\
--header 'Game-Id: 4'
\
--header 'Authorization: 5A9F33CBC6F680C5'
\
--header 'Content-Type: application/json'
\
--data-raw '{
"main_game_id": 38,
"role":
[
{
"cp_account": "200_115675561",
"cp_role_id": "92252757087850498",
"server_id": 1983,
"role_name": "你好",
"server_name": "扶摇983服"
}
]
}'
```
##### 签名规则5<a name="sigin5"></a>
> **签名秘钥**
>
> game_secret 为 16 位字符串,由 SDK 对接时提供,每一个游戏单独提供一个 game_secret
> **签名串**
>
> 请求参数(去除 sign)通过参数名作升序排序;如果参数值是一个数组不参与签名,如果参数值是一个对象不参与签名, game_secret 以一下格式进行字符串拼接(game_secret 放在最后)
>
> key1=value1&key2=value2&key3=value3game_secret
> **签名算法**
>
> 【md5】
>
> sign = md5(签名串)
> ##### 注意
>
> <u>如果参数值是一个对象,不参与签名;</u>
>
> <u>转换 json 注意不要对中文进行转义</u>
>
> <u>如果参数值是一个数组不参与签名</u>
##### 签名示例
```
php
<php?
$gameSecret = "game_secret";
$params =
[
"player_id" => 1245, "game_id" => 14
]
;
$signStr = '';
ksort($params, SORT_REGULAR);
foreach ($params as $key => $val) {
if (is_array($val)) {
continue;
}
$signStr .= $key . '=' . $val . '
&';
}
$signStr .= 'game_secret=' . $gameSecret;
$sign = md5($signStr);
```
### 3.5.1获取小游戏token接口<a name="sec3.5.1"></a>
> 接口需要进行签名,签名方法详见[签名规则5](#sigin5)
游戏方通过服务端获取小游戏的 token SDK 服务器;
/server/game/token
##### 请求参数
> **Headers**:
>
> | 参数 | 必选 | 参数值 | 说明 |
> | ------------ | ---- | ---------------- | ---- |
> | Content-Type | true | application/json | |
> **Body:**
>
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | :----------------------------------------------------------- | :---- | :----- | :----- | :--------------------------------------------------------- |
> | game_id | true | Int | - | 游戏的game_id, 角色当前游戏ID |
> | dateTime | true | String | - | 当前时间 2024-01-01 12:22:20 |
> | sign | true | String | - | 签名 |
##### 返回参数
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | ----------- | ---- | ------ | ------ | -------- |
> | status_code | true | Int | - | 状态码 |
> | msg | true | STRING | - | 返回信息 |
> | data | true | array | | |
> | data.token | true | string | | |
##### 签名规则6<a name="sigin6"></a>
> **签名秘钥**
>
> 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>
>
> <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) {
if (is_array($val)) {
ksrot($val, SORT_REGULAR); //对对象参数进行排序
$val = json_encode($val, JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);
}
$signStr .= $key . '=' . $val . '
&';
}
$signStr .= 'game_secret=' . $gameSecret;
$sign = md5($signStr);
```
### 3.6.1服务端角色上报(此接口和sdk只保留一个)<a name="sec3.6.1"></a>
> 接口需要进行签名,签名方法详见[签名规则6](#sigin6)
游戏方通过服务端上报游戏角色信息到 SDK 服务器
/server/role/serverReportV2
##### 请求参数
> **Headers**:
>
> | 参数 | 必选 | 参数值 | 说明 |
> | ------------ | ---- | ---------------- | ---- |
> | Content-Type | true | application/json | |
> **Body:**
>
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | :----------------------------------------------------------- | :---- | :----- | :----- | :--------------------------------------------------------- |
> | game_id | true | Int | - | 游戏的game_id, 角色当前游戏ID |
> | player_id | true | Int | - | 游戏登录后由 SDK 返回的player_id |
> | type | true | Int | 1 | 游戏角色操作环境,1:H5网页端,2:小游戏端,3:Android游戏 4:ios |
> | os | false | String | - | 操作系统 |
> | device_number | false | String | - | 设备型号 |
> | device_brand | false | String | - | 设备品牌 |
> | role | true | Object | - | 角色信息 |
> | event | true | String | - | 事件类型 |
> | server_id | true | String | - | 区服ID |
> | server_name | true | String | - | 区服名称 |
> | cp_role_id | true | String | - | 游戏方角色ID |
> | role_name | true | String | - | 游戏角色名称 |
> | role_level | true | Int | - | 角色等级 |
> | cp_account | false | String | - | cp账号 |
> | role_vip | false | Int | 0 | 角色VIP等级 |
> | combat_num | false | Int | 0 | 角色战力 |
> | reiki_num | false | Int | 0 | 角色灵符值 |
> | online_time | false | Int | 0 | 本次在线时长 |
> | attack | false | Int | 0 | 攻击力 |
> | profession | false | String | - | 职业 |
> | gang_name | false | String | - | 帮会(行会)名称 |
> | trans_level | false | Int | 0 | 转生等级 |
> | sign | true | String | - | 签名 |
##### 返回参数
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | ----------- | ---- | ------ | ------ | -------- |
> | status_code | true | Int | - | 状态码 |
> | msg | true | STRING | - | 返回信息 |
> | data | | | | |
##### EVENT枚举
> | EVENT | 说明 |
> | -------- | -------- |
> | create | 创建角色 |
> | online | 角色上线 |
> | offline | 角色下线 |
> | level_up | 角色升级 |
> | delete | 删除角色 |
> | recharge | 角色充值 |
> | other | 其他 |
##### 请求示例
```
php
<php?
public function report(){
$host = 'https://zyouapi.wozhangwan.com';
$checkLoginUrl = '/mini_sdk/role/severReport';
$url = $host.$checkLoginUrl;
$gameSecret = "game_secret";
$body =
[
"game_id" => 121, //角色当前SDK方游戏ID
"player_id" => 1245,//游戏登录后由 SDK 返回的player_id
"type" => 1,//游戏角色操作环境,1:H5网页端,2:小游戏端,3:android游戏
"os" => "windows",//游戏操作系统:windows,android,ios
"device_number" => "number",//设备型号
"device_brand" => "brand",//设备品牌
"role" =>
[
"event" => 1,//角色事件类型
"server_id" =>1,//游戏区服ID
"server_name" => "区服一",//游戏区服名称
"cp_role_id" => "roleId",//游戏中角色唯一ID
"role_name" => "角色名称",//游戏角色名称
"role_level" => "11",//角色等级
"role_vip" => "0",//角色vip等级
"combat_num" => "0",//角色战力值
"online_time" => "0"//角色在线时长,单位为秒
]
];
$body
[
"sign"
]
= makeSign($body, $gameSecret);
$headers =
[
"Content-Type:application/json"
]
;
$response = curl_post($url, $body, $hearders);
}
public function makeSign($params,$gameSecret){
$signStr = '';
ksort($params, SORT_REGULAR);
foreach ($params as $key => $val) {
if (is_array($val)) {
ksrot($val, SORT_REGULAR); //数组对象参数进行排序
$val = json_encode($val, JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);
}
$signStr .= $key . '=' . $val . '
&';
}
$signStr .= 'game_secret=' . $gameSecret;
return md5($signStr);
}
public function curl_post($url, $body, $headers){
//初始化
$curl = curl_init ( ) ;
//设置抓取的url
curl_setopt ( $curl , CURLOPT_URL , $url) ;
//设置头文件的信息作为数据流输出
curl_setopt ( $curl , CURLOPT_HEADER , 1 ) ;
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt ( $curl , CURLOPT_RETURNTRANSFER , 1 ) ;
//设置post方式提交
curl_setopt ( $curl , CURLOPT_POST , 1 ) ;
//设置post参数
curl_setopt ( $curl , CURLOPT_POSTFIELDS , json_encode($body) ) ;
//设置请求头
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
//执行命令
$data = curl_exec ( $curl ) ;
//关闭URL请求
curl_close ( $curl ) ;
//显示获得的数据
return json_decode($data, true);
}
```
### 3.6.2是否允许创角接口<a name="sec3.6.2"></a>
> 接口需要进行签名,签名方法详见[签名规则6](#sigin6)
游戏服务端询问SDK服务器一个游戏账号是否允许继续创角;
/server/role/checkRoleCreate
##### 请求参数
> **Headers**:
>
> | 参数 | 必选 | 参数值 | 说明 |
> | ------------ | ---- | ---------------- | ---- |
> | Content-Type | true | application/json | |
> **Body:**
>
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | :---------------------------------------------------------- | :---- | :----- | :----- | :----------------------------------------- |
> | player_id | true | Int | - | 游戏登录后由 SDK 返回的player_id | |
> | sign | true | String | - | 签名 |
##### 返回参数
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | ------------------------------------------------------------ | ---- | ------ | ------ | ------------------------- |
> | status_code | true | Int | - | 状态码 |
> | msg | true | String | - | 返回信息 |
> | data | true | Object | | 返回数据对象 |
> | data | true | Object | | 数据对象 |
> | role_create | true | Int | 1 | 1:允许创角,0:不允许创角 |
``
### 3.6.3聊天记录上报接口<a name="sec3.6.3"></a>
> 接口需要进行签名,签名方法详见[签名规则6](#sigin6)
游戏服务端上报玩家聊天记录到 SDK 服务器
/server/chat/report
##### 请求参数
> **Headers**:
>
> | 参数 | 必选 | 参数值 | 说明 |
> | ------------ | ---- | ---------------- | ---- |
> | Content-Type | true | application/json | |
> **Body:**
>
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | :----------------------------------------------------------- | :---- | :----- | :----- | :--------------------------------------------------------- |
> | game_id | true | Int | - | 游戏的game_id, 角色当前游戏ID |
> | player_id | true | Int | - | 游戏登录后由 SDK 返回的player_id |
> | type | true | Int | 1 | 游戏角色操作环境,1:H5网页端,2:小游戏端,3:Android游戏 4:ios |
> | os | false | String | - | 操作系统 |
> | chat_type | true | String | - | 聊天类型1 当前 2 队伍 3 帮派/工会 4 . 世界 5. 谣言 6 . 系统 7. 好友 8.其他 9 .私聊|
> | role_name | true | String | - | 角色名称 |
> | content | true | String | - | 聊天内容 |
> | action_time | true | dateTime | - | 发言时间 2023-05-01 12:23:44 |
> | server_name | true | String | - | 区服名称 |
> | server_id | true | string | - | 区服ID |
> | cp_role_id | true | string | - | 角色ID |
> | cp_account | rue | string | - | cp 账号信息 |
> | target_cp_account | False | String | | 对方账号 |
> | target_cp_role_id | False | String | | 对方角色IP |
> | target_player_id | False | Int | | 对方返回player_id |
> | target_role_name | False | String | | 对方角色名 |
> | last_ip | False | String | | 历史IP |
> | current_ip | False | String | | 当前IP |
> | sign | true | String | - | 签名 |
##### 返回参数
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | ----------- | ---- | ------ | ------ | -------- |
> | status_code | true | Int | - | 状态码 |
> | msg | true | STRING | - | 返回信息 |
> | data | | | | |
### 3.6.4地图记录上报接口<a name="sec3.6.4"></a>
游戏服务端上报玩家地图切换记录到 SDK 服务器
server/map/report
##### 请求参数
> **Headers**:
>
> | 参数 | 必选 | 参数值 | 说明 |
> | ------------ | ---- | ---------------- | ---- |
> | Content-Type | true | application/json | |
> **Body:**
>
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | :-------------- | :---- | :------- | :----- | :----------------------------------------------------------- |
> | game_id | true | Int | - | 游戏的game_id, 角色当前游戏ID |
> | player_id | true | Int | - | 游戏登录后由 SDK 返回的player_id |
> | type | true | Int | 1 | 游戏角色操作环境,1:H5网页端,2:小游戏端,3:Android游戏 4:ios |
> | os | false | String | - | 操作系统 |
> | role_name | true | String | - | 角色名称 |
> | last_map_name | true | String | - | 原地图 |
> | target_map_name | True | String | - | 新地图 |
> | action_time | true | dateTime | - | 切换时间 2023-05-01 12:23:44 |
> | server_name | true | String | - | 区服名称 |
> | server_id | true | string | - | 区服ID |
> | cp_role_id | true | string | - | 角色ID |
> | cp_account | rue | string | - | cp 账号信息 |
> | main_game_id | true | Int | - | 主游戏ID |
> | sign | true | String | - | 签名 |
##### 返回参数
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | ----------- | ---- | ------ | ------ | -------- |
> | status_code | true | Int | - | 状态码 |
> | msg | true | STRING | - | 返回信息 |
> | data | | | | |
##### 请求示例
```
php
<php?
public function report(){
$host = 'https://zyouapi.wozhangwan.com';
$checkLoginUrl = '/server/role/checkRoleCreate';
$url = $host.$checkLoginUrl;
$gameSecret = "game_secret";
$body =
[
"player_id" => 1245,//游戏登录后由 SDK 返回的player_id
]
;
$body
[
"sign"
]
= makeSign($body, $gameSecret);
$headers =
[
"Content-Type:application/json"
]
;
$response = curl_post($url, $body, $hearders);
}
public function makeSign($params,$gameSecret){
$signStr = '';
ksort($params, SORT_REGULAR);
foreach ($params as $key => $val) {
if (is_array($val)) {
ksrot($val, SORT_REGULAR); //数组对象参数进行排序
$val = json_encode($val, JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);
}
$signStr .= $key . '=' . $val . '
&';
}
$signStr .= 'game_secret=' . $gameSecret;
return md5($signStr);
}
public function curl_post($url, $body, $headers){
//初始化
$curl = curl_init ( ) ;
//设置抓取的url
curl_setopt ( $curl , CURLOPT_URL , $url) ;
//设置头文件的信息作为数据流输出
curl_setopt ( $curl , CURLOPT_HEADER , 1 ) ;
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt ( $curl , CURLOPT_RETURNTRANSFER , 1 ) ;
//设置post方式提交
curl_setopt ( $curl , CURLOPT_POST , 1 ) ;
//设置post参数
curl_setopt ( $curl , CURLOPT_POSTFIELDS , json_encode($body) ) ;
//设置请求头
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
//执行命令
$data = curl_exec ( $curl ) ;
//关闭URL请求
curl_close ( $curl ) ;
//显示获得的数据
return json_decode($data, true);
}
```
##### 签名规则7<a name="sigin7"></a>
1.
POST 数据结构 JSON
2.
Header数据需要加验证参数 Authorization
3.
Authorization 将请求数据,
a. 按照key ascll 码小到大排序,
b.拼接参数 string = "cp_role_id=value1&token=value2&time=当天的年月日date('Y-m-d')" + secert;
c. 将string 转为32 位的md5数据, stringMd5 = string.md5();
d. 截取stringMd5 第二位到第17位, 一共 16位字符串, 之后转为大写, 为Authorization
### 3.7.1 AI获取角色标签接口<a name="sec3.7.1"></a>
> 接口需要进行签名,签名方法详见[签名规则7](#sigin7)
获取角色标签
/server/chat/getRoleLabel
请求数据
| 字段 | 是否必传 | 字段类型 | | |
| ---------------- | -------- | -------- | ----------------------------------------- | ---- |
| cp_role_id | 是 | String | 角色ID | |
| token | 是 | String | token 谛听 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
| data | 是 | obj | 返回信息 : |
| data.level | 是 | string | 标签 : |
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论