egret-docs-master/platform/egret/developers/README.md

323 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

[一、 获取玩家信息数据](#一、获取玩家信息数据)
[二、支付回调通知](#二、支付回调通知)
[三、 获取当前渠道是否开启玩家好友列表功能](#三、获取当前渠道是否开启玩家好友列表功能)
[四、获取玩家好友列表](#四、获取玩家好友列表)
[五、多区多服游戏设置选服](#五、多区多服游戏设置选服)
[六、数据上报](#六、数据上报)
[附录一:签名生成规则](#附录一:签名生成规则)
[附录二:游戏接入前需提供信息](#附录二:游戏接入前需提供信息)
[附录三:游戏接入注意事项](#附录三:游戏接入注意事项)
[附录四状态码code对照表](#附录四状态码code对照表)
## 注意
为安全考虑,此文档中的接口请求请在后端完成。
## 一、获取玩家信息数据
接口URL : http://api.egret-labs.org/v2/user/getInfo
HTTP请求方式POST
返回格式:JSON
参数说明:
| 字段名 | 字段描述 | 示例 | 备注 |
| ------------ | ------------- | ------------ | ------------ |
| token | 登录凭证 | 58990fggggggjhdfjfjd3UIca86 | 用于获取用户信息 |
| time | 时间戳 | 1420855806 | 请求的时间 |
| appId | 应用id | 1001 | 由 Egret 分配 |
| sign | 签名串 | jkgjhjkgjkjhfyuuhhb | 详情见[签名生成规则](#附录一:签名生成规则) |
返回内容:
| 字段名 | 字段描述 | 示例 | 备注 |
| ------------ | ------------- | ------------ | ------------ |
| code | 状态码 | 0 | 0为成功其他为错误[查看code对应表](#附录四状态码code对照表) |
| msg | code对应消息 | success | |
| data | 数据 | 格式如下 | JSON |
返回数据格式:
```
{
"code":0,
"msg":"success",
"data":{
"id":"afdafvsavsavsavsav",
"name":"张三",
"pic":"http://www.egret-labs.org/avar.jpg"
}
}
```
data数据说明
| 字段名 | 字段描述 | 值 |
| ------------ | ------------- | ------------ |
| id | 用户id | afdafvsavsavsavsav |
| name | 用户名 | 张三(值不一定有) |
| pic | 用户头像 | (值不一定有) |
## 二、支付回调通知
根据游戏方提供的支付回调地址,把支付数据通知到游戏方
通知方式POST
返回格式:JSON
参数说明:
| 字段名 | 字段描述 | 备注 |
| ------------ | ------------- | ------------ |
| orderId | 订单号 | uyyf1000jhhkljlhjkhk |
| id | 用户id | afdafvsavsavsavsav |
| money | 人民币(元) | 10 |
| time | 时间戳 | 通知的时间 |
| serverId | 游戏区服id | 游戏调用支付sdk的时候传入的值 |
| goodsId | 物品id | 游戏提供的充值档id |
| goodsNumber | 物品数量 | 目前固定为1 |
| ext | 开发者透传参数 | 原样返回游戏透传的数据 |
| sign | 签名串 | 详情见[签名生成规则](#附录一:签名生成规则) |
返回内容:
| 字段名 | 字段描述 | 示例 | 备注 |
| ------------ | ------------- | ------------ | ------------ |
| code | 状态码 | 0 | 0为支付成功其他为错误[查看code对应表](#附录四状态码code对照表) |
返回格式:
```
{
"code":0
}
```
code说明
0支付成功1009重复订单1013支付失败
`注意:`
`有部分渠道玩家点击高档充值档打开渠道充值页面后玩家还可以选择低挡充值档这时候传给游戏的goodsId`
`还是玩家原来选择的高档的goodsId这时候需要游戏根据money兑换成游戏币发放给玩家`
## 三、获取当前渠道是否开启玩家好友列表功能
接口URL : http://api.egret-labs.org/v2/friend/isOpen
HTTP请求方式POST
返回格式:JSON
参数说明:
| 字段名 | 字段描述 | 示例 | 备注 |
| ------------ | ------------- | ------------ | ------------ |
| id | 用户id | afdafvsavsavsavsav | |
| time | 时间戳 | 1420855806 | 请求的时间 |
| appId | 应用id | 1001 | 由 Egret 分配 |
| sign | 签名串 | jkgjhjkgjkjhfyuuhhb | 详情见[签名生成规则](#附录一:签名生成规则) |
返回内容:
| 字段名 | 字段描述 | 示例 | 备注 |
| ------------ | ------------- | ------------ | ------------ |
| code | 状态码 | 0 | 0为成功其他为错误[查看code对应表](#附录四状态码code对照表) |
| msg | code对应消息 | success | |
| data | 数据 | 格式如下 | JSON |
返回数据格式:
```
{
"code":0,
"msg":"success",
"data":{
"status":1
}
}
```
data数据说明
status 1为开启0为未开启
## 四、获取玩家好友列表
接口URL : http://api.egret-labs.org/v2/friend/getList
HTTP请求方式POST
返回格式:JSON
参数说明:
| 字段名 | 字段描述 | 示例 | 备注 |
| ------------ | ------------- | ------------ | ------------ |
| id | 用户id | afdafvsavsavsavsav | |
| time | 时间戳 | 1420855806 | 请求的时间 |
| appId | 应用id | 1001 | 由 Egret 分配 |
| sign | 签名串 | jkgjhjkgjkjhfyuuhhb | 详情见[签名生成规则](#附录一:签名生成规则) |
返回内容:
| 字段名 | 字段描述 | 示例 | 备注 |
| ------------ | ------------- | ------------ | ------------ |
| code | 状态码 | 0 | 0为成功其他为错误[查看code对应表](#附录四状态码code对照表) |
| msg | code对应消息 | success | |
| data | 数据 | 格式如下 | JSON |
返回数据格式:
```
{
"code":0,
"msg":"success",
"data":[
"jkjkgljhgytyfhfh",
"uiuoygyvhjjbhjnb",
"ihsdafgvdsnkjnks"
]
}
```
data数据说明
好友id数组
## 五、多区多服游戏设置选服
`如果已经对接egret统计接口不需要再对接该接口`
接口URL : http://api.egret-labs.org/v2/user/setServer
HTTP请求方式POST
返回格式:JSON
参数说明:
| 字段名 | 字段描述 | 示例 | 备注 |
| ------------ | ------------- | ------------ | ------------ |
| id | 用户id | 58990fggggggjhdfjfjd3UIca86 | |
| time | 时间戳 | 1420855806 | 请求的时间 |
| appId | 应用id | 1001 | 由 Egret 分配 |
| serverId | 用户选的区服 | 1 | |
| sign | 签名串 | jkgjhjkgjkjhfyuuhhb | 详情见[签名生成规则](#附录一:签名生成规则) |
返回内容:
| 字段名 | 字段描述 | 示例 | 备注 |
| ------------ | ------------- | ------------ | ------------ |
| code | 状态码 | 0 | 0为成功其他为错误[查看code对应表](#附录四状态码code对照表) |
| msg | code对应消息 | success | |
| data | 数据 | 格式如下 | JSON |
返回数据格式:
```
{
"code":0,
"msg":"success",
"data":[]
}
```
## 六、数据上报
接口URL : http://api.egret-labs.org/v2/user/setAchievement
HTTP请求方式POST
返回格式:JSON
参数说明:
| 字段名 | 字段描述 | 示例 | 备注 |
| ------------ | ------------- | ------------ | ------------ |
| id | 用户id | 58990fggggggjhdfjfjd3UIca86 | |
| time | 时间戳 | 1420855806 | 请求的时间 |
| appId | 应用id | 1001 | 由 Egret 分配 |
| serverId | 用户选的区服 | 1 | |
| score | 用户积分 | 20 | 游戏里玩家的分数或等级等 |
| sign | 签名串 | jkgjhjkgjkjhfyuuhhb | 详情见[签名生成规则](#附录一:签名生成规则) |
返回内容:
| 字段名 | 字段描述 | 示例 | 备注 |
| ------------ | ------------- | ------------ | ------------ |
| code | 状态码 | 0 | 0为成功其他为错误[查看code对应表](#附录四状态码code对照表) |
| msg | code对应消息 | success | |
| data | 数据 | 格式如下 | JSON |
返回数据格式:
```
{
"code":0,
"msg":"success",
"data":[]
}
```
## 附录一:签名生成规则
### 签名生成规则:
1. 对参与签名的参数的键值进行`正序排列`
2. 生成待加密字符串
* 第一步:对排好序的参与签名加密的参数按照排序顺序以 key1=value1key2=value2...keyn=valuen 形式连接成字符串(sign不参与签名)
* 第二步在已经连接好的字符串尾部连接appkey(appkey在开放平台获取) 最终形成的待加密字符串格式为key1=value1key2=value2...keyn=valuenappkey
3. 对待加密字符串进行md5加密
> md5价值之后的值为 小写字母和数字组成的32位字符串 参与加密的变量均采用小驼峰式命名法
生成签名方法php代码样例:
```
function createSign($params, $appkey){
isset($params["sign"]) && unset($params["sign"]);
ksort($params);
$str = "";
foreach($params as $key=>$value){
$str .= $key ."=". $value;
}
return md5($str.$appkey);
}
```
### 在线验证:
[http://open.egret.com/checkSign](http://open.egret.com/checkSign)
## 附录二:游戏接入前需提供信息
游戏接入前需提供信息:
1. 游戏客户端访问地址
2. 游戏接收支付成功通知地址
3. 游戏充值档,充值档格式如下:
| 商品id | 金额(元) | 商品名称 |
| ------------ | ------------- | ------------ |
| 1 | 1 | 10钻石 |
| 2 | 2 | 20钻石 |
| 3 | 10 | 100钻石 |
| 4 | 30 | 月卡 |
## 附录三:游戏接入注意事项
`1、调用api前需要先把游戏提交到http://open.egret.com`
`2、egret打开游戏地址后egret会在游戏地址后面跟上一些参数供sdk里面调用如果游戏有做页面跳转`
`需要游戏在跳转页面上把egret的参数全部在新页面带上否则在调用sdk的时候会报错`
`3、游戏充值档金额不能有相同金额的充值档由于与游戏支付通知之间传递的唯一有效数据是实际充值金额`
`如果有相同金额的充值档存在,将会出现充值物品冲突的情况出现`
`4、有部分渠道玩家点击高档充值档打开渠道充值页面后玩家还可以选择低挡充值档这时候传给游戏的goodsId`
`还是玩家原来选择的高档的goodsId这时候需要游戏根据money兑换成游戏币发放给玩家`
`5、游戏接入腾讯系渠道玩吧qq浏览器相关域名地址 http://api.egret-labs.org 需要更改为`
` http://api.gz.1251278653.clb.myqcloud.com`
`6、游戏接入台湾渠道时相关域名地址 http://api.egret-labs.org 需要更改为http://tw.api.egret.com`
## 附录四状态码code对照表
| code | 对应含义 |
| :------------: | :------------- |
| 0 | 成功 |
| 1001 | 参数不全 |
| 1005 | token 错误 |
| 1006 | sign 错误,验证通不过 |
| 1007 | 该用户不存在 |
| 1009 | 重复订单 |
| 1010 | 当前渠道不提供该功能 |
| 1013 | 支付失败 |