变更玩家余额

变更玩家余额,该API接口由商户(运营商)提供,供游戏平台进行调用

该接口会被多次调用,下注、取消下注、返奖、结束游戏等,都会调用1次。

每次调用changeType栏位值所有不同。

请求地址

POST {API_URL_ROOT}/player/changeBalance

注意:此地址,可在商户后台进行配置,但输入、输出参数需要满足下面要求

Request参数

Header内容

参数名 必填 类型 说明
sign string 签名,使用签名算法计算得到
timestamp int 时间戳,单位秒,从1970年1月1日到现在所经过的秒数,如:1741837297
Accept-Language string 接收的语言编码,参考语言列表,如:zh,en,以便在报错的时候,提供响应的语言错误信息。
Content-Type string "application/json; charset=utf-8"

BODY内容 **

参数名 必填 类型 说明
recordId string 游戏记录ID,区分玩家每次游戏的唯一标识
txId string 交易ID,区分每次调用请求唯一标识
tenantId int 商户ID, 平台给你分配的唯一的整数
userId string 商户的玩家ID, 能够区分每一个玩家的ID
gameId int 游戏ID
changeType int 变更类型, 枚举值列表见下面 changeType类型说明
betType int 下注类型, 枚举值列表见下面
betAmount double 下注金额
bonus double 返奖金额
multiple double 返奖倍数,有时候此值与bonus/betAmount会有稍有差异,如:预设指定倍数提现,返奖金额又触发了最大返奖金额限制时会有所不同
roundId string 对局ID, 多用于多人游戏,标识每一局游戏唯一ID
area int 区域ID, 默认是0,有的游戏有区域下注,用于区分不同区域
currency string 币种
isCompleted bool 是否完成,返奖时此值必输,最后一次方返奖的时候,可以直接设置本栏位值=true,就不需要再调用结束游戏请求(changeType=4),少调一次请求
isRetry bool 是否重试,有时一次请求会超时或是正常返回结果,将会触发6次重试机制,直到成功返回结果,重试时此值为true
parentId string 父亲ID,slot游戏,有会触发免费旋转的场景,如果当前记录是免费旋转的记录时,parentId就是原下注的记录ID,同时betType=3,betAmount=0 标识免费旋转

changeType值不同,各个字段的值也会有所不同,共有4种类型:正常下注,取消下注,返奖,游戏结束等

  1. 下注并返奖场景,changeType=0 betAmount栏位有值,bonus栏位值为0,bonus栏位值>0就有返奖,=0就是没有返奖 multiple栏位是返奖倍数,有值则取此值,没有值,则系统会使用bonus/betAmount计算 isCompleted栏位值=true,直接结束此次下注

  2. 正常下注场景,changeType=1 betAmount栏位有值,bonus栏位值为0

  3. 取消下注场景,changeType=2 betAmount栏位有值,下注时金额

  4. 返奖场景,changeType=3 betAmount栏位值为0,bonus栏位有值 返奖,个别游戏可能会有多次调用 multiple栏位是返奖倍数,有值则取此值,没有值,则系统会使用bonus/betAmount计算 最后一次返奖时,可以设置isCompleted=true,表示本局游戏已经结束,和再调用一次本接口changeType=4效果相同

  5. 结束游戏场景,changeType=4 betAmount栏位值为0,bonus栏位值为0

  6. slot游戏触发免费旋转的场景,changeType=0 betType=3 标识此次投注是免费旋转,同时,parentId有值,值为触发本次免费旋转的原下注记录ID,免费旋转可能会有多次返奖,每次返奖的recordId都不一样

示例

一共分6种情况

//下注并返奖场景:
{
  "recordId": "682ed6edce1c812d736c4876",
  "txId": "682ed6edce1c812d736c4877",
  "tenantId": 2317,
  "userId": "t20339",
  "gameId": 2001,
  "changeType": 0,
  "betType": 0,
  "betAmount": 100.00,
  "bonus": 30,
  "multiple": 0.30,
  "roundId": "12353",
  "area": 0,
  "currency": "BRL",
  "details": null,
  "isCompleted": true
}
//正常下注场景:
{
  "recordId": "682ed6edce1c812d736c4876",
  "tenantId": 2317,
  "userId": "t20339",
  "gameId": 2001,
  "changeType": 1,
  "betType": 1,
  "betAmount": 100.00,
  "bonus": 0,
  "multiple": 0,
  "roundId": "12353",
  "area": 0,
  "currency": "BRL",
  "details": null,
  "isCompleted": false
}

//取消下注场景:
{
  "recordId": "682ed6edce1c812d736c4876",
  "tenantId": 2317,
  "userId": "t20339",
  "gameId": 2001,
  "changeType": 2,
  "betType": 1,
  "betAmount": 100.00,
  "bonus": 0,
  "multiple": 0,
  "roundId": "12353",
  "area": 0,
  "currency": "BRL",
  "details": null,
  "isCompleted": false
}

//返奖场景:
{
  "recordId": "682ed6edce1c812d736c4876",
  "tenantId": 2317,
  "userId": "t20339",
  "gameId": 2001,
  "changeType": 3,
  "betType": 1,
  "betAmount": 0,
  "bonus": 50.00,
  "currency": "BRL",
  "details": null,
  "isCompleted": true
}

//结束游戏场景:
{
  "recordId": "682ed6edce1c812d736c4876",
  "tenantId": 2317,
  "userId": "t20339",
  "gameId": 2001,
  "changeType": 4,
  "betType": 1,
  "betAmount": 0,
  "bonus": 0,  
  "multiple": 0,
  "roundId": "12353",
  "area": 0,
  "currency": "BRL",
  "details": null,
  "isCompleted": true
}

//slot游戏免费旋转场景:
{
  "recordId": "682ed6edce1c812d73ac2899",
  "tenantId": 2317,
  "userId": "t20339",
  "gameId": 2001,
  "changeType": 0,
  "betType": 3,
  "betAmount": 0,
  "bonus": 0,  
  "multiple": 0,
  "roundId": "12353",
  "area": 0,
  "currency": "BRL",
  "details": null,
  "isCompleted": true,
  "parentId": "682ed6edce1c812d736c4876"
}

Response参数

参数名 必填 类型 说明
tenantId int 商户ID, 平台给你分配的唯一的整数
userId string 商户的用户ID, 能够区分每一个玩家的ID
balance double 玩家余额,不管是否扣减是否成功,都应该正确得返回当前账户余额,并更新账户余额
currency string 游戏币种

注意: 不管isSuccess为true还是false,都应该正确得返回当前账户余额,系统会根据balance值更新当前账户余额,如果当前账户状态异常,不能玩游戏,balance一定返回0

示例

{
  "isSuccess": true,
  "code": 0,
  "data": {
    "tenantId": 1,
    "userId": "t1_276682",
    "balance": 100000,
    "currency": "BRL"
  }
}
//余额不足场景:
{
  "isSuccess": false,
  "code": xxx,//商户余额不足的错误代码,比如:2012
  "message":"余额不足,下注失败",
  "data": {
    "tenantId": 1,
    "userId": "t1_276682",
    "balance": 1.0,    //当前余额
    "currency": "BRL"
  }
}
//玩家被禁用场景:
{
  "isSuccess": false,
  "code": xxx,//商户状态异常的错误代码,比如:2013
  "message":"玩家被禁用,下注失败",
  "data": {
    "tenantId": 1,
    "userId": "t1_276682",
    "balance": 0.0,    //强制为0
    "currency": "BRL"
  }
}

betType 下注类型值列表

说明
1 正常下注
2 连消
3 免费旋转
4 重转

changeType类型说明

说明
0 下注并返奖
1 正常下注
2 取消下注
3 返奖
4 结束游戏

游戏流程举例说明:

非直接下注并返奖的场景,会有下面几个流程

  1. 正常下注返奖 游戏下注 -> 游戏返奖(isCompleted=true);对应changeType值,从1 -> 3;玩家在游戏内进行投注,并中奖结算,对局结束;此情况适用大部分游戏流程,最后一次返奖isCompleted=true,推荐此流程,少调用一次接口 游戏下注 -> 游戏返奖 -> 游戏对局结束; 对应changeType值,从1 -> 3 -> 4;玩家在游戏内进行投注,并中奖结算,对局结束;此情况适用大部分游戏流程;

  2. 取消下注 游戏下注 -> 取消下注;对应changeType值,1 -> 2;玩家在游戏内进行投注,对局开始前自主取消下注,一般为百人场、Mini Game类游戏;取消下注的recordId与下注的recordId一致;

  3. 未返奖 游戏下注 -> 未中奖 -> 游戏对局结束;对应changeType值,从1 -> 4;玩家在游戏内进行投注,当局未中奖,验证对局结束;

  4. 一次下注多次返奖 此种情况一般为连消类slot、slot游戏进入特殊玩法、彩票类游戏,玩家在游戏内进行投注,此局中奖多次直到对局结束。 游戏下注 -> 游戏返奖 -> 游戏返奖 -> 游戏返奖········ -> 游戏返奖(isCompleted=true);对应changeType值,从1 -> 3 -> 3 -> ······· -> 3;最后一次返奖isCompleted=true,推荐此流程,少调用一次接口 游戏下注 -> 游戏返奖 -> 游戏返奖 -> 游戏返奖········ -> 游戏对局结束;对应changeType值,从1 -> 3 -> 3 -> ······· -> 4;

results matching ""

    No results matching ""