能力接入介绍收藏我的收藏
收藏
我的收藏前提条件 - 开通支付功能
- 1.在小游戏开发者后台-【虚拟支付】查看能力,并申请开通(未满足开通条件时,请先按照说明补全资质认证)
- 2.请仔细阅读相关协议,并勾选同意协议
- 3.开通收款商户,详细资料填写流程可参考虚拟支付2.0接入指引
- 4.确认结算账户信息并填写银行账号等相关信息。
- 5.设置游戏币兑换汇率(注意填写后提交通过后将无法更改),设置服务端回调地址等,完成后提交申请,等待审核。
- 6.审核通过后即可使用支付 SDK 能力进行小游戏支付
小游戏支付时序图
技术方案流程
步骤一:前端调用小游戏支付
小游戏前端调用
tt.requestGamePayment
(Android) / tt.openAwemeCustomerService
(ios) 接口,生成订单调起小程序收银台,发起支付流程。示例如下:tt.requestGamePayment({ currencyType: "CNY", // 币种:目前仅为"DIAMOND" 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("调用完成"); }, });
步骤二:获取支付结果并将结果发给小游戏服务端
支付结果会发送给小游戏前端和字节服务端,为减少掉单情况发生,建议开发者同时接入小游戏前端回调和服务端回调,同时把支付结果传递给小游戏服务端进行后续业务处理。
- •前端回调:Android 小游戏前端可使用
tt.requestGamePayment
回调结果进行后续业务处理;ios支付接口 tt.openAwemeCustomerService
暂不支持,请从服务端回调获取支付结果。- •服务端回调:需要提前设置服务端回调地址,参考服务端回调接口,设置成功后,字节服务端会将用户支付成功的订单发送给小游戏服务端,
- •主动查询订单状态:回调由于网络异常等原因无法 100%触达,开发者可以使用queryPayState手动查询订单状态。
步骤三:小游戏服务端发起请求扣除游戏币并下发对应游戏道具给用户
测试流程
方案 | 说明 | 图示 | 注意事项 |
在IDE中调用支付接口 | 在开发者工具中调用支付接口时,可验证接口传入参数有效性。 参数校验通过后模拟器将展示支付二维码,对应真机上表现为拉起收银台 | | 此二维码只用作能力模拟,无法真实进行扫码支付 |
扫码/真机调试(推荐) | 完整测试支付链路,使用开发者工具中的【预览/真机调试】功能,扫码后可在真机上拉起收银台 | |
|
接口列表
名称 | 类型 | 描述 |
JSAPI | 安卓发起支付JSAPI | |
JSAPI | ios发起支付JSAPI | |
回调 | 玩家支付完成后,字节服务端会将订单发送给小游戏服务端 | |
OpenAPI | 未接收到回调时,开发者可以通过该接口主动回查订单状态 | |
OpenAPI | 开通小游戏支付后,如果需要查询某个用户的游戏币余额,此时可以通过调用获取游戏币余额接口获取用户余额。 | |
OpenAPI | 可以调用该接口扣除某个用户的游戏币 | |
| OpenAPI | 小游戏可设置一些场景任务给予玩家 一定的游戏币奖励,如观看广告或者完成某些任务,此时可以通过调用游戏币赠送接口给玩家赠送游戏币。 |
算法实现 | 为确保支付安全性,游戏币赠送接口,游戏币查询接口,扣除游戏币接口都需要传递支付签名字段 |