提交 24c283c5 作者: 黄程泽

增加服务端上报

上级 05f81544
# H5 SDK 对接文档-v1.0
# H5 SDK 对接文档-v1.0
......@@ -68,6 +68,18 @@
        请求示例
    2.5 [服务端角色上报](#sec2.5)
        接口说明
        接口地址
        请求参数
        返回参数
        请求示例
3.[H5 SDK接入](#sec3)
    3.1 [配置导入H5 SDK](#sec3.1)
......@@ -305,6 +317,8 @@ sequenceDiagram
> 小游戏通过 SDK 获得 用户user_token, 游戏服务端需要在用户登录游戏成功后调用登录验证接口,验证user_token是否为有效登录用户会话,SDK 服务端需要通过该接口判断用户是否登录游戏服务 。
>
> 注意:该接口有调用频率限制,建议游戏服务端在完成用户登录后调用该接口;
>
> 接口需要进行签名,签名方法详见[接口规则](#sec2.1)
##### 接口地址
......@@ -397,6 +411,8 @@ sequenceDiagram
> 上报游戏角色信息到 SDK 服务器;
>
> 选接,客户端或者服务端一个端接入即可;
>
> 接口需要进行签名,签名方法详见[接口规则](#sec2.1);
##### 接口地址
......@@ -417,16 +433,17 @@ sequenceDiagram
> | :---------------------------------------------------------- | :---- | :----- | :----- | :--------------------------------- |
> | game_id | true | Int | - | 游戏接入时分配的游戏ID |
> | player_id | true | Int | - | 小游戏登录后由 SDK 返回的player_id |
> | os | 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 | - | 角色等级 |
> |         role_vip | false | Int | 0 | 角色VIP等级 |
> |         combat_num | false | Int | 0 | 角色战力 |
> |         online_time | false | Int | 0 | 本次在线时长 |
> |         role_level | true | String | - | 角色等级 |
> |         role_vip | false | String | 0 | 角色VIP等级 |
> |         combat_num | false | String | 0 | 角色战力 |
> |         online_time | false | String | 0 | 本次在线时长 |
> | sign | true | String | - | 签名 |
##### 返回参数
......@@ -519,6 +536,8 @@ sequenceDiagram
##### 接口说明
> 需要游戏服务端完成该接口,接收平台充值成功的信息。
>
> 接口需要进行签名验证,签名方法详见[接口规则](#sec2.1)
##### 接口地址
......@@ -565,6 +584,131 @@ sequenceDiagram
### 2.5 服务端角色上报<a name="sec2.5"></a>
##### 接口说明
> 游戏服务上报游戏角色信息到 SDK 服务器;选接,如果客户端已上报完整角色信息,可不接;
>
> 此接口与[角色信息上报](#sec2.3)作用一致,建议使用[角色信息上报](#sec2.3);
>
> 接口需要进行签名,签名方法详见[接口规则](#sec2.1)
##### 接口地址
> 【POST】/h5_sdk/role/serverReportV2
##### 请求参数
> **Headers**:
>
> | 参数 | 必选 | 参数值 | 说明 |
> | ------------ | ---- | ---------------- | ---- |
> | Content-Type | true | application/json | |
> **Body:**
>
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | :---------------------------------------------------------- | :---- | :----- | :----- | :--------------------------------- |
> | player_id | true | Int | - | 小游戏登录后由 SDK 返回的player_id |
> | os | false | String | - | 操作系统 |
> | role | true | Object | - | 角色信息 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event | true | String | - | 事件类型 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server_id | true | String | - | 区服ID |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server_name | true | String | - | 区服名称 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cp_role_id | true | String | - | 游戏方角色ID |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;role_name | true | String | - | 游戏角色名称 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;role_level | true | String | - | 角色等级 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;role_vip | false | String | 0 | 角色VIP等级 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;combat_num | false | String | 0 | 角色战力 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;online_time | false | String | 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://zyou.wozhangwan.com/api';
$checkLoginUrl = '/mini_sdk/role/severReport';
$url = $host.$checkLoginUrl;
$gameSecret = "game_secret";
$body = ["player_id" => 1245,
"os" => "windows"
"role" =>[
"event" => 1,
"server_id" =>1,
"server_name" => "区服一",
"cp_role_id" => "roleId",
"role_name" => "角色名称",
"role_level" => "11",
"role_vip" => "0",
"combat_num" => "0",
"online_time" => "0",
]];
$userToken = "user_token";
$body["sign"] = makeSign($body, $gameSecret);
$headers = ["Content-Type:application/json","User-Token:".$userToken];
$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)) {
$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. H5 SDK 接入<a name="sec3"></a>
### 3.1 配置导入H5 SDK<a name="sec3.1"></a>
......
# 游戏 SDK 对接文档-v1.0.1
# 游戏 SDK 对接文档-v1.0.1
......@@ -66,6 +66,18 @@
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请求示例
&nbsp;&nbsp;&nbsp;&nbsp;2.5 [服务端角色上报](#sec2.5)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接口说明
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接口地址
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请求参数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;返回参数
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请求示例
3.[小游戏 SDK 接入](#sec3)
&nbsp;&nbsp;&nbsp;&nbsp;3.1 [调用 SDK 初始化](#sec3.1)
......@@ -594,6 +606,133 @@ sequenceDiagram
> 通知使用的参数格式均为字符串(String)
### 2.5 服务端角色上报<a name="sec2.5"></a>
##### 接口说明
> 游戏服务上报游戏角色信息到 SDK 服务器;选接,如果客户端已上报完整角色信息,可不接;
>
> 此接口与[角色信息上报](#sec2.3)作用一致,建议使用[角色信息上报](#sec2.3);
>
> 接口需要进行签名,签名方法详见[接口规则](#sec2.1)
##### 接口地址
> 【POST】/h5_sdk/role/serverReportV2
##### 请求参数
> **Headers**:
>
> | 参数 | 必选 | 参数值 | 说明 |
> | ------------ | ---- | ---------------- | ---- |
> | Content-Type | true | application/json | |
> **Body:**
>
> | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | :---------------------------------------------------------- | :---- | :----- | :----- | :--------------------------------- |
> | player_id | true | Int | - | 小游戏登录后由 SDK 返回的player_id |
> | os | false | String | - | 操作系统 |
> | role | true | Object | - | 角色信息 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;event | true | String | - | 事件类型 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server_id | true | String | - | 区服ID |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server_name | true | String | - | 区服名称 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cp_role_id | true | String | - | 游戏方角色ID |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;role_name | true | String | - | 游戏角色名称 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;role_level | true | String | - | 角色等级 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;role_vip | false | String | 0 | 角色VIP等级 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;combat_num | false | String | 0 | 角色战力 |
> | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;online_time | false | String | 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://zyou.wozhangwan.com/api';
$checkLoginUrl = '/mini_sdk/role/severReport';
$url = $host.$checkLoginUrl;
$gameSecret = "game_secret";
$body = ["player_id" => 1245,
"os" => "windows"
"role" =>[
"event" => 1,
"server_id" =>1,
"server_name" => "区服一",
"cp_role_id" => "roleId",
"role_name" => "角色名称",
"role_level" => "11",
"role_vip" => "0",
"combat_num" => "0",
"online_time" => "0",
]];
$userToken = "user_token";
$body["sign"] = makeSign($body, $gameSecret);
$headers = ["Content-Type:application/json","User-Token:".$userToken];
$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)) {
$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. 小游戏 SDK 接入<a name="sec3"></a>
### 3.1 调用 SDK 初始化<a name="sec3.1"></a>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论