EYuanGame服务端文档.md 4.8 KB

[TOC]

文档说明

  • 阅读对象:游戏服务端对接技术人员;
  • 字符编码:请求与响应内容必须采用utf-8 字符编码;
  • 平台参数:game_code、md5_key、pay_key;
  • 平台服务端域名(host):与上面的“平台参数”一起下发。

接口一

登录TOKEN的校验

请求地址

https://{host}/verify_token

请求参数

参数名 类型 说明
game_code Int 我方平台提供的参数game_code
token String 平台客户端登录成功返回的token值
uid String 平台客户端登录成功返回的uid值
time Int 当前时间戳(秒)
sign String 签名见《签名规则》密钥为md5_key

请求返回示例

{
    "code": 1,
    "msg": "success",
    "data": {
        "uid": "10003"
    }
}

返回Json说明

参数名 类型 说明
code Int 状态,1成功,其他为失败
msg String 提示信息
data Json 请求返回的数据

data说明

参数名 类型 说明
uid String 平台用户唯一ID,与请求参数uid是一致的

------------

接口二

支付回调地址(内购)

请求地址

该接口地址由CP提供,平台收到订单充值后,会将该订单,按游戏方提供的回调地址,通知游戏发货。

请求参数

参数名 类型 说明
game_code Int 我方平台提供的参数game_code
order_id String 平台订单号
cp_order_id String 游戏订单号(游戏方调用客户端SDK时传入)
currency String 币种(默认美元:USD)
amount Int 订单金额(分)
rebate Int 返利比例(例如10%传:10)
bind_rebate Int 绑元返利比例(例如10%传:10)
uid String 平台用户ID(与登录校验接口返回的uid一致
product_id String 商品ID(cp下单时传入)
server_id String 区服ID(cp下单时传入)
role_id String 角色ID(cp下单时传入)
time Int 当前时间戳(秒)
cp_ext String 订单透参,游戏下单请求时传入,原样返回(长度不能超过100))
sign String 签名见《签名规则》密钥为pay_key

请求返回

游戏服务端发货成功直接返回字符串“success”(区分大小写),其他字符串为发货失败。

回调机制

由于网络或者其它原因(例如请求完成后游戏服务端的返回值不是“success”),我方会重复请求支付回调,CP需要做好去重处理,避免重复发货。
重发机制为: 根据一定的策略进行重复回调请求, 当接收到返回为‘success’,则停止重发, 未收到‘success’的返回,重放一定次数也会停止重发。

------------

《签名规则》

步骤

(1)将接口请求的参数,以参数key进行升序排序
(2)将”key=value”的形式用 & 符号拼接,得到 字符串req_str
(3)req_str 和 密钥secret_key(md5_key或者pay_key) 拼接得到 字符串sign_str
(4)md5 sign_str 得到 sign

示例

以“登录TOKEN验证”为请求示例

#*python签名示例
req_str = "game_code=xxx&time=1546272000&token=xxx&uid=u123"
# secret_key =s1122
sign_str = req_str + secret_key  # game_code=xxx&time=1546272000&token=xxx&uid=u123s1122
sign = hashlib.md5(sign_str).hexdigest() #e84ddaa93133915ac00081e290b8599f
#* php签名示例
$req_str = "game_code=xxx&time=1546272000&token=xxx&uid=u123";
#  secret_key=s1122
$sign_str = $req_str.$secret_key;
# game_code=xxx&time=1546272000&token=xxx&uid=u123s1122
$sign = md5($sign_str); # e84ddaa93133915ac00081e290b8599f