Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zw_game_sdk
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
CI / CD
CI / CD
流水线
日程表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
提交
问题看板
Open sidebar
zwwl
zw_game_sdk
Commits
68b69e50
提交
68b69e50
authored
1月 24, 2026
作者:
彭程
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
后端接口
上级
15219c1c
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
244 行增加
和
1 行删除
+244
-1
服务端接口.md
overseas/服务端接口.md
+244
-1
没有找到文件。
overseas/服务端接口.md
浏览文件 @
68b69e50
-- "a/overseas/\346\234\215\345\212\241\347\253\257\346\216\245\345\217\243.md"
# 服务端接口说明
# 服务端接口说明
### 目录
1.[
接入说明
](
#sec1
)
1.1
[
术语表
](
#sec1.1
)
1.2
[
数据字典
](
#sec1.2
)
2.[
服务端接口
](
#sec2
)
2.1
[
接口规则
](
#sec2.1
)
请求域名
请求方式
请求格式
返回格式
状态说明
3.[
接口列表
](
#sec3
)
[
签名规则1
](
#sigin1
)
3.1.1
[
支付通知
](
#sec3.1.1
)
3.1.2
[
安卓登录检查
](
#sec3.1.2
)
3.1.3
[
IOS登录检查
](
#sec3.1.3
)
1.
接入说明
<a
name=
"sec1"
></a>
### 1.1 术语表<a name="sec1.1"></a>
> | 名称 | 说明 |
> | ---------- | ------------------------------------------------------------ |
> | CP | 游戏研发商。 |
> | SDK | 由平台方提供给游戏研发商,用于游戏接入平台登录,支付。 |
> | SDK 服务 | 由平台方开发,用于完成 SDK 的登录,支付流程,承接游戏服务端的数据。 |
> | 游戏服务 | 游戏研发商开发,为游戏提供服务。 |
> | 安卓游戏 | 游戏研发方商开发的安卓游戏。 |
> | iOS游戏 | 游戏研发商开发的iOS游戏一般情况系与安卓同游同服 |
> | 支付服务 | 由平台方调用支付服务,包括google apple 支付等 |
### 1.2 数据字典<a name="sec1.2"></a>
> | 名称 | 说明 |
> | ----------- | ------------------------------------------------- |
> | member_id | 用户在平台注册账号的唯一标识。 |
> | player_id | 用户在平台的一个游戏中的唯一标识。 |
> | user_token | 用户在平台登录的会话标识。 |
> | main_game_id| 游戏在平台的父级唯一标识。 |
> | 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】zyou-overseas.hznets.com
##### 请求方式
> 【POST】
##### 请求格式
> 【JSON】
##### 返回格式
> 【JSON】
##### 状态说明
| 状态码 | 说明 |
| ------ | -------- |
| 1 | 成功 |
| -1 | 错误 |
| -100 | 未登录 |
| -422 | 参数错误 |
## 3.接口列表<a name="sec3"></a>
##### 签名规则1<a name="sigin1"></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.1.1 支付通知<a name="sec3.1.1"></a>
> 需要游戏服务端完成该接口,接收平台充值成功的信息。[签名规则1](#sigin1)
接口地址:充值结果通知地址,由 CP 方提供
请求数据
>body:
| 字段 | 是否必传 | 字段类型 | | |
|---------------------------------------------------------------|------|----------|--------------------------------------------------------|------|
| order | 是 | Object | 订单相关 | |
|
order_id | 是 | String | 平台订单 ID | |
|
cp_order_id | 是 | String | 游戏传入的外部订单号,服务器会根据这个订单号生成对应的平台订单号,
<br>
请保证每笔订单传入的订单号的唯一性 | |
|
product_price | 是 | String | 商品单价(分) | |
|
amount | 是 | String | 商品总价(分) | |
|
product_id | 是 | String | 商品 ID | |
|
product_cnt | 是 | String | 商品数量 | |
|
pay_time | 是 | String | 支付时间(时间戳,到秒) | |
|
ext | 是 | String | CP 自定义参数,透传信息 | |
| game_id | 是 | String | 游戏接入时分配的游戏 ID 【子级唯一】 | |
| player_id | 是 | String | 游戏接入登录返回的用户唯一标识 | |
| sign | 是 | String | 签名(签名规则参照 2.1 签名规则,签名的 key 由 SDK 提供) | |
返回数据
| 字段 | 是否必要 | 字段类型 | |
|-------------|-------| -------- |---------|
| status_code | 是 | int | 1 成功 |
| msg | 是 | string | 返回信息 |
##### 注意
> 通知使用的参数格式均为字符串(String) 返回status_code = 1 为成功, 否则会重复通知三次
### 3.1.2 安卓登录检查<a name="sec3.1.2"></a>
> 游戏通过 SDK 获得 用户 user_token, 游戏服务端需要在用户登录游戏成功后调用登录验证接口,验证 user_token 是否为有效登录用户会话,SDK 服务端需要通过该接口判断用户是否登录游戏服务 。[签名规则1](#sigin1)
接口地址:/android_sdk/auth/checkLogin
请求数据
>header
| 字段 | 是否必传 | 字段类型 | | |
|--------------|------|----------|--------------------------------------------------------|------|
| Content-Type | 是 | String | application/json | |
| User-Token | 是 | String | 游戏登录后由 SDK 返回的 user_token | |
>body
| 字段 | 是否必传 | 字段类型 | | |
|-----------|------|----------|------------------------------------------------------|------|
| game_id | 是 | String | 游戏接入时分配的 game_id(建议从 user_token 中取,#后面的数字即为 game_id) | |
| player_id | 是 | String | 游戏登录后由 SDK 返回的 player_id | |
| sign | 是 | String | 参数签名 | |
返回数据
| | 是否必要 | 字段类型 | |
|-------------| -------- | -------- | ---------- |
| status_code | 是 | int | 1 成功 |
| msg | 是 | string | 返回信息 |
### 3.1.3 IOS登录检查<a name="sec3.1.3"></a>
> 游戏通过 SDK 获得 用户 user_token, 游戏服务端需要在用户登录游戏成功后调用登录验证接口,验证 user_token 是否为有效登录用户会话,SDK 服务端需要通过该接口判断用户是否登录游戏服务 。[签名规则1](#sigin1)
接口地址:/ios_sdk/auth/checkLogin
请求数据
>header
| 字段 | 是否必传 | 字段类型 | | |
|---------------------------------------------------------------|------|----------|--------------------------------------------------------|------|
| Content-Type | 是 | String | application/json | |
| User-Token | 是 | String | 游戏登录后由 SDK 返回的 user_token | |
>body
| 字段 | 是否必传 | 字段类型 | | |
|-----------|------|----------|------------------------------------------------------|------|
| game_id | 是 | String | 游戏接入时分配的 game_id(建议从 user_token 中取,#后面的数字即为 game_id) | |
| player_id | 是 | String | 游戏登录后由 SDK 返回的 player_id | |
| sign | 是 | String | 参数签名 | |
返回数据
| | 是否必要 | 字段类型 | |
| ---- | -------- | -------- | --------------------- |
| status_code | 是 | int | 1 成功 2 失败 |
| msg | 是 | string | 返回信息 : 处理成功 |
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论