普通小游戏开发
API
开放能力
数据分析
视频拍摄器
多端支持

tt.requestGamePayment 1.5.3+

发起支付

提示

调用该方法时,需要保证用户已经登录。可以调用tt.checkSession检测用户登录状态,以避免用户处于未登录状态时支付订单,在登录后无法关联订单与登录后的账户。

  1. 异常情况下,充值有可能存在游戏币延迟到账问题,建议游戏在收到支付结果回调后,向服务端轮询最新游戏币余额,间隔 3 秒,持续约 1 分钟,可以根据返回值的 save_amt 的变化来确定是否充值成功。
  2. 同时也存在一些异常情况,导致充值成功后结果回调失败,因此建议游戏在启用游戏时主动查询游戏币余额,并且提供给用户主动刷新余额的功能。(不要将查询余额作为进入游戏的必要条件,查询失败时,可在显示余额的界面显示异常,不要拒绝用户进入游戏,更不要直接显示 0)
  3. 强烈建议请求中填入 customId 和 extraInfo 字段(字段意义见下方表格),如果未填,支付结果回调将不包含游戏开发者的订单号,导致开发者无法确定回调是对应哪个订单,从而影响游戏道具发放。如果遇到此类问题,开发者可调用queryPayState 接口进行订单状态确认。

以上三条均属建议,供游戏参考。

输入

继承标准对象输入,扩展属性描述:

属性类型默认值是否必填说明最低基础库版本
modestring支付的类型, 目前仅为"game"
envnumber0环境配置,目前合法值仅为"0"
currencyTypestring币种, 目前仅为"CNY"
platformstring申请接入时的平台,目前仅为"android"
buyQuantitynumber金币购买数量,金币数量必须满足:金币数量*金币单价 = 限定价格等级(详见下方 buyQuantity 限制说明。开发者可以在字节小游戏平台的“支付”tab 设置游戏币单价)
zoneIdstring1游戏服务区 id,开发者自定义。游戏不分大区则默认填写"1"。如果应用支持多角色,则角色 ID 接在分区 ID 后,用"_"连接
customIdstring游戏开发者自定义的唯一订单号,订单支付成功后通过服务端支付结果回调回传1.55.0
extraInfostring游戏开发者自定义的其他信息,订单支付成功后通过服务端支付结果回调回传1.55.0

mode 合法值

说明
game购买游戏币

env 合法值

说明
0支付正式环境

currencyType 合法值

说明
CNY人民币

platform 合法值

说明
androidandroid

输出

fail 回调函数接收的对象扩展属性

属性类型说明
errCodenumber错误码

errCode 的值类型

说明
-1支付失败
-2支付取消
-15001缺少参数
-15002请求参数不合法
-15003app 不支持小游戏支付
-15006app 没有支付权限
-15009内部错误,支付失败
-15098当前用户未通过实名认证
-15099当前用户累计支付金额超过限制
-16000用户未登录
2正在支付一起订单时,又发起了一笔支付请求
3调起收银台失败
4网络异常
5IOS 平台错误,当前平台不支持支付
6其他错误

buyQuantity 限制说明

购买游戏币的数量,开发者可以在字节小游戏平台的“支付”tab 设置游戏币单价, 换算成 RMB 必须满足以下价格档位, 即 buyQuantity * 游戏币单价 = 限定价格等级。如:游戏币单价为 0.1 元,一次购买数量至少是 10 个。

限定价格等级(单位:元)
1
3
6
8
12
18
25
30
40
45
50
60
68
73
78
88
98
108
118
128
148
168
188
198
328
648

示例

tt.requestGamePayment({
  mode: "game", // 支付类型
  env: 0, //支付环境
  currencyType: "CNY", // 币种:目前仅为 "CNY"
  platform: "android", // 申请接入时的平台:目前仅为"android"
  buyQuantity: 600, // 购买数量,必须满足:金币数量*金币单价 = 限定价格等级(详见金币限定等级)
  zoneId: "1",
  customId: "QWERTYUIDFxxxxx", //开发者自定义唯一订单号。如不填,支付结果回调将不包含此字段,将导致游戏开发者无法发放游戏道具, 基础库版本低于1.55.0没有此字段
  extraInfo: '{
    userId: "12xxx6",   //用户自定义额外信息,支付结果回调信息包含此字段, 基础库版本低于1.55.0没有此字段
    version: "v0.0.0",
    price: "30",
  }',//extraInfo要转成字符串
  success(res) {
    console.log("调用函数成功");
  },
  fail(res) {
    console.log("调用函数失败");
  },
  complete(res) {
    console.log("调用完成");
  },
});
点击纠错
评价此篇文档