基础功能

文档修订记录

版本 更新日期 更新内容
3.0.10 2024.09.23 登录校验接口接口返回信息,扩展字段extend新增relation_wechat_open_id字段
3.0.9 2024.09.11 从聚合渠道SDK文档独立拆分
3.0.8 2024.08.28 登录校验接口接口返回信息,新增channel_template_id、channel_template_code、passport_code字段
3.0.7 2024.08.07 支付回调和订单查询接口返回信息,新增os字段
3.0.6 2024.06.03 更新订单查询接口返回信息,新增channel_id字段
3.0.5 2024.05.14 新增账号登录和支付时序图
3.0.4 2022.03.30 登录校验接口verify新增type参数,可实时获取用户扩展信息,包含三方绑定信息
3.0.3 2021.01.21 更新支付回调接口返回信息,新增渠道ID标识,回调策略调整
3.0.2 2021.01.05 更新verify校验接口返回信息,新增用户详情信息
3.0.1 2020.10.27 新增verify会话校验接口,订单查询新增source参数
3.0.0 2020.05.25 新版本首发

1. 登录校验接口

1.1 登录流程

file

1、用户在游戏内点击登录,游戏客户端调用聚合SDK的登录接口
2、聚合SDK拉起渠道登录页面,用户在登录页面完成登录
3、聚合SDK携带渠道用户登录信息请求聚合服务端登录接口,聚合服务端进行渠道用户登录信息校验,完成聚合账号登录
4、游戏客户端携带聚合用户登录信息请求游戏服务端登录接口,游戏服务端进行聚合用户登录信息校验,完成游戏账号登录
1.2 说明
  • 场景一:登录成功后,游戏服务端需要携带token及聚合渠道用户OpenID等信息到平台服务端进行请求校验,确保本次登录是有效的,同时平台会返回对应当前用户的扩展信息,包含手机、生日、性别、名字、第三方信息(如qq、微信等昵称),部分个人信息会进行脱敏。
  • 场景二:如果玩家在个人中心进行了相关三方绑定操作,比如绑定了微信/QQ/Facebook等,游戏方需要实时获得玩家的绑定情况时,只需将type参数值设置为2来进行实时的渠道用户信息获取,通过用户三方信息的昵称是否有值来判断是否绑定成功。

备注:用户扩展信息,如三方绑定关系,手机号等,大部分渠道无法获取,目前仅保证能返回星云官方渠道的用户扩展信息。

1.3 Api地址

备注:由于目前通信网关有区分地域部署,所以请使用对应游戏发行区域的请求地址。

1.4 请求方式

GET

1.5 请求参数
参数名 必选 类型 说明
app_id string 开放平台AppID
source string 固定值:gateway_srv
open_id string 聚合渠道用户OpenID(作为游戏内的唯一账号标识关联字段
token string 登录票据,有效期为7天
type int 请求类型,默认值为1。1:登录校验,2:实时从渠道获取对应用户信息,包含三方信息
timestamp int 时间戳
sign string 签名值,请使用对接中心提供的AppSecret进行签名
sign_type string 签名类型(默认:md5)
sign_nonce string 签名随机数(随机数字+字符串共8位)
sign_version string 签名版本,默认1.0
1.6 返回参数
通用参数
参数名 类型 说明
request_id string 请求唯一ID,可提供该ID到星云平台进行信息追踪定位
status int 状态码, 0代表成功,非0状态码可参考如下错误码表格确认信息
message string 返回结果描述
数据参数

(若status=0,则data数据参数会返回对应如下信息)

参数名 类型 说明
union_id string 聚合渠道用户UnionID
open_id string 聚合渠道用户OpenID(作为游戏内的唯一账号标识关联字段
mobile string 手机号,已脱敏
birthday string 生日信息
gender int 性别,0 未知、1 男、2 女
name string 用户姓名,已脱敏
partner array 第三方信息,为空时返回array空数组,有值时返回json数组,有绑定才会有值,包括:qq_nickname、wechat_nickname、facebook_nickname、google_nickname、apple_nicknane
wechat_session_key string 微信小游戏登录会话
douyin_session_key string 抖音小游戏登录会话
channel_template_id int 渠道模版ID
channel_template_code string 渠道模版标识
passport_code string 通行证标识
extend array 扩展字段
extend.relation_wechat_open_id string 使用官方通行证账号登录,且与微信小游戏账号互通后,返回关联微信小游戏OpenID,用于引力引擎数据上报账号做关联
1.7 返回结果

成功示例:

三方信息为空时:
{
    request_id:"db9777207c8824ed1f52e046a8c47b7a"
    status:0
    message:"成功"
    data:{
        union_id:"5e9b919ba18aafbc30337dd728247771"
        open_id:"285990c1ec3c488592657e33cfa61551"
        mobile:"198*****195"
        birthday:"2001-05-03"
        gender:1
        name:"李*"
        partner:[]
        wechat_session_key:""
        douyin_session_key:""
        channel_template_id:1
        channel_template_code:""
        passport_code:""
    }
}

三方信息有值时:
{
    request_id:"db9777207c8824ed1f52e046a8c47b7a"
    status:0
    message:"成功"
    data:{
        union_id:"5e9b919ba18aafbc30337dd728247771"
        open_id:"285990c1ec3c488592657e33cfa61551"
        mobile:"198*****195"
        birthday:"2001-05-03"
        gender:1
        name:"李*"
        partner:{
            qq_nickname: "ଘ南柯ଓ"
        }
        wechat_session_key:""
        douyin_session_key:""
        channel_template_id:1
        channel_template_code:""
        passport_code:""
    }
}

2. 支付回调

2.1 支付流程

file

1、用户在游戏内商城点击购买,游戏客户端调用聚合SDK的下单接口,传入用户信息、商品信息和游戏支付参数。
2、聚合SDK在聚合服务端创建订单,并从服务端获得拉起渠道支付页面所需的参数和签名。
3、聚合SDK拉起渠道支付页面,用户在支付页面完成支付。
4、聚合SDK回调游戏客户端支付结果;聚合服务端异步回调游戏服务端支付结果,并且仅回调支付成功的订单。
5、游戏服务端发放对应道具,并在游戏客户端展示获得道具。
2.2 说明
  • 支付成功后,平台将按一定策略异步回调通知游戏服务端。回调时间间隔策略为:0秒,2秒,5秒,10秒,1分钟,5分钟,10分钟,1小时,2小时,6小时,15小时 直到游戏方返回成功标识 SUCCESS 为止,若达到最大重试次数游戏服务端还是依然返回失败的话,则后续需人工介入进行补单操作(请务必在response header里设置content-type=text/plain)。
  • 唯一性校验请务必进行订单的唯一性校验,防止重复下发商品给玩家造成不必要损失。
  • 沙箱充值沙箱充值(sandbox=1)为未进行实质性充值,只提供联调测试,跑通整个支付流程。请严格区分沙箱状态的订单,正式服仅针对非沙箱订单进行道具下发,避免被非法人员恶意利用!!!
2.3 回调地址

file

  • 回调地址:需前往对接中心里面设置对应游戏回调地址。
  • IP白名单:请前往对接中心查看回调来源IP列表,必要的话请将对应IP添加为回调通知的合法白名单来源。(**非必须**)
2.4 请求方式

POST

2.5 参数列表
参数名 必传 类型 说明
trade_status string TRADE_SUCCESS 成功, 其他值:TRADE_PROCESSING(业务执行中), TRADE_FAIL(支付失败)
trade_no string 星云订单号
trade_time string 订单支付时间,日期时间格式
out_trade_no string 游戏方订单号
total_amount int 支付金额(单位分)
goods_id string 游戏商品ID
app_id string 开放平台AppID
player_id string 游戏角色ID
open_id string 聚合渠道用户OpenID
server_id int 游戏区服ID
channel_id string 聚合渠道ID
sandbox int 是否沙箱充值,1为沙箱充值,0非沙箱(沙箱充值(sandbox=1)为未进行实质性充值,只提供联调测试,跑通整个支付流程。请严格区分沙箱状态的订单,正式服仅针对非沙箱订单进行道具下发,避免被非法人员恶意利用!!!
os string 操作系统:ios、android、harmony、other
timestamp int 请求时间戳
notify_ext string 回调扩展,游戏方在发起订单请求时传递过来的参数,平台将原封不动回传过去
sign string 签名串,根据创建订单传递过来的pay_sign_type类型,使用不同的签名方式,md5则使用AppSecret进行签名,rsa的则使用PayPublicKey进行验证
2.6 返回结果

游戏服务端校验成功后需返回字符串SUCCESS,否则平台将会依据对应的回调策略持续请求。请务必在response header里设置content-type=text/plain

成功示例:

SUCCESS

3. 订单查询接口

3.1 说明
  • 提供通过星云订单号或游戏方订单号进行订单信息查询,若两种订单号都传,则以星云订单号为准。
3.2 Api地址
3.3 请求方式

GET

3.4 请求参数
参数名 必选 类型 说明
app_id string 开放平台AppID
source string 固定值:gateway_srv
trade_no 与out_trade_no二选一 string 星云订单号
out_trade_no 与trade_no二选一 string 游戏方订单号
timestamp int 时间戳
sign string 签名值,请使用对接中心提供的AppSecret进行签名
sign_type string 签名类型(默认:md5)
sign_nonce string 签名随机数(随机数字+字符串8位)
sign_version string 签名版本,默认1.0
3.5 返回参数
通用参数
参数名 类型 说明
request_id string 请求唯一ID,可提供该ID到星云平台进行信息追踪定位
status int 状态码, 0代表成功,非0状态码可参考如下错误码表格确认信息
message string 返回结果描述
数据参数

(若status=0,则data数据参数会返回对应如下信息)

参数名 类型 说明
trade_status string TRADE_SUCCESS 成功, 其他值:TRADE_PROCESSING(业务执行中), TRADE_FAIL(支付失败)
trade_no string 星云订单号
trade_time string 订单支付时间,日期时间格式
out_trade_no string 游戏方订单号
total_amount int 支付金额(单位分)
goods_id string 游戏商品ID
app_id string 开放平台AppID
channel_id string 开放平台ChannelID
player_id string 游戏角色ID
open_id string 聚合渠道用户OpenID
server_id int 游戏区服ID
sandbox int 是否沙箱充值,1为沙箱充值,0非沙箱(沙箱充值(sandbox=1)为未进行实质性充值,只提供联调测试,跑通整个支付流程。请严格区分沙箱状态的订单,正式服仅针对非沙箱订单进行道具下发,避免被非法人员恶意利用!!!
os string 操作系统:ios、android、harmony、other
3.6 返回结果

成功示例:

{
    request_id:"db9777207c8824ed1f52e046a8c47b7a"
    status:0
    message:"成功"
    data: {
        "trade_status": "TRADE_SUCCESS",
        "trade_no": "200012020042819533749873188",
        "trade_time": "2020-04-28 19:56:37",
        "out_trade_no": "61ede5abb8af65d87a036e5c48ebfb051",
        "total_amount": 100,
        "goods_id": "com.feiyu.sandbox.demo.1",
        "app_id": "20001",
        "player_id": "role_id_001",
        "open_id": "88f8d15ce0fa3325eb93241a8d06de44",
        "server_id": 1,
        "sandbox": 1,
        "os": "android"
    }
}

4 签名规则

4.1 MD5签名
4.1.1、获取基础接入参数

在【对接中心->SDK对接->SDK列表】,App ID(请求参数app_id)App Secret(签名密钥)

file

4.1.2、签名文档

参考:鉴权指南md5 - v1.0

4.2 RSA步骤说明
4.2.1、获取基础接入参数

在【对接中心->SDK对接->SDK列表】,App ID(请求参数app_id)充值 Key(验签公钥)

file

4.2.2、签名文档

参考:鉴权指南rsa - v1.0