SDK介绍
- 小游戏SDK对接文档适用于 抖音小游戏、微信小游戏、快手小游戏。
- 小游戏SDK提供JS文件,小游戏中直接引入JS文件即可。
- SDK为抖音小游戏提供功能接口包括:初始化、登录、支付、创角、广告上报、游戏打点,游戏订阅
注意事项
- 接口参数大小写敏感
- request 和 response的编码格式均为 UTF-8
前期准备
1.对接技术人员仔细阅读对接文档
- 获取小游戏sdk文件, 下载
3.提供支付回调地址
4.获取sdk平台参数
字段 | 描述 |
---|---|
app_id | (游戏ID) |
client_id | (客户端ID) |
client_key | (客户端KEY) |
接入步骤
sdk文件中的sdkUtil.min.js 和 md5.min.js是公用的,如果需要接入多个小游戏SDK,这二个文件只需要添加一次。
- 复制qfdysdk文件到小游戏工程中 (qfdysdk文件中包含sdk 的js文件)
加载qfdysdk.min.js文件,并且传入从SDK平台获取到的参数:
加载js文件后,直接使用 window.qfdysdk 获取到sdk实例var qfsdk = new window.qfdysdk(app_id,client_id,client_key,debug)
构建SDK实例必须保证参数正确,否则导致游戏数据异常。
游戏启动时调用初始化接口,如果游戏需要自动登录,则在初始化完成回调中调用登录接口。
debug: 是否为调试模式,true为调试模式,默认为true
动态设置域名 (注:设置域名必须在调用SDK接口之前,)
注意:域名末尾不要带 ‘/’qfsdk.setBaseHost()
动态设置icon图片(填线上地址,如果不需要用客服方式支付可以不填)
qfsdk.setBaseHost("https://.....)
淘宝小游戏需要手动设置cloud
import cloud from '@tbmp/mp-cloud-sdk'; cloud.init({ //test、online env: 'test' }) qfsdk.setCloud(cloud) // 传cloudAppId qfsdk.setCloudAppId("")
接口调用
1. 初始化
qfsdk.initSdk({
success(res) {
console.log("初始化成功" + res.status)
},
fail(err) {
console.log(err);
},
});
调用初始化必须确保:
1.游戏启动时调用
2. 登录
调用登录必须确保:
1.SDK初始化完成,否则将无法登录。
2.如需要游戏启动自动登录,则在初始化success回调里面调用此接口
qfsdk.loginSdk({ success(res) { console.log(res); }, fail(err) { console.log(err); } });
3. 购买道具
//购买道具
qfsdk.submitOrder({
money: moneyValue,
yxbNum: moneyValue * 10,
serverName: '天行九歌',
serverId: '1',
roleName: '熊大',
roleId: '199',
productId: '产品IDID',
productName: '元宝',
productDes: '元宝100个',
attach: 'CP订单号',
success: function(res) {
console.log( res);
},
fail: function(err) {
console.log(err);
},
});
购买道具可以设置不同的支付方式,支持小游戏平台内购,
4. 创角/角色升级
//创建角色
qfsdk.createRole({
serverName: '测试一区',
serverId: '101',
roleName: '昙花一现',
roleId: '210',
roleGrade: '30',
success: function (res) {
console.log( res);
},
fail: function (err) {
console.log( err);
},
});
为了SDK平台更好的获取有用数据,所以游戏接入时务必接入此接口。
5. 广告事件上报
//事件上报
qfsdk.adEvent({
adPosNo: "首页-顶部",
gamePropNo: "金币",
dot_no: "1"
success: function (res) {
console.log( res);
},
fail: function (err) {
console.log( err);
},
});
根据实际需求接入,该接口适用于看广告完播后调用。 adPosNo:广告位置,gamePropNo:获得的道具, dot_no: 打点编号,就是qfsdk.gameDot接口的打点编号
6. 游戏打点
//事件上报
qfsdk.gameDot({
no: "1",
type: "1",
success: function (res) {
console.log( res);
},
fail: function (err) {
console.log( err);
},
});
根据实际需求接入 no:打点编号(需要在qf后台录入),type:1.开始挑战、2.挑战成功、3.挑战失败。
7. 游戏订阅
//订阅事件上报
qfsdk.subscriptions({
tpl_id: 'x3PoCpHm5-9mMSUDbKm2Sh65tfETl8FmQlI',
success: function(res) {
console.log('游戏回调:订阅成功');
},
fail: function(err) {
console.log("liujing", err);
console.log('游戏回调:订阅失败');
},
});
根据实际需求接入,适用场景为用户订阅成功后调用该接口上报。该接口不会调用平台订阅函数,只负责上报用户订阅结果,订阅需游戏自己实现。 tpl_id:订阅的模版ID(在dy等平台获取)
8. 获取城市排行榜
qfsdk.getProvinceRankList({
rank_id: "cncjh_1",
success: function (res) {
console.log('游戏回调:获取城市排行榜成功', res);
},
fail: function (err) {
console.log('游戏回调:获取城市排行榜失败', err);
},
})
rank_id: 排行榜唯一标识(获取方式:需要在SDK后台创建)
9. 获取玩家排行榜
qfsdk.getMemRankList({
rank_id: "cncjh_1",
success: function (res) {
console.log('游戏回调:获取玩家排行榜成功', res);
},
fail: function (err) {
console.log('游戏回调:获取玩家排行榜失败', err);
},
})
rank_id: 排行榜唯一标识(获取方式:需要在SDK后台创建)
10. 提交排行榜
qfsdk.submitRankData({
rank_id: "cncjh_1",
value: 2,
extra:"1",
avatar:"",
nickname: "测试",
success: function (res) {
console.log('游戏回调:提交排行榜成功', res);
},
fail: function (err) {
console.log("游戏回调:提交排行榜失败", err);
},
})
rank_id:排行榜唯一标识,value:数值(或枚举值ID),extra:扩展数据,avatar:玩家头像URL, nickname:玩家昵称
接口说明
1.初始化
qfsdk.initSdk(Object object)
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
success | function | 否 | 接口调用成功回调函数 | |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,1:初始化成功,0:初始化失败 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
2.登录
qfsdk.loginSdk(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,1:登录成功,0:登录失败 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
res.data 的结构
属性 | 类型 | 说明 |
---|---|---|
mem_id | String | 用户ID |
token | string | 用户token |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
3.购买道具
qfsdk.submitOrder(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
money | String | 是 | 商品金额 |
yxbNum | int | 是 | 元宝数量 |
serverName | String | 是 | 区服名称 |
serverId | String | 是 | 区服ID(必传) |
roleName | String | 是 | 角色名称 |
roleId | String | 是 | 角色ID(必传) |
productId | String | 是 | 产品ID |
productName | String | 是 | 商品名称 |
productDes | String | 是 | 商品描述 |
attach | String | 是 | 扩展参数,一般传CP订单号 |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,为1下单成功,为0下单失败 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
res.data 的结构
属性 | 类型 | 说明 |
---|---|---|
b | String | 订单号 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
3.创角/角色升级
qfsdk.createRole(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
serverName | String | 是 | 区服名称 |
serverId | String | 是 | 区服ID |
roleName | String | 是 | 角色名称 |
roleId | String | 是 | 角色ID |
roleGrade | String | 是 | 角色等级 |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,为1创角成功 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
4.广告事件上报
qfsdk.adEvent(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
adPosNo | string | 是 | 广告的位置 |
gamePropNo | string | 是 | 获取的奖励 |
dot_no | string | 是 | 打点编号(可以理解为你当前看的这个广告属于哪个打点编号范围) |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,为1事件上报成功 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
5.打点
qfsdk.gameDot(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
no | string | 是 | 打点编号(需要在qf后台录入) |
type | string | 是 | 1.开始挑战、2.挑战成功、3.挑战失败 |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,为1上报成功 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
5.订阅
qfsdk.subscriptions(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
tpl_id | string | 是 | 订阅模版号 |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,为1上报成功 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
6.提交排行榜 (获取排行榜数据请看接入步骤的8、9项)
qfsdk.submitRankData(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
rank_id | string | 是 | 排行榜唯一标识(获取方式:在sdk后台录入) |
value | string | 是 | 数值(或枚举值ID) |
extra | string | 否 | 扩展数据 |
avatar | string | 是 | 玩家头像URL |
nickname | string | 是 | 玩家昵称 |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,为1上报成功 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
7.批量提交排行榜 (获取排行榜数据请看接入步骤的8、9项)
qfsdk.submitBatchPost(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
rank_data | string | 是 | 排行榜数据 |
avatar | string | 是 | 玩家头像URL |
nickname | string | 是 | 玩家昵称 |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
rank_data参数格式:<排行榜唯一标识>|<数值>|<扩展数据>
rank_data参数示例 : "test_rank|100|第10关,test_rank2|200|第20关",
注:多个榜单数据用英文逗号分隔
注:单次最多可上报50条排行榜数据!
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,为1上报成功 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
8.意见反馈
qfsdk.feedback(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
title | string | 是 | 反馈的标题 |
content | string | 是 | 反馈内容 |
imageUrls | string | 否 | 预定图片地址 |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,为1上报成功 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
9.获取邀请列表
qfsdk.getInvitations(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
page | int | 是 | 页码 |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,为1上报成功 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
10.订阅当前登录玩家的直玩
qfsdk.feedGameSubscriptions(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
scene | int | 是 | 抖音后台获取 |
content_ids | string | 是 | 抖音后台获取 多个用,号分割 |
extra | any | 否 | 扩展参数 |
ready_time | any | 是 | 事件就绪时间 |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,为1上报成功 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息
11.完成当前登录玩家的直玩订阅
qfsdk.feedGameComplete(Object object)
参数
Object object
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
scene | int | 是 | 抖音后台获取 |
content_ids | string | 是 | 抖音后台获取,多个用,号分割 |
success | function | 否 | 接口调用成功回调函数 |
fail | function | 否 | 接口调用失败回调函数 |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
status | int | 状态码,为1上报成功 |
msg | string | 文字描述 |
data | JSON | 返回数据 |
object.fail 回调函数
参数
Object err
返回请求失败错误信息