# KUUKI 平台

# 区服信息

# 接口说明

  1. 查询游戏区服列表
  2. openID 为登录下发的openID,传值为空时,查询游戏所有区服列表,传值不为空时,查询用户登录过gameID的所有区服

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
gameID string KUUKIGAME的游戏id
openID string KUUKIGAME的openid
language string 语言,zh_CN(中文简体),en_US(英文),th_TH(泰文),区服名称根据语言返回内容

# 返回内容

{
  "code": "200",
  "msg": "OK",
  "data": [
    {
      "name": "区服1",
      "id": "1001",
      "openTime": "2022-05-14 00:00:00"
    },
    {
      "name": "区服2",
      "id": "1002",
      "openTime": "2022-05-14 00:00:00"
    }
  ]
}

# 返回参数

参数名 是否必须 类型 说明
code int 状态码:200正常,非200失败
msg string 错误信息
data array 区服列表
id string 区服ID
name string 区服名称
openTime string 开服时间,示例:2022-05-14 00:00:00

# 角色信息

# 接口说明

用于特殊渠道查询角色战力等信息,是否接入请询问我方

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数字段名 参数类型 是否必传 备注
gameid int 游戏ID
openId string 登录后获取到的 openid
serverIds string 区服 id,多个区服以,分隔
time string 秒级时间戳
sign string 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  //200:成功,-101:验证失败,-102:没有数据,-103:其他错误
  "msg": "成功",
  "data": [
    {
      "serverId": "1",
      "serverName": "s1.五湖四海",
      "roleId": "2121",
      "roleName": "长了胡须了",
      "roleLevel": 201,
      "power": 1341321,
      "onCard": 1341321,
      "flag": 1341321
    },
    ...
  ]
}

# 返回参数

参数字段名 参数类型 备注
code int
msg string
data array
serverId string 角色所在区服ID string
serverName string 角色所在区服
roleId string 角色ID,考虑到游戏整个生命周期还有后续的合服情况,每个用户在不同服的角色id要保证唯一 ,千万不要使用每个服从一开始递增的简单的每个服会重复角色id的这种规则
roleName string 角色名(请做UTF-8编码)
roleLevel int 角色等级
power string 角色战力值(如果有战力值则返回)
onCard string 月卡到期时间,如果月卡没有限购可一直购买,则不传,如果有限购,则传月卡到期时间,无购买记录传"1970-01-01" 如果游戏需要季卡,年卡及其他类别的特殊品项等进行限购,再与我方技术商讨具体的字段命名
flag int 终身卡是否已经购买的标识 0未购买 1已购买; 若游戏无终身卡,可不返回。

# 签名规则

sign=MD5(gameKey={GameKey}&openId={openId}&serverIds={serverIds}&time={time})

# 限购礼包

# 接口说明

  1. 查询角色可购买限购礼包ID列表(仅返回第三方上架的限购礼包即可)

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
userId String 登录后获取到的 openid
gameID string KUUKIGAME的游戏id
serverID string 游戏服ID,正式服+1递增,测试服999
roleId string 游戏角色ID,需要检验是否与userId匹配上
product_id string 商品ID 【多个商品请使用英文,隔开】 比如 “商品ID1,商品ID2,商品ID3”
language string 语言,zh_CN(中文简体),en_US(英文),th_TH(泰文),礼包名称根据语言返回内容
sign string 签名,参考下方签名规则

# 返回内容

{
  "code": "200",
  "message": "OK",
  "data": [
    {
      "productId": "礼包id",
      "desc": "游戏内礼包显示名称"
    },
    {
      "productId": "礼包id",
      "desc": "游戏内礼包显示名称"
    }
  ]
}

# 返回参数

参数字段名 参数类型 备注
code int
msg string
data array
productId string 礼包id
desc string 礼包名称

# 签名规则

sign=Md5(userId+roleId+serverID+gameID+product_id+SecretKey)SecretKey 由KUUKIGAME提供

# 预下单

# 接口说明

  1. 研发方提供的第三方支付预下单接口

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 参数类型 是否必传 备注
appid int 我方提供的 GameID
currency String 实际充值币种(TWD、USD 等)
feemoney int 实际充值金额(分)
dollar int 转换为美元,分)
openid String 用户在我方的唯一 ID
roleID String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
serverID String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
wareCount int 购买商品数量(付费购买的游戏币数量,整数 >= 0,最终购买的游戏币数为 wareCount+activityExtra之和)
activityExtra int 额外赠送的游戏币数量(注意:此部分不计入VIP经验)
productID String 官方充值传商品ID;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传;不传时,玩家最终购买的游戏币数为 wareCount+activityExtra之和
wareName String 官方充值传商品;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": "cp_ordernumxxxxx"
}

# 返回参数

参数名 参数类型 备注
code int 状态:200 成功,500 失败
msg String 成功或失败的讯息,
data String cp 订单号

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 港台(10011|10012)

# 角色信息

# 接口说明

用于特殊渠道查询角色战力等信息,是否接入请询问我方

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数字段名 参数类型 是否必传 备注
gameid int 游戏ID
openId string 登录后获取到的 openid
serverIds string 区服 id,多个区服以,分隔
time string 秒级时间戳
sign string 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": [
    {
      "serverId": "1",
      "serverName": "s1.五湖四海",
      "roleId": "2121",
      "roleName": "长了胡须了",
      "roleLevel": 201,
      "power": 1341321,
      "onCard": 1341321,
      "flag": 1341321
    }
  ]
}

# 返回参数

参数字段名 参数类型 备注
code int
msg string
data array
serverId string 角色所在区服ID string
serverName string 角色所在区服
roleId string 角色ID,考虑到游戏整个生命周期还有后续的合服情况,每个用户在不同服的角色id要保证唯一 ,千万不要使用每个服从一开始递增的简单的每个服会重复角色id的这种规则
roleName string 角色名(请做UTF-8编码)
roleLevel int 角色等级
power string 角色战力值(如果有战力值则返回)
onCard string 月卡到期时间,如果月卡没有限购可一直购买,则不传,如果有限购,则传月卡到期时间,无购买记录传"1970-01-01" 如果游戏需要季卡,年卡及其他类别的特殊品项等进行限购,再与我方技术商讨具体的字段命名
flag int 终身卡是否已经购买的标识 0未购买 1已购买; 若游戏无终身卡,可不返回。

# 签名规则

sign=MD5(gameKey={GameKey}&openId={openId}&serverIds={serverIds}&time={time})

# 限购礼包

# 接口说明

  1. 查询角色可购买限购礼包ID列表(仅返回第三方上架的限购礼包即可)

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
userId String 登录后获取到的 openid
gameID string KUUKIGAME的游戏id
serverID string 游戏服ID,正式服+1递增,测试服999
roleId string 游戏角色ID,需要检验是否与userId匹配上
sign string 签名,参考下方签名规则

# 返回内容

 {
  "code": "1000",
  "list": [
    "xxx.xxx.xxA",
    "xxx.xxx.xxB",
    "xxx.xxx.xxC"
  ]
}

# 返回参数

参数字段名 参数类型 备注
code string 结果代码
list Array 角色可购买限购礼包ID列表。

# 签名规则

sign=Md5(userId+roleId+serverID+gameID+SecretKey)SecretKey 由KUUKIGAME提供

# 预下单

# 接口说明

  1. 研发方提供的第三方支付预下单接口

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 参数类型 是否必传 备注
appid int 我方提供的 GameID
currency String 实际充值币种(TWD、USD 等)
feemoney int 实际充值金额(分)
dollar int 转换为美元,分)
openid String 用户在我方的唯一 ID
roleID String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
serverID String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
wareCount int 购买商品数量(付费购买的游戏币数量,整数 >= 0,最终购买的游戏币数为 wareCount+activityExtra之和)
activityExtra int 额外赠送的游戏币数量(注意:此部分不计入VIP经验)
productID String 官方充值传商品ID;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传;不传时,玩家最终购买的游戏币数为 wareCount+activityExtra之和
wareName String 官方充值传商品;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": "cp_ordernumxxxxx"
}

# 返回参数

参数名 参数类型 备注
code int 状态:200 成功,500 失败
msg String 成功或失败的讯息,
data String cp 订单号

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 奖励发放

# 接口说明

给指定角色发放奖品、用于活动或者预注册等场景

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必传 参数类型 备注
serialNo string 发奖流水号,唯一,如果重复,不发奖,最长40位
userId String 登录后获取到的 openid
gameID string KUUKIGAME的游戏id
serverID string 游戏服ID,正式服+1递增,测试服999
roleId string 游戏角色ID,需要检验是否与userId匹配上
packageId string 奖励的道具、礼包、序列号多个物品传值方式:id,num;id2,num;id3,num….如果道具存在类型:type,id,num;type,id2,num;… URLEncode(utf-8)编码
activityCode string 活动代码
title string 发奖邮件标题 URLEncode(utf-8)编码
content string 发奖邮件内容 URLEncode(utf-8)编码
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": "1000",
  "message": "发送奖励成功"
}

# 返回参数

参数名 参数类型 备注
code string 结果代码
message string 提示信息,不是必须返回,但是充值不成功则需要返回具体信息。

# 签名规则

  • sign = md5(userId+roleId+serverID+gameID+serialNo+packageId+SecretKey).toUpperCase()
  • SecretKey 由KUUKIGAME提供

# 港台(10016)

# 区服信息

# 接口说明

  1. 查询游戏区服列表
  2. openID 为登录下发的openID,传值为空时,查询游戏所有区服列表,传值不为空时,查询用户登录过gameID的所有区服

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
gameID string KUUKIGAME的游戏id
openID string KUUKIGAME的openid
language string 语言,zh_CN(中文简体),en_US(英文),th_TH(泰文),区服名称根据语言返回内容

# 返回内容

{
  "code": "200",
  "msg": "OK",
  "data": [
    {
      "name": "区服1",
      "id": "1001",
      "openTime": "2022-05-14 00:00:00"
    },
    {
      "name": "区服2",
      "id": "1002",
      "openTime": "2022-05-14 00:00:00"
    }
  ]
}

# 返回参数

参数名 是否必须 类型 说明
code int 状态码:200正常,非200失败
msg string 错误信息
data array 区服列表
id string 区服ID
name string 区服名称
openTime string 开服时间,示例:2022-05-14 00:00:00

# 角色信息

# 接口说明

用于特殊渠道查询角色战力等信息,是否接入请询问我方

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数字段名 参数类型 是否必传 备注
gameId string 游戏Id
roleId string 角色 id
time string 秒级时间戳
sign string 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": {
    "serverId": "1",
    "serverName": "s1.五湖四海",
    "roleId": "2121",
    "roleName": "长了胡须了",
    "roleLevel": 201,
    "power": 1341321,
    "onCard": 1341321,
    "flag": 1341321
  }
}

# 返回参数

参数字段名 参数类型 备注
serverId string 角色所在区服ID string
serverName string 角色所在区服
roleId string 角色ID,考虑到游戏整个生命周期还有后续的合服情况,每个用户在不同服的角色id要保证唯一 ,千万不要使用每个服从一开始递增的简单的每个服会重复角色id的这种规则
roleName string 角色名(请做UTF-8编码)
roleLevel int 角色等级
power string 角色战力值(如果有战力值则返回)
onCard string 月卡到期时间,如果月卡没有限购可一直购买,则不传,如果有限购,则传月卡到期时间,无购买记录传"1970-01-01" 如果游戏需要季卡,年卡及其他类别的特殊品项等进行限购,再与我方技术商讨具体的字段命名
flag int 终身卡是否已经购买的标识 0未购买 1已购买; 若游戏无终身卡,可不返回。

# 签名规则

sign=MD5(gameKey={GameKey}&roleId={roleId}&time={time})

# 限购礼包

# 接口说明

  1. 查询角色可购买限购礼包ID列表(仅返回第三方上架的限购礼包即可)

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
userId String 登录后获取到的 openid
gameID string KUUKIGAME的游戏id
serverID string 游戏服ID
roleId string 游戏角色ID,需要检验是否与userId匹配上
language string 语言,英语传入English,泰语传入Thai(默认繁体字,不传改字段)
sign string 签名,参考下方签名规则

# 返回内容

{
  "ResultCode": "0",
  "ResultDesc": "success",
  "Data": [
    {
      "id": "1",
      "amount": "4500",
      "name": "45元礼包",
      "desc": "300金币 + 10元宝",
      "currency": "USD"
    },
    {
      "id": "2",
      "amount": "4500",
      "name": "45元礼包",
      "desc": "300金币 + 10元宝",
      "currency": "USD"
    }
  ]
}

# 返回参数

参数字段名 参数字段名 参数类型 备注
ResultCode String 0代表成功,其他失败
ResultDesc String 失败需要原因
Data Array 角色可购买限购礼包ID列表。
id String 礼包ID。
name String 礼包名称,根据请求Language返回对应语种
desc String 礼包描述,根据请求Language返回对应语种
amount String 单位(分)
currency String 根据请求Language返回对应币种,如美金(USD)

# 签名规则

  • sign = md5(userId+roleId+gameID+SecretKey)
  • SecretKey 由KUUKIGAME提供

# 预下单

# 接口说明

  1. 研发方提供的第三方支付预下单接口

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 参数类型 是否必传 备注
appid int 我方提供的 GameID
currency String 实际充值币种(TWD、USD 等)
feemoney int 实际充值金额(分)
dollar int 转换为美元,分)
openid String 用户在我方的唯一 ID
roleID String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
serverID String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
wareCount int 购买商品数量(付费购买的游戏币数量,整数 >= 0,最终购买的游戏币数为 wareCount+activityExtra之和)
activityExtra int 额外赠送的游戏币数量(注意:此部分不计入VIP经验)
productID String 官方充值传商品ID;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传;不传时,玩家最终购买的游戏币数为 wareCount+activityExtra之和
wareName String 官方充值传商品;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": "cp_ordernumxxxxx"
}

# 返回参数

参数名 参数类型 备注
code int 状态:200 成功,500 失败
msg String 成功或失败的讯息,
data String cp 订单号

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 港台(10018)

# 区服信息

# 接口说明

  1. 查询游戏区服列表
  2. openID 为登录下发的openID,传值为空时,查询游戏所有区服列表,传值不为空时,查询用户登录过gameID的所有区服

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
gameID string KUUKIGAME的游戏id
openID string KUUKIGAME的openid
language string 语言,zh_CN(中文简体),en_US(英文),th_TH(泰文),区服名称根据语言返回内容

# 返回内容

{
  "code": "200",
  "msg": "OK",
  "data": [
    {
      "name": "区服1",
      "id": "1001",
      "openTime": "2022-05-14 00:00:00"
    },
    {
      "name": "区服2",
      "id": "1002",
      "openTime": "2022-05-14 00:00:00"
    }
  ]
}

# 返回参数

参数名 是否必须 类型 说明
code int 状态码:200正常,非200失败
msg string 错误信息
data array 区服列表
id string 区服ID
name string 区服名称
openTime string 开服时间,示例:2022-05-14 00:00:00

# 角色信息

# 接口说明

用于特殊渠道查询角色战力等信息,是否接入请询问我方

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数字段名 参数类型 是否必传 备注
gameid int 游戏ID
serverIds string 区服 id,多个区服以,分隔
openId string 登录后获取到的 openid
roleId string 角色id
roleName string 角色名称
time string 秒级时间戳
sign string 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": [
    {
      "serverId": "1",
      "serverName": "s1.五湖四海",
      "roleId": "2121",
      "roleName": "长了胡须了",
      "roleLevel": 201,
      "power": 1341321,
      "onCard": 1341321,
      "flag": 1341321
    }
  ]
}

# 返回参数

参数字段名 参数类型 备注
code int
msg string
data array
serverId string 角色所在区服ID string
serverName string 角色所在区服
roleId string 角色ID,考虑到游戏整个生命周期还有后续的合服情况,每个用户在不同服的角色id要保证唯一 ,千万不要使用每个服从一开始递增的简单的每个服会重复角色id的这种规则
roleName string 角色名(请做UTF-8编码)
roleLevel int 角色等级
power string 角色战力值(如果有战力值则返回)
onCard string 月卡到期时间,如果月卡没有限购可一直购买,则不传,如果有限购,则传月卡到期时间,无购买记录传"1970-01-01" 如果游戏需要季卡,年卡及其他类别的特殊品项等进行限购,再与我方技术商讨具体的字段命名
flag int 终身卡是否已经购买的标识 0未购买 1已购买; 若游戏无终身卡,可不返回。

# 签名规则

  • openId、roleId、roleName 三者至少传一个,值不为空时参与签名 \
  • sign=MD5(gameKey={GameKey}&serverIds={serverIds}&openId={openId}&roleId={roleId}&roleName={roleName}&time={time}) \
  • 例如接收到的参数为 {"gameid":123456,"serverIds":"1","openId":"2","roleId":"3,"time":"4","sign":"xxx"} \
  • sign=MD5(gameKey={GameKey}&serverIds=1&openId=2&roleId=3&time=4) \

# 已激活首充的商品查询

# 接口说明

  1. 此接口主要是提供我方查询已激活首充(包含游戏内所有首冲翻倍)的商品。若游戏内重置了首冲,此接口返回内容也应同步更新

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
userId String 登录后获取到的 openid
gameID string KUUKIGAME的游戏id
serverID string 游戏服ID,正式服+1递增,测试服999
roleId string 游戏角色ID,需要检验是否与userId匹配上
sign string 签名,参考下方签名规则

# 返回内容

{
  "code": "1000",
  "message": "成功",
  "data": {
    "double": [
      "xxx.xxx.xxA",
      "xxx.xxx.xxB",
      "xxx.xxx.xxC"
    ]
  }
}

# 返回参数

参数字段名 参数类型 备注
code string 结果代码
message string 请求结果
data object 数据体
double Array 已激活首充的商品ID(如果游戏重置了首充,该接口也同时生效)

# 签名规则

sign=Md5(userId+roleId+serverID+gameID+SecretKey)SecretKey 由KUUKIGAME提供

# 预下单

# 接口说明

  1. 研发方提供的第三方支付预下单接口

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 参数类型 是否必传 备注
appid int 我方提供的 GameID
currency String 实际充值币种(TWD、USD 等)
feemoney int 实际充值金额(分)
dollar int 转换为美元,分)
openid String 用户在我方的唯一 ID
roleID String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
serverID String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
wareCount int 购买商品数量(付费购买的游戏币数量,整数 >= 0,最终购买的游戏币数为 wareCount+activityExtra之和)
activityExtra int 额外赠送的游戏币数量(注意:此部分不计入VIP经验)
productID String 官方充值传商品ID;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传;不传时,玩家最终购买的游戏币数为 wareCount+activityExtra之和
wareName String 官方充值传商品;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": "cp_ordernumxxxxx"
}

# 返回参数

参数名 参数类型 备注
code int 状态:200 成功,500 失败
msg String 成功或失败的讯息,
data String cp 订单号

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 谷歌预注册发奖接口

# 接口说明

  1. 遊戲調用SDK選服創角介面後,我方SDK自動查詢預註冊商品並驗證,驗證通過後SDK伺服器通知遊戲伺服器,遊戲伺服器給玩家發獎勵。
  2. 玩家通過谷歌商店進行預注冊->預注冊成功安裝sdk並且成功創角->我方服務端判斷發獎條件->調用貴方服務端接口
  3. 約束:一個用戶標識ID 只能兌換一次。
  4. 建議原廠那邊加一個判斷,一個 openid 只能兌換一次

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
order_id String KUUKIGAME 订单ID
openid String 登录后获取到的 openid
gameID int KUUKIGAME的游戏id
serverID string 游戏服ID,正式服+1递增,测试服999
roleId string 游戏角色ID,需要检验是否与userId匹配上
roleName string 游戏角色
product_id string 预注册品项 ID
timestamp long 時間戳 秒(加密驗證使用)
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": "1",
  "message": "OK",
  "data": "OK"
}

# 返回参数

参数名 参数类型 备注
code int 状态:1 成功,其他 失败
message String OK,
data String OK

# 签名规则

Md5(SecretKey+openid+order_id+gameID+serverID+timestamp)SecretKey 由KUUKIGAME提供

# 线下发放奖励

# 接口说明

  1. 用于线下给玩家发放道具

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
serialNo string 发奖流水号,唯一,如果重复,不发奖,最长40位
userId String 登录后获取到的 openid
gameID string KUUKIGAME的游戏id
serverID string 游戏服ID,正式服+1递增,测试服999
roleId string 游戏角色ID,需要检验是否与userId匹配上
packageId string 奖励的道具、礼包、序列号多个物品传值方式:id,num;id2,num;id3,num….如果道具存在类型:type,id,num;type,id2,num;… URLEncode(utf-8)编码
activityCode string 活动代码
title string 发奖邮件标题 URLEncode(utf-8)编码
content string 发奖邮件内容 URLEncode(utf-8)编码
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": "1000",
  "message": "发送奖励成功"
}

# 返回参数

参数字段名 参数类型 备注
code string 结果代码
message string 提示信息,不是必须返回,但是充值不成功则需要返回具体信息。

# 签名规则

  • sign = md5(userId+roleId+serverID+gameID+serialNo+packageId+SecretKey).toUpperCase()
  • SecretKey 由KUUKIGAME提供

# 越南(10020)

# 区服信息

# 接口说明

  1. 查询游戏区服列表

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
gameID string KUUKIGAME的游戏id

# 返回内容

{
  "code": "200",
  "message": "OK",
  "data": [
    {
      "server_name": "区服1",
      "server_id": "1001",
      "open_server_time": 1675067854,
      "type": 2
    },
    {
      "server_name": "区服2",
      "server_id": "1002",
      "open_server_time": 1675067854,
      "type": 1
    },
    {
      "server_name": "区服3",
      "server_id": "1003",
      "open_server_time": 1675067854,
      "type": 0
    }
  ]
}

# 返回参数

参数名 是否必须 类型 说明
code int 状态码:200正常,非200失败
msg string 错误信息
data array 区服列表
server_id string 区服ID
server_name string 区服名称
open_server_time integer 开服时间 时间戳格式,示例:1675067854
type integer 服务器状态 0-未开服 1-运营中 2-维护

# 角色信息

# 接口说明

用于特殊渠道查询角色战力等信息,是否接入请询问我方

  • 不传server_id或空,传openid, 返回当前uid在不同服的所有角色
  • 传server_id, 传openid, 返回当前服的当前用户的所有角色

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
gameid string KUUKIGAME的游戏id
serverIds string 区服id
openId string 登录返回的openid
time integer 秒级时间戳
sign string 签名,参考下方签名规则

# 返回内容

{
  "code": "200",
  "message": "OK",
  "data": [
    {
      "openid": "1008611",
      "server_id": "1",
      "server_name": "s1.五湖四海",
      "role_id": "2121",
      "role_name": "长了胡须了",
      "role_level": 201,
      "remain_coin": 1341321
    }
  ]
}

# 返回参数

参数名 是否必须 类型 说明
code int 200-成功,非200失败
message string 错误信息
openid string openid
server_id string 区服ID
server_name string 区服名称
role_id string 角色ID
role_name string 角色名称
role_level integer 角色等级
remain_coin integer 当前剩余游戏货币

# 签名规则

sign=MD5(gameKey={GameKey}&openId={openId}&time={time})

# 游戏用户封禁、解封

# 接口说明

  1. 用户踢下线

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
game_id string KUUKIGAME的游戏id
ban_type integer 封禁类型 1封禁 2解封
openid string 登录返回的openid
timestamp integer 秒级时间戳
sign string 签名,参考下方签名规则

# 返回内容

{
  "code": "0",
  "message": "OK"
}

# 返回参数

参数字段名 参数类型 备注
code int 状态码:0正常,非0失败
message string 错误信息

# 签名规则

  • 第一步:将除 sign 以外的其他 值非空 的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param
  • 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey
  • 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 游戏用户扣除游戏货币

# 接口说明

  1. 主要针对内购退款成功后,扣除游戏玩家游戏币
  • A研发只支持扣到0
    例子:
    请求扣除deduct 1000 响应扣除之前before 500 响应成功扣除success 500
    请求扣除deduct 1000 响应扣除之前before 0 响应成功扣除success 0
    请求扣除deduct 1000 响应扣除之前before 2000 响应成功扣除success 1000

  • B研发支持扣到负数
    例子:
    请求扣除deduct 1000 响应扣除之前before 500 响应成功扣除success 1000
    请求扣除deduct 1000 响应扣除之前before 0 响应成功扣除success 1000
    请求扣除deduct 1000 响应扣除之前before 2000 响应成功扣除success 1000
    请求扣除deduct 1000 响应扣除之前before -100 响应成功扣除success 1000

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
game_id string KUUKIGAME的游戏id
server_id string 区服id
role_id string 角色ID
openid string 登录返回的openid
timestamp integer 秒级时间戳
deduct_coin integer 扣除数量
deduct_product_id string 当前扣除的商品ID(可根据该值扣除VIP经验等游戏逻辑)
sign string 签名,参考下方签名规则

# 返回内容

{
  "code": "0",
  "message": "OK",
  "data": {
    "before_coin": "1008611",
    "success_deduct_coin": "1"
  }
}

# 返回参数

参数名 是否必须 类型 说明
code int 状态码:0正常,非0失败
message string 错误信息
before_coin integer 扣之前游戏币数量
success_deduct_coin integer 成功扣除游戏币数量

# 签名规则

  • 第一步:将除 sign 以外的其他 值非空 的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param
  • 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey
  • 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 问卷调查完成通知

# 接口说明

技术需要根据 survey_id 去发放对应奖励,具体奖励内容由双方运营商议决定

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
game_id string KUUKIGAME的游戏id
openid string 登录返回的openid
server_id string 区服id
role_id string 角色ID
survey_id integer 问卷ID(技术需要根据该ID去发放对应奖励,具体奖励内容由双方运营商议决定)
timestamp integer 秒级时间戳
sign string 签名,参考下方签名规则

# 返回内容

{
  "code": "0",
  "message": "OK"
}

# 返回参数

参数名 是否必须 类型 说明
code int 状态码:0正常,非0失败
message string 错误信息

# 签名规则

  • 第一步:将除 sign 以外的其他 值非空 的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param
  • 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey
  • 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 预下单

# 接口说明

  1. 研发方提供的第三方支付预下单接口

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 参数类型 是否必传 备注
appid int 我方提供的 GameID
openid String 用户在我方的唯一 ID
roleID String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
serverID String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
productID String 商品ID
produceNum int 购买商品数量,正常情况为1,拆单的情况下大于等于1
baseProps int 原价所得储值券数量
extraProps int 加码赠送的储值券数量(注意:此部分不计入VIP经验)
totalProps int 玩家最终购买的储值券数量
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": "cp_ordernumxxxxx"
}

# 返回参数

参数名 参数类型 备注
code int 状态:200 成功,500 失败
msg String 成功或失败的讯息,
data String cp 订单号

# 签名规则

  • 第一步:将除 sign 以外的其他 值非空 的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param
  • 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey
  • 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 全球(10021)

# 区服信息

# 接口说明

  1. 查询游戏区服列表

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
gameID string KUUKIGAME的游戏id

# 返回内容

{
  "code": "200",
  "msg": "OK",
  "data": [
    {
      "name": "区服1",
      "id": "1001",
      "openTime": "2022-05-14 00:00:00",
      "is_history": 1
    },
    {
      "name": "区服2",
      "id": "1002",
      "openTime": "2022-05-14 00:00:00",
      "is_history": 0
    }
  ]
}

# 返回参数

参数名 是否必须 类型 说明
code int 状态码:200正常,非200失败
msg string 错误信息
data array 区服列表
id string 区服ID
name string 区服名称
openTime string 开服时间,示例:2022-05-14 00:00:00
is_history int 是否是历史服,1代表是; 2 代表否

# 角色信息

# 接口说明

  1. 查询游戏角色信息

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
server_id string 游戏区服ID
role_id string 游戏角色ID
time integer 秒级时间戳
sign string 签名,参考下方签名规则

# 返回内容

{
  "code": "200",
  "msg": "OK",
  "data": [
    {
      "openid": "1008611",
      "server_id": "1",
      "server_name": "s1.五湖四海",
      "role_id": "2121",
      "role_name": "长了胡须了",
      "role_level": 201
    }
  ]
}

# 返回参数

参数名 是否必须 类型 说明
code int 200-成功,非200失败
msg string 错误信息
openid string openid
server_id string 区服ID
server_name string 区服名称
role_id string 角色ID
role_name string 角色名称
role_level integer 角色等级

# 签名规则

sign = MD5(server_id+role_id+time+GameKey)

# 预下单

# 接口说明

  1. 研发方提供的第三方支付预下单接口

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 参数类型 是否必传 备注
appid int 我方提供的 GameID
currency String USD
feemoney int 实际充值金额(分)
dollar int 商品原价(分)
openid String 登录用户的openid
serverID String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
roleID String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
productID String 商品标识,研发需要校验商品与对应的原价是否匹配
wareName String 商品名称
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": "cp_ordernumxxxxx"
}

# 返回参数

参数名 参数类型 备注
code int 状态:200 成功,500 失败
msg String 成功或失败的讯息,
data String cp 订单号

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 韩国(10023)

# 下单

# 接口说明

  • 游戏内跳转支付地址使用
  • 此接口由我方提供

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数字段名 参数类型 是否必传 参与签名 备注
gameid int 接入参数 gameid
channelid string 登录返回的 channelid
packetid int 包标识, 默认 0
platform String ios = 1/android=2, 默认 2
userip string 用户IP
openid string 用户唯一标识
serverid String 区服ID
servername String 区服名称
roleid String 角色ID
rolename String 角色名称
rolelevel String 角色级别
cptradecode String cp计费点
warename String 商品名称
count int 商品数量
paybill int 支付金额, 单位:分
extstr String 扩展参数,一般是cp的订单号
ts String 时间戳, 单位:毫秒
signver String 签名版本, 默认 '1'
sign String 加密规则请看, sign 生成规则

# sign 生成规则

sign=MD5(channelid={channelid}&count={count}&cptradecode={cptradecode}&extstr={extstr}&gameid={gameid}&openid={openid}&packetid={packetid}&paybill={paybill}&roleid={roleid}&serverid={serverid}&signver={signver}&ts={ts}&userip={userip}&warename={warename}&{secretKey})

# 返回内容

{
  "code": 200,
  "msg": "",
  "data": {
    "redirectUrl": "https://xxx"
  }
}

# 返回参数

参数名 是否必须 类型 说明
code int 状态码:200正常,非200失败
msg string 错误信息
data array 取里面的 redirectUrl

# 自动返利

# 接口说明

  • 返利是针对角色返利
  • 返利是针对订单号进行实时返利
  • 返利多少元宝,我们已经计算好,研发这边直接用gold来返利游戏虚拟币,研发需要校验签名和rebate_no是否重复,gold是否为不正确数值0或负数
  • 成功返利和已经返利code返回200,200表示已返利。判断订单号是否已经返利
  • 此接口由研发提供

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数字段名 参数类型 是否必传 参与签名 备注
rebatetype int 返利类型: 1-单笔返利
rebateid string 返利编号: 唯一
orderid string KUUKIGAME订单id
paymoney int 订单支付金额, 单位:分
gold int 返利福利(游戏虚拟币)
gameid int 游戏ID
roleid string 角色ID
serverid string 区服ID
openid string 用户唯一标识
time long 时间戳, 单位:秒
rebateMode int 返利模式【不参与签名】 1:日常返利 2:周末返利 3:节假日返利
sign string 参数签名【参数按字段名字典排序并在末尾添加对应游戏gamekey后MD5】

# sign 生成规则

sign=MD5(gameid={gameid}&gold={gold}&openid={openid}&orderid={orderid}&paymoney={paymoney}&rebateid={rebateid}&rebatetype={rebatetype}&roleid={roleid}&serverid={serverid}&time={time}&key={gamekey})

# 返回内容

{
  "code": 200,
  "msg": "",
  "data": {}
}

# 返回参数

参数名 是否必须 类型 说明
code int 状态码:200正常,非200失败
msg string 错误信息
data array

# 道具接口

# 接口说明

  • 自动发放道具
  • 此接口由研发提供

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数字段名 参数类型 是否必传 参与签名 备注
orderid string KUUKIGAME道具订单id
gameid int 游戏ID
roleid string 角色ID
openid string 用户唯一标识
serverid string 区服ID
time string 当前时间
mail object 邮件
mail.title string 邮件标题
mail.content string 邮件内容
prop Array 道具
prop.code string 道具编码
prop.name string 道具名称
prop.count string 道具数量
money integer 订单金额,单位分,不参与签名,部分渠道订单获取不到金额所以非必传参数,用户后期的结算付费需记录
currency string 币种
isTest int 是否测试,1-是,0-否
sign string 参数签名【参数按字段名字典排序并在末尾添加对应游戏gamekey后MD5】

# sign 生成规则

sign=MD5(content={mail.content}&gameid={gameid}&openid={openid}&orderid={orderid}&roleid={roleid}&serverid={serverid}&time={time}&title={mail.title}&key={gamekey})

# 返回内容

{
  "code": 200,
  "msg": "",
  "data": {}
}

# 返回参数

参数名 是否必须 类型 说明
code int 状态码:200正常,非200失败
msg string 错误信息
data array

# 英文(10028)

# 区服信息

# 接口说明

  • 查询游戏区服列表

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
gameId String KUUKIGAME的游戏id
language String 语言,zh_CN(中文简体),en_US(英文),th_TH(泰文),区服名称根据语言返回内容

# 返回内容

{
  "code": "200",
  "msg": "OK",
  "data": [
    {
      "name": "区服1",
      "id": "1001",
      "openTime": "2022-05-14 00:00:00",
      "type": 1
    },
    {
      "name": "区服2",
      "id": "1002",
      "openTime": "2022-05-14 00:00:00",
      "type": 0
    }
  ]
}

# 返回参数

参数名 参数名 是否必须 类型 说明
code int 状态码:200正常,非200失败
msg String 错误信息
data array 区服列表
id String 区服ID
name String 区服名称
openTime String 开服时间,示例:2022-05-14 00:00:00
type int 服务器状态 0-未开服 1-运营中 2-维护

# 角色信息

# 接口说明

  • 不传serverIds或空,传openId,返回当前uid在不同服的所有角色
  • 传serverIds,传openId,返回当前服的当前用户的所有角色
  • 传serverIds,传openId,传roleId,返回当前服的当前用户的当前角色

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
gameId String KUUKIGAME的游戏id
openId String 登录返回的openid
serverIds String 区服id,多个区服以,分隔
roleId String 角色id
time int 秒级时间戳
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": "200",
  "msg": "OK",
  "data": [
    {
      "openId": "1008611",
      "serverId": "1",
      "serverName": "s1.五湖四海",
      "roleId": "2121",
      "roleName": "长了胡须了",
      "createTime": "2022-05-14 00:00:00",
      "roleLevel": 201,
      "totalAmount": 600
    }
  ]
}

# 返回参数

参数名 参数名 是否必须 类型 说明
code int 200-成功,非200失败
msg String 错误信息
data array 角色列表
openId String openid
serverId String 区服ID
serverName String 区服名称
roleId String 角色ID
roleName String 角色名称
createTime String 创角时间,示例:2022-05-14 00:00:00
roleLevel int 角色等级
totalAmount int 游戏角色当前充值总额(分)

# 签名规则

sign=MD5(gameKey={GameKey}&openId={openId}&time={time})

# 预下单

# 接口说明

  • 研发方提供的第三方支付预下单接口

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 参数类型 是否必传 备注
gameId int 我方提供的 GameID
serverId String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
roleId String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
openId String 用户在我方的唯一 ID
dollar int 转换为美元,分)
amount int 实际充值金额(分)
currency String 实际充值币种(TWD、USD 等)
wareCount int 购买商品数量(付费购买的游戏币数量,整数 >= 0,最终购买的游戏币数为 wareCount+activityExtra之和)
activityExtra int 额外赠送的游戏币数量(注意:此部分不计入VIP经验)
productId String 官方充值传商品ID;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传;不传时,玩家最终购买的游戏币数为 wareCount+activityExtra之和
wareName String 官方充值传商品;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": "cp_ordernumxxxxx"
}

# 返回参数

参数名 参数类型 备注
code int 状态:200 成功,非200失败
msg String 成功或失败的讯息,
data String cp 订单号

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 发放奖励

# 接口说明

  • 技术需要根据 surveyId 去发放对应奖励,具体奖励内容由双方运营商议决定

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
gameId String KUUKIGAME的游戏id
openId String 登录返回的openid
serverId String 区服id
roleId String 角色id
isAll int 是否给全服玩家发送礼包,0-否,1-是
surveyId String 礼包id(技术需要根据该ID去发放对应奖励,具体奖励内容由双方运营商议决定)
title String 发奖邮件标题
content String 发奖邮件内容
serialNo String 发奖流水号,唯一
timestamp int 秒级时间戳
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": "200",
  "msg": "OK"
}

# 返回参数

参数名 参数类型 备注
code int 状态:200 成功,非200失败
msg String 成功或失败的讯息,

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 越南(10032)

# 角色信息

# 接口说明

  • 不传serverIds或空,传openId,返回当前uid在不同服的所有角色
  • 传serverIds,传openId,返回当前服的当前用户的所有角色
  • 传serverIds,传openId,传roleId,返回当前服的当前用户的当前角色

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
gameId String KUUKIGAME的游戏id
openId String 登录返回的openid
serverIds String 区服id,多个区服以,分隔
roleId String 角色id
time int 秒级时间戳
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": "200",
  "msg": "OK",
  "data": [
    {
      "openId": "1008611",
      "serverId": "1",
      "serverName": "s1.五湖四海",
      "roleId": "2121",
      "roleName": "长了胡须了",
      "createTime": "2022-05-14 00:00:00",
      "roleLevel": 201,
      "totalAmount": 600
    }
  ]
}

# 返回参数

参数名 参数名 是否必须 类型 说明
code int 200-成功,非200失败
msg String 错误信息
data array 角色列表
openId String openid
serverId String 区服ID
serverName String 区服名称
roleId String 角色ID
roleName String 角色名称
createTime String 创角时间,示例:2022-05-14 00:00:00
roleLevel int 角色等级
totalAmount int 游戏角色当前充值总额(分)

# 签名规则

sign=MD5(gameKey={GameKey}&openId={openId}&time={time})

# 发放奖励

# 接口说明

  • 技术需要根据 surveyId 去发放对应奖励,具体奖励内容由双方运营商议决定

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 是否必须 类型 说明
gameId String KUUKIGAME的游戏id
openId String 登录返回的openid
serverId String 区服id
roleId String 角色id
surveyId String 礼包id(技术需要根据该ID去发放对应奖励,具体奖励内容由双方运营商议决定)
timestamp int 秒级时间戳
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": "200",
  "msg": "OK"
}

# 返回参数

参数名 参数类型 备注
code int 状态:200 成功,非200失败
msg String 成功或失败的讯息,

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 预下单

# 接口说明

  • 研发方提供的第三方支付预下单接口

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 参数类型 是否必传 备注
gameId int 我方提供的 GameID
serverId String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
roleId String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
openId String 用户在我方的唯一 ID
dollar int 转换为美元(分)
amount int 实际充值金额(分)
currency String 实际充值币种(TWD、USD 等)
wareCount int 购买商品数量(付费购买的游戏币数量,整数 >= 0,最终购买的游戏币数为 wareCount+activityExtra之和)
activityExtra int 额外赠送的游戏币数量(注意:此部分不计入VIP经验)
productId String 官方充值传商品ID;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传;不传时,玩家最终购买的游戏币数为 wareCount+activityExtra之和
wareName String 官方充值传商品;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": "cp_ordernumxxxxx"
}

# 返回参数

参数名 参数类型 备注
code int 状态:200 成功,非200失败
msg String 成功或失败的讯息,
data String cp 订单号

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 言论接口

# 接口目的

该接口提供给游戏方将游戏内内容,包括但不限于(玩家发言 角色名 公会名 公会公告) 等内容,发往KUUKIGAME进行内容安全性过滤及验证。

# 接口

# 请求格式及方式
类型 内容
Method POST
Content-Type application/json;charset=UTF-8
# 请求参数
参数名 参数类型 是否必须 参数说明
gameId int 游戏ID
content String 用户提交的内容(发言内容)
openId String 用户标示,用户登录后下发的 openId
roleId String 角色 ID,游戏角色
serverId String 区服 ID,游戏区服
ts int 时间戳(UNIX,秒)
signVer String 签名版本,当前默认1
sign String 签名,key 为分配的参数{GameKey}
md5("gameId={gameId}&openId={openId}&roleId={roleId}&serverId={serverId}&signVer={signVer}&ts={ts}&key={GameKey}")
# 返回内容
{
  "code": 200,
  "msg": "服务正常",
  "data": {
    "status": 1
  }
}
# 返回参数
参数名 参数名 参数类型 备注
code int 状态码,成功 200,其他为异常状态
msg String 成功或失败的讯息
data Object
status int 0-不通过, 1-通过, 2-隐言(仅本人可见)
content String 不通过时返回过滤后的内容

# 港台(10064)

# 角色信息

# 接口说明

  • 不传serverIds或空,传openId,返回当前传openId在不同服的所有角色
  • 传serverIds,传openId,返回当前服的当前用户的所有角色
  • 传serverIds,传openId,传roleId,返回当前服的当前用户的当前角色

# 接口

# 请求格式及方式
类型 内容
Method POST
Content-Type application/json;charset=UTF-8
# 请求参数
参数名 是否必须 类型 说明
gameId String 游戏ID
openId String 用户标识,用户登录后下发的 openId
serverIds String 区服id,多个区服以,分隔
不参与签名
roleId String 角色id
不参与签名
ts int 时间戳(UNIX,秒)
signVer String 签名版本,当前默认1
sign String 签名,参考下方签名规则
# 签名规则
sign 加密方式

1. 剔除掉 sign 跟不需要签名的参数后,将参数数组按 key 升序排列,以 key=value 的方式用连接符"&"拼接成字符串 `param`
2. 将第一步的 `param` 拼接上我方提供的 &key={GameKey},示例:`preSign` = param+"&key={GameKey}"
3. 对第二步的 `preSign` 进行 md5 加密,示例:sign = md5(preSign)
# 返回内容
{
  "code": 200,
  "msg": "服务正常",
  "data": [
    {
      "openId": "1008611",
      "serverId": "1",
      "serverName": "s1.五湖四海",
      "roleId": "2121",
      "roleName": "长了胡须了",
      "createTime": "2022-05-14 00:00:00",
      "roleLevel": 201,
      "leftAmount": 0,
      "totalAmount": 1
    }
  ]
}
# 返回参数
参数名 参数名 是否必须 类型 说明
code int 200-成功,非200失败
msg String 成功或失败的讯息
data array 角色列表
openId String openid
serverId String 区服ID
serverName String 区服名称
roleId String 角色ID
roleName String 角色名称
createTime String 创角时间,示例:2022-05-14 00:00:00
roleLevel int 角色等级
leftAmount int 游戏角色当前剩余货币(分)
totalAmount int 游戏角色当前充值总额(分)

# 预下单

# 接口说明

  • 研发方提供的第三方支付预下单接口

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 参数类型 是否必传 备注
gameId int 我方提供的 GameID
serverId String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
roleId String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
openId String 用户在我方的唯一 ID
dollar int 转换为美元(分)
amount int 实际充值金额(分)
currency String 实际充值币种(TWD、USD 等)
wareCount int 购买商品数量(付费购买的游戏币数量,整数 >= 0,最终购买的游戏币数为 wareCount+activityExtra之和)
activityExtra int 额外赠送的游戏币数量(注意:此部分不计入VIP经验)
productId String 官方充值传商品ID;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传;不传时,玩家最终购买的游戏币数为 wareCount+activityExtra之和
wareName String 官方充值传商品;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": {
    "gameOrderCode": "",
    "gameOrderCustomInfo": ""
  }
}

# 返回参数

参数名 参数名 类型 说明
code int 状态:200 成功,非200失败
msg String 成功或失败的讯息,
data obj
gameOrderCode String 游戏方调起支付时传入的游戏订单号
gameOrderCustomInfo String 游戏方调起支付时传入的游戏订单号

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 越南(10065)

# 角色信息

# 接口说明

  • 不传serverIds或空,传openId,返回当前传openId在不同服的所有角色
  • 传serverIds,传openId,返回当前服的当前用户的所有角色
  • 传serverIds,传openId,传roleId,返回当前服的当前用户的当前角色

# 接口

# 请求格式及方式
类型 内容
Method POST
Content-Type application/json;charset=UTF-8
# 请求参数
参数名 是否必须 类型 说明
gameId String 游戏ID
openId String 用户标识,用户登录后下发的 openId
serverIds String 区服id,多个区服以,分隔
不参与签名
roleId String 角色id
不参与签名
ts int 时间戳(UNIX,秒)
signVer String 签名版本,当前默认1
sign String 签名,参考下方签名规则
# 签名规则
sign 加密方式

1. 剔除掉 sign 跟不需要签名的参数后,将参数数组按 key 升序排列,以 key=value 的方式用连接符"&"拼接成字符串 `param`
2. 将第一步的 `param` 拼接上我方提供的 &key={GameKey},示例:`preSign` = param+"&key={GameKey}"
3. 对第二步的 `preSign` 进行 md5 加密,示例:sign = md5(preSign)
# 返回内容
{
  "code": 200,
  "msg": "服务正常",
  "data": [
    {
      "openId": "1008611",
      "serverId": "1",
      "serverName": "s1.五湖四海",
      "roleId": "2121",
      "roleName": "长了胡须了",
      "createTime": "2022-05-14 00:00:00"
    }
  ]
}
# 返回参数
参数名 参数名 是否必须 类型 说明
code int 200-成功,非200失败
msg String 成功或失败的讯息
data array 角色列表
openId String openid
serverId String 区服ID
serverName String 区服名称
roleId String 角色ID
roleName String 角色名称
createTime String 创角时间,示例:2022-05-14 00:00:00
roleLevel int 角色等级
leftAmount int 游戏角色当前剩余货币(分)
totalAmount int 游戏角色当前充值总额(分)

# 预下单

# 接口说明

  • 研发方提供的第三方支付预下单接口

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 参数类型 是否必传 备注
gameId int 我方提供的 GameID
serverId String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
roleId String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
openId String 用户在我方的唯一 ID
dollar int 转换为美元(分)
amount int 实际充值金额(分)
currency String 实际充值币种(TWD、USD 等)
wareCount int 购买商品数量(付费购买的游戏币数量,整数 >= 0,最终购买的游戏币数为 wareCount+activityExtra之和)
activityExtra int 额外赠送的游戏币数量(注意:此部分不计入VIP经验)
productId String 官方充值传商品ID;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传;不传时,玩家最终购买的游戏币数为 wareCount+activityExtra之和
wareName String 官方充值传商品;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": {
    "gameOrderCode": "",
    "gameOrderCustomInfo": ""
  }
}

# 返回参数

参数名 参数名 类型 说明
code int 状态:200 成功,非200失败
msg String 成功或失败的讯息,
data obj
gameOrderCode String 游戏方调起支付时传入的游戏订单号
gameOrderCustomInfo String 游戏方调起支付时传入的游戏订单号

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 榜单信息

# 接口说明

  • 分页相关的参数暂时可以忽略, 目前需求只需返回前50条

# 接口

# 请求格式及方式
类型 内容
Method POST
Content-Type application/json;charset=UTF-8
# 请求参数
参数名 是否必须 类型 说明
gameId String 游戏ID
serverId String 区服id
pageNum int 第几页, 默认:1
pageSize int 每页多少条, 默认:50
dataType int 数据类型 1-战力榜单 2-等级榜单 3-Ruby(道具)榜单
ts int 时间戳(UNIX,秒)
signVer String 签名版本,当前默认1
sign String 签名,参考下方签名规则
# 签名规则
sign 加密方式

1. 剔除掉 sign 跟不需要签名的参数后,将参数数组按 key 升序排列,以 key=value 的方式用连接符"&"拼接成字符串 `param`
2. 将第一步的 `param` 拼接上我方提供的 &key={GameKey},示例:`preSign` = param+"&key={GameKey}"
3. 对第二步的 `preSign` 进行 md5 加密,示例:sign = md5(preSign)
# 返回内容
{
  "code": 200,
  "msg": "服务正常",
  "data": {
    "pageNum": 1,
    "pageSize": 50,
    "total": 15,
    "rank": [
      {
        "openId": "1008611",
        "serverId": "1",
        "serverName": "s1.五湖四海",
        "roleId": "2121",
        "roleName": "长了胡须了"
      }
    ]
  }
}

# 返回参数

参数名 参数名 类型 说明
code int 状态:200 成功,非200失败
msg String 成功或失败的讯息,
data obj
pageNum int 第几页
pageSize int 每页多少条
total int 总共多少条
rank arr 榜单数据
# 1-战力榜单
参数名 参数类型 是否必传 备注
openId String openId
serverId String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
roleId String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
value String 当前战力
rankValue String 当前排名
# 2-等级榜单
参数名 参数类型 是否必传 备注
openId String openId
serverId String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
roleId String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
roleLevel String 角色等级
value String 当前等级经验
rankValue String 当前排名
# 3-Ruby(道具)榜单
参数名 参数类型 是否必传 备注
openId String openId
serverId String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
roleId String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
value String 已消耗的Ruby(道具)总数量
rankValue String 当前排名

# 区服信息

# 接口说明

  • 查询游戏区服列表

# 接口

# 请求格式及方式
类型 内容
Method POST
Content-Type application/json;charset=UTF-8
# 请求参数
参数名 是否必须 类型 说明
gameId String 游戏ID
pageNum int 第几页
pageSize int 每页数量
signVer String 签名版本,当前默认1
sign String 签名,参考下方签名规则
# 签名规则
sign 加密方式

1. 剔除掉 sign 跟不需要签名的参数后,将参数数组按 key 升序排列,以 key=value 的方式用连接符"&"拼接成字符串 `param`
2. 将第一步的 `param` 拼接上我方提供的 &key={GameKey},示例:`preSign` = param+"&key={GameKey}"
3. 对第二步的 `preSign` 进行 md5 加密,示例:sign = md5(preSign)
# 返回内容
{
  "code": 200,
  "msg": "服务正常",
  "data": {
    "serverList": [
      {
        "serverId": "1",
        "serverName": "s1.五湖四海"
      }
    ],
    "totalPage": 1
  }
}
# 返回参数
参数名 参数名 参数名 是否必须 类型 说明
code int 200-成功,非200失败
msg String 成功或失败的讯息
data obj 分页对象
data.totalPage int 总页数
data.serverList array 区服列表
serverId String 区服ID
serverName String 区服名称
serverCreatedAt String 开服时间,示例:2022-05-14 00:00:00

# 巴西(10069)

# 角色信息

# 接口说明

  • 不传serverIds或空,传openId,返回当前传openId在不同服的所有角色
  • 传serverIds,传openId,返回当前服的当前用户的所有角色
  • 传serverIds,传openId,传roleId,返回当前服的当前用户的当前角色

# 接口

# 请求格式及方式
类型 内容
Method POST
Content-Type application/json;charset=UTF-8
# 请求参数
参数名 是否必须 类型 说明
gameId String 游戏ID
openId String 用户标识,用户登录后下发的 openId
serverIds String 区服id,多个区服以,分隔
不参与签名
roleId String 角色id
不参与签名
ts int 时间戳(UNIX,秒)
signVer String 签名版本,当前默认1
sign String 签名,参考下方签名规则
# 签名规则
sign 加密方式

1. 剔除掉 sign 跟不需要签名的参数后,将参数数组按 key 升序排列,以 key=value 的方式用连接符"&"拼接成字符串 `param`
2. 将第一步的 `param` 拼接上我方提供的 &key={GameKey},示例:`preSign` = param+"&key={GameKey}"
3. 对第二步的 `preSign` 进行 md5 加密,示例:sign = md5(preSign)
# 返回内容
{
  "code": 200,
  "msg": "服务正常",
  "data": [
    {
      "openId": "1008611",
      "serverId": "1",
      "serverName": "s1.五湖四海",
      "roleId": "2121",
      "roleName": "长了胡须了",
      "createTime": "2022-05-14 00:00:00"
    }
  ]
}
# 返回参数
参数名 参数名 是否必须 类型 说明
code int 200-成功,非200失败
msg String 成功或失败的讯息
data array 角色列表
openId String openid
serverId String 区服ID
serverName String 区服名称
roleId String 角色ID
roleName String 角色名称
createTime String 创角时间,示例:2022-05-14 00:00:00

# 预下单

# 接口说明

  • 研发方提供的第三方支付预下单接口

# 请求方式

POST url
header Content-Type:application/json

# 请求参数

参数名 参数类型 是否必传 备注
gameId int 我方提供的 GameID
serverId String 用户在 CP 方的区服 ID
serverName String 用户在 CP 方的区服名称
roleId String 用户在 CP 方的角色 ID
roleName String 用户在 CP 方的角色名称
openId String 用户在我方的唯一 ID
dollar int 转换为美元(分)
amount int 实际充值金额(分)
currency String 实际充值币种(TWD、USD 等)
wareCount int 购买商品数量(付费购买的游戏币数量,整数 >= 0,最终购买的游戏币数为 wareCount+activityExtra之和)
activityExtra int 额外赠送的游戏币数量(注意:此部分不计入VIP经验)
productId String 官方充值传商品ID;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传;不传时,玩家最终购买的游戏币数为 wareCount+activityExtra之和
wareName String 官方充值传商品;第三方储值由于部分金流没有商品Id设定,所以有则传,没有则不传
sign String 签名,参考下方签名规则

# 返回内容

{
  "code": 200,
  "msg": "成功",
  "data": {
    "gameOrderCode": ""
  }
}

# 返回参数

参数名 参数名 类型 说明
code int 状态:200 成功,非200失败
msg String 成功或失败的讯息,
data obj
gameOrderCode String 游戏方调起支付时传入的游戏订单号

# 签名规则

- 第一步:将除 sign 以外的参数按照字母顺序排序,以 key=value 的方式用连接符“&”拼接成字符串param

- 第二步:将第一步的 param 拼接上我方提供的 SecretKey,示例:preSign = param+SecretKey

- 第三步:对第二步的 preSign 进行 md5 加密,示例:sign = md5(preSign)

# 发放奖励

# 接口目的

该接口由研发提供,需要根据 giftId 去发放对应奖励,奖励内容由双方运营商议决定。

# 接口

# 请求格式及方式
类型 内容
Method POST
Content-Type application/json;charset=UTF-8
# 请求参数
参数名 参数类型 是否必须 参数说明
gameId int 游戏ID
openId String 用户标识,用户登录后下发的 openId
serverId String 区服 ID,游戏区服(拿不到的情况会传0)
roleId String 角色 ID,游戏角色
isAll int 是否给全服玩家发送礼包
0.否 1.是
giftId String 礼包id
serialNo String 发奖流水号,唯一
ts int 时间戳(UNIX,秒)
signVer String 签名版本,当前默认1
sign String 签名,key 为分配的参数{GameKey}
md5("gameId={gameId}&giftId={giftId}&isAll={isAll}&openId={openId}&roleId={roleId}&serialNo={serialNo}&serverId={serverId}&signVer={signVer}&ts={ts}&key={GameKey}")
# sign 生成规则
sign 加密方式

1. 剔除掉 sign 跟不需要签名的参数后,将参数数组按 key 升序排列,以 key=value 的方式用连接符"&"拼接成字符串 `param`
2. 将第一步的 `param` 拼接上我方提供的 &key={GameKey},示例:`preSign` = param+"&key={GameKey}"
3. 对第二步的 `preSign` 进行 md5 加密,示例:sign = md5(preSign)
# 返回内容
{
  "code": 200,
  "msg": "服务正常"
}
# 返回参数
参数名 参数名 参数类型 备注
code int 状态码,成功 200,其他为异常状态
msg String 成功或失败的讯息