[一、 获取玩家信息数据](#一、获取玩家信息数据) [二、支付回调通知](#二、支付回调通知) [三、 获取当前渠道是否开启玩家好友列表功能](#三、获取当前渠道是否开启玩家好友列表功能) [四、获取玩家好友列表](#四、获取玩家好友列表) [五、多区多服游戏设置选服](#五、多区多服游戏设置选服) [六、数据上报](#六、数据上报) [附录一:签名生成规则](#附录一:签名生成规则) [附录二:游戏接入前需提供信息](#附录二:游戏接入前需提供信息) [附录三:游戏接入注意事项](#附录三:游戏接入注意事项) [附录四:状态码(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 | 支付失败 |