抖音小游戏对接
版本
当前版本 1.3.0 历史版本
1.接入前准备
整体结构
红色部分由SDK技术实现,蓝色部分由游戏技术实现
SDK会提供两部分资源文件,一是.unitypackage 结尾的Unity插件,需要放到unity工程里,二是几个.js结尾的sdk文件,需要放到抖音小游戏的工程里。说明在2.1 获取SDK
接入必备信息
对接参数信息
参数 | 类型 | 提供者 | 使用者 | 描述 | 用途 |
---|---|---|---|---|---|
gameId | int | SDK技术 | 游戏技术 | SDK游戏ID | 调用SDK【初始化】方法时传入 |
ssAppId | string | 运营 | 游戏技术、SDK技术 | 数数-项目管理-App_ID | 调用SDK初始化方法时传入 |
ylyqAccessToken | string | 运营 | 游戏技术、SDK技术 | 引力引擎-应用管理-Access Token | 调用SDK初始化方法时传入 |
adUnitId | string | 运营 | 游戏技术 | 抖音-流量主-广告管理-广告位ID | 调用SDK【激励广告创建并展示】方法时传入 |
productId | string | 运营 | 游戏技术、SDK技术 | 游戏提供道具id | 调用SDK【支付】方法时传入 |
功能配置参数
公共部分 需申请微信小游戏
参数 操作者 使用者 描述 用途 AppID((小程序ID)) 运营 SDK技术 抖音-开发设置-开发管理-AppID 登录、支付等验证 AppSecret(小程序密钥) 运营 SDK技术 抖音-开发设置-开发管理-AppSecret 登录信息验证 设置域名白名单 运营 SDK技术、游戏技术 抖音-开发设置-开发管理-服务器域名-request合法域名 小游戏调用的域名都要设置,游戏域名请问游戏技术(包括下载域名要放downloadFile合法域名),SDK需设置:
https://pre-minigamesdk-api.miaorui1.com
https://minigamesdk-api.miaorui1.com
https://backend.gravity-engine.com
https://sskj-api.m-co.cn支付功能 需开通虚拟支付
参数 提供者 使用者 描述 用途 游戏币兑换比例 运营 SDK技术 抖音-商业化-虚拟支付-支付设置 支付验证用 签名秘钥 运营 SDK技术 抖音-商业化-虚拟支付-支付设置 支付验证用 服务器地址 运营 SDK技术 抖音-商业化-虚拟支付-支付设置 支付成功后抖音通知SDK地址
https://minigamesdk-api.miaorui1.com/order/notify/dy服务器回调Token 运营 SDK技术 抖音-商业化-虚拟支付-支付设置 支付成功后微信通知SDK校验令牌 道具 游戏技术 SDK技术 游戏内道具,同微信小游戏 把道具id、道具名称、道具价格提供给技术 notify_url 游戏技术 SDK技术 选填,游戏发货回调地址,客户端SDK在创单时也支持传,如果客户端传了就会通知客户端上报的,否则会通知notify_url signKey SDK技术 游戏技术 必填,游戏发货回调验证签名的密钥 激励视频 需开通流量主功能
参数 提供者 使用者 描述 用途 广告位 ID 运营 游戏技术 抖音-流量主-广告管理-广告位ID 拉起激励视频需要 数数数据上报
参数 提供者 使用者 描述 用途 ssAppId(ta_app_id) 运营 SDK技术、游戏技术 数数-项目管理-App_ID 数据上报数数 引力引擎数据上报
参数 提供者 使用者 描述 用途 gravity_app_id 运营 SDK技术 引力引擎-应用管理-应用名称-APPID 数字,数据上报引力引擎 gravity_app_key 运营 SDK技术 引力引擎-应用管理-App Key 数据上报引力引擎 ylyqAccessToken(gravity_access_token) 运营 SDK技术、游戏技术 引力引擎-应用管理-Access Token 数据上报引力引擎 抖音自动刷新Token SDK技术 SDK技术 引力引擎-设置-应用管理-配置-抖音开发者 填写token刷行地址(https://minigamesdk-api.miaorui1.com/dytoken/100002/SDK游戏id),开启,选择“引力调用客户接口刷新” 自定义事件(不带$符号) 运营 SDK技术 引力引擎-设置-元数据-元事件 自定义事件(不带$符号)需要先创建才能上报,如果事件里有属性需要关联属性,属性在【事件属性】里创建 客服功能 开通客服功能,添加客服人员。配置消息推送
参数 提供者 使用者 描述 用途 URL(服务器地址) 运营 SDK技术 抖音开放平台 - 运营 - 客服 - 抖音IM客服 用于自动回复客服消息,比如充值链接。填写
https://minigamesdk-api.miaorui1.com/receive/100002/SDK游戏IDToken(令牌) 运营 SDK技术 抖音开放平台 - 运营 - 客服 - 抖音IM客服 用于自动回复客服消息,比如充值链接。 EncodingAESKey(消息加密密钥) 运营 SDK技术 抖音开放平台 - 运营 - 客服 - 抖音IM客服 用于自动回复客服消息,比如充值链接。 消息加密方式 运营 SDK技术 抖音开放平台 - 运营 - 客服 - 抖音IM客服 用于自动回复客服消息,比如充值链接。选择“明文模式” 数据格式 运营 SDK技术 抖音开放平台 - 运营 - 客服 - 抖音IM客服 用于自动回复客服消息,比如充值链接。选择“JSON”
SDK名词
参数 | 类型 | 参数描述 |
---|---|---|
sdkUserId | int | SDK 用户唯一ID |
platformUserId | string | 小游戏的唯一ID,open_id |
clientId | string | SDK生成的设备ID,每次清除缓存后会变 |
2.SDK接入
集成
集成步骤和示例
2.1 获取SDK
. Unity插件: MiaoJuDySDK.unitypackage 插件
. Js SDK: 小游戏SDK
2.2 配置SDK
1) 添加全局宏参数: UNITY_WEBGL【在抖音调试工具或抖音中运行时 添加】
2) 解压MiaojuDySdk.zip,将目录中的所有文件复制到 unity项目的StreamingAssets/__cp_js_files下
2.3 SDK回调
公共返回字段
参数 | 类型 | 参数描述 |
---|---|---|
code | int | 1000成功,其他失败 |
message | string | 错误信息 |
data | object | /数据,看具体接口 |
2.4 初始化
说明:必接功能,其他接口必须在初始化功能回调之后
数据流图
代码示例
object initParam = new Dictionary<string, object> {
{"gameId",1002},
{"gameVersion","v1.0.0"},
{"ssAppId", "822bb3ff1009407ebd76ed1787717c54"},
{"ylyqAccessToken", "OmptubhKdoUHbA0Cgicmozwatvqf7rfc"},
{"envConfig", "production"}
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.Init(initParam);//无需处理初始化回调
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.Init(initParam, InitCallBack);//需要处理初始化回调
void InitCallBack(string callback)
{
// 处理初始化回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
gameId | int | 是 | SDK游戏ID,SDK技术提供 |
gameVersion | int | 是 | 游戏版本号 |
ssAppId | string | 是 | 数数应用App ID,运营提供 |
ylyqAccessToken | string | 是 | 引力引擎应用Access Token,运营提供 |
envConfig | string | 否 | 环境配置,production正式,test测试 默认production |
sdk回调返回值 [data]
{
"userInfo": {//用户信息
"platformUserId": "抖音open_id",//(string)微信openId
"sdkUserId": "SDK用户id",//(string)SDK用户id
"clientId":"客户端SDK生成的唯一标识,小游戏缓存清除后会变",//(string)客户端SDK生成的唯一标识
"isNew": 1 // (int)是否新用户 0非新用户,1新用户
},
"launchOptions": {//启动参数
"scene":1001,//场景值
"query":{"from":"youusername","to":"wx"},//启动参数
"referrerInfo":{},//来源信息
//小游戏启动参数,见微信文档https://developers.weixin.qq.com/miniprogram/dev/api/base/app/life-cycle/wx.getLaunchOptionsSync.html
},
"systemInfo": {//系统信息
"brand":"devtools",//品牌
"model":"iPhone X",//型号
"system":"iOS 10.0.1",//系统
"platform":"devtools",//平台
"memorySize":"2048",//内存
"screenWidth":"375",//屏幕宽度
"screenHeight":"812",//屏幕高度
"SDKVersion":"3.2.5",//微信SDK版本
"language":"zh_CN",//语言
"version":"8.0.5"//微信版本
}
}
2.5 获取启动参数
数据流图
代码示例
object launchInfo = MiaoJuDySDK.MiaoJuDySDKBridge.Instance.GetUserLaunchInfo(); //用户设备及启动参数
参数说明
sdk返回值 [data]
{
"launchOptions": {//启动参数
"scene":1001,//场景值
"query":{"from":"youusername","to":"wx"},//启动参数
"referrerInfo":{},//来源信息
//小游戏启动参数,见微信文档https://developers.weixin.qq.com/miniprogram/dev/api/base/app/life-cycle/wx.getLaunchOptionsSync.html
},
"systemInfo": {//系统信息
"brand":"devtools",//品牌
"model":"iPhone X",//型号
"system":"iOS 10.0.1",//系统
"platform":"devtools",//平台
"memorySize":"2048",//内存
"screenWidth":"375",//屏幕宽度
"screenHeight":"812",//屏幕高度
"SDKVersion":"3.2.5",//微信SDK版本
"language":"zh_CN",//语言
"version":"8.0.5"//微信版本
}
}
2.6 监听小游戏界面展示 onMiniGameShow
在调用初始化方法后调用,用来监听回到小游戏界面
代码示例
object onMiniGameShowDeFault = new Dictionary<string, object> {
};
MiaoJuWxSDK.MiaoJuWxSDKBridge.Instance.OnMiniGameShow(onMiniGameShowDeFault);//无需回调
MiaoJuWxSDK.MiaoJuWxSDKBridge.Instance.OnMiniGameShow(onMiniGameShowDeFault, OnMiniGameShowDCallBack);//需要处理回调
参数说明
sdk返回值 [data]
{
"scene": "021036",
"query": {},
"launch_from": "homepage",
"location": "sidebar_card",
"refererInfo": {appId: "tta368d5d53c5d50fa07"}
}
2.7 支付
数据流图
代码示例
object payDataDeFault = new Dictionary<string, object> {
{"productId","mj_unity_sdk_test"},
{"gameOrderId", "10000123456"},
{"customData",""},
{"productName", "MJSDK道具"},
{"serverId","4"},
{"serverName", "5"},
{"roleId", "6"},
{"roleName", "7"},
{"roleLevel", "8"},
{"buyQuantity", 1},
{"goodsPrice",100},
{"payNoticeUrl", ""}
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.Pay(payDataDeFault);//无需回调
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.Pay(payDataDeFault, PayCallBack);//需要处理回调
void PayCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
productId | string | 是 | 商品ID,跟微信虚拟支付配置的道具ID一致 |
productName | string | 是 | 商品名称 |
gameOrderId | string | 是 | 游戏订单ID |
serverId | string | 是 | 服ID |
serverName | string | 是 | 服名称 |
roleId | string | 是 | 角色ID |
roleName | string | 是 | 角色名 |
roleLevel | string | 否 | 角色等级 |
buyQuantity | int | 是 | 购买数量 |
goodsPrice | int | 是 | 单位分 |
customData | string | 否 | 自定义参数 |
payNoticeUrl | string | 否 | 支付回调服务端地址,传了就会回调这个地址,不传则回调系统配置的 |
sdk回调返回值 [data]
{
"sdkOrderId":""//SDK订单ID 如果创单失败就不返回 data={}
}
2.8 激励广告创建并展示
数据流图
代码示例
object rewardVideoAdCreateDataDeFault = new Dictionary<string, object> {
{"adUnitId","adunit-b2c1849f409b5d48"},
{"otherProperties",new Dictionary<string, object> { } }
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.RewardVideoAdCreate(rewardVideoAdCreateDataDeFault);不需要处理回调
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.RewardVideoAdCreate(rewardVideoAdCreateDataDeFault, RewardVideoAdCreateCallBack);需要处理回调
void RewardVideoAdCreateCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
adUnitId | string | 是 | 广告ID |
otherProperties | Dictionary<string, object> | 否 | 引力引擎上报观看广告其他参数 |
sdk回调返回值 [data]
{
//data 为空
}
2.9 openCustomerService 打开客服
说明:必接功能
代码示例
object openCustomerServiceDataDeFault = new Dictionary<string, object> {
{"sessionFrom","sdk"},
{"type",2}
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.OpenCustomerService(openCustomerServiceDataDeFault); //不需要处理回调
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.OpenCustomerService(openCustomerServiceDataDeFault, OpenCustomerServiceCallBack); //有回调
void OpenCustomerServiceCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
sessionFrom | string | 否 | 会话来源 |
type | int | 是 | 先写死成2,抖音IM 客服 |
sdk回调返回值 [data]
{
}
注意事项:向用户发送消息48小时限5条,见文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/customer-message/send.html
2.10 getUserInfo 获取用户信息
说明:调用此功能如果没授权就可以拉起授权
代码示例
object getUserInfoDataDeFault = new Dictionary<string, object> {};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.GetUserInfo(getUserInfoDataDeFault); //不需要回调
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.GetUserInfo(getUserInfoDataDeFault, GetUserInfoCallBack); //有回调
void GetUserInfoCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|
sdk回调返回值 [data]
{
"nickName":"王二麻子",//昵称
"avatarUrl":"https://weixin.qq.com/kasrls",//头像,获取方式同上
"unionId":"23infos2384jwsflkw34r2",//同一开发者账号下的唯一标识
"createTime": "2024-09-05 13:14:15",
"gender": "男",//性别:男、女、未知
"platformUserId": "kswrlwsfhkwsfnkwf",//微信openId
"sdkUserId": 10000001,//SDK用户id
"sdkUserId": 10000001,//SDK用户id
"scopeUserInfo": true //本地头像昵称授权状态,如果true会自动更新头像昵称(一般2-4小时),false则需要游戏创建授权按钮让用户重新授权
}
2.11 createRole 创建角色上报数据
说明:必接功能
代码示例
object createRoleDataDeFault = new Dictionary<string, object>
{
{"serverId","1" },
{"serverName","传奇盛世" },
{"roleId","123" },
{"roleName","重生之我是吗喽" },
{"roleLevel","999" },
{"roleCreateTime","1" },
{"location","浙江" },
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.CreateRole(createRoleDataDeFault);//不需要回调
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.CreateRole(createRoleDataDeFault, CreateRoleCallBack);//有回调
void CreateRoleCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
serverId | string | 是 | 服ID |
serverName | string | 是 | 服名称 |
roleId | string | 是 | 角色ID |
roleName | string | 是 | 角色名 |
roleLevel | string | 是 | 角色等级 |
roleCreateTime | int | 否 | 角色创建时间戳,秒 |
location | string | 是 | 大区 |
sdk回调返回值 [data]
{
}
2.12 loginRole 登录角色上报数据
说明:必接功能
代码示例
object loginRoleDataDeFault = new Dictionary<string, object>
{
{"serverId","1" },
{"serverName","传奇盛世" },
{"roleId","123" },
{"roleName","重生之我是吗喽" },
{"roleLevel","999" },
{"roleCreateTime","1" },
{"location","浙江" },
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.LoginRole(loginRoleDataDeFault); //不需要回调
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.LoginRole(loginRoleDataDeFault, LoginRoleCallBack); //有回调
void LoginRoleCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
serverId | string | 是 | 服ID |
serverName | string | 是 | 服名称 |
roleId | string | 是 | 角色ID |
roleName | string | 是 | 角色名 |
roleLevel | string | 是 | 角色等级 |
roleCreateTime | int | 否 | 角色创建时间戳,秒 |
location | string | 是 | 大区 |
sdk回调返回值 [data]
{
}
2.13 changeRole 切换角色上报数据
数据流图
代码示例
object createRoleDataDeFault = new Dictionary<string, object>
{
{"serverId","1" },
{"serverName","传奇盛世" },
{"roleId","123" },
{"roleName","重生之我是吗喽" },
{"roleLevel","999" },
{"roleCreateTime","1" },
{"location","浙江" },
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.ChangeRole(createRoleDataDeFault); //不需要回主调
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.ChangeRole(createRoleDataDeFault, ChangeRoleCallBack); //用回调
void ChangeRoleCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
serverId | string | 是 | 服ID |
serverName | string | 是 | 服名称 |
roleId | string | 是 | 角色ID |
roleName | string | 是 | 角色名 |
roleLevel | string | 是 | 角色等级 |
roleCreateTime | int | 否 | 角色创建时间戳,秒 |
location | string | 是 | 大区 |
sdk回调返回值 [data]
{
}
2.14 ssUserSet 设置用户属性 上报数数 设置用户属性
数据流图
代码示例
object SsUserSetDataDeFault = new Dictionary<string, object>
{
{"type",1},
{"properties",new Dictionary<string, object>{
{ "mj_role_name","myRoleName"}
} },
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.SsUserSet(SsUserSetDataDeFault); //不需要回调
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.SsUserSet(SsUserSetDataDeFault, SsUserSetDataCallBack); //有回调
void SsUserSetDataCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
type | int | 是 | 设置用户属性的类型 1 user_set 2 userSetOnce 3 userAdd |
properties | Dictionary<string, object> | 否 | 属性值对象 |
sdk回调返回值 [data]
{
}
2.15 ssReport 上报数数
数据流图
代码示例
object SsReportDataDeFault = new Dictionary<string, object>
{
{"eventName","mj_login_account"},
{"properties",new Dictionary<string, object>{
{"mj_login_method","抖音小游戏"}
}
},
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.SsReport(SsReportDataDeFault); //无需处理回调
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.SsReport(SsReportDataDeFault, SsReportDataCallBack); //有回调
void SsReportDataCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
eventName | string | 是 | 事件名 |
properties | Dictionary<string, object> | 否 | 属性值对象 |
sdk回调返回值 [data]
{
}
2.16 ylyqReport 上报引力引擎
数据流图
代码示例
object ylyqReportDataDeFault = new Dictionary<string, object>
{
{"eventName","gravity_app_order"},
{"properties",new Dictionary<string, object>{
{"pay_reason","productName" },
{"pay_amount",1000},
{"order_id","orderid_123213123"}
}
},
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.YlyqReport(ylyqReportDataDeFault); //无需处理回调
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.YlyqReport(ylyqReportDataDeFault, YlyqReportCallBack); //有回调
void YlyqReportCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
eventName | string | 是 | 事件名 |
properties | Dictionary<string, object> | 否 | 属性值对象 |
sdk回调返回值 [data]
{
}
2.17 isFromSidebar 判定玩家是否来自侧边栏
说明:必接功能,判断用户是否来自侧边栏,如果是则展示【领奖按钮】,并让用户领奖;否则展示【前往侧边栏】按钮,点击调用sdk的navigateToScene方法跳转侧边栏
代码示例
object IsFromSidebarDeFault = new Dictionary<string, object>
{
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.YlyqReport(IsFromSidebarDeFault, IsFromSidebarCallBack); //有回调
void IsFromSidebarCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|
sdk回调返回值 [data]
{
"show":"1",//1可领奖,2前往侧边栏
}
2.18 navigateToScene 跳转侧边栏
说明:必接功能,同sdk的方法isFromSidebar结合使用
代码示例
object NavigateToSceneDeFault = new Dictionary<string, object>
{
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.NavigateToScene(NavigateToSceneDeFault, NavigateToSceneCallBack); //有回调
void NavigateToSceneCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|
sdk回调返回值 [data]
{
}
2.19 onKeyboardAction 敏感词监听,监听键盘输入、确认、键盘收起
说明:必接功能,抖音会监听键盘输入行为,游戏如果有玩家键盘输入型的交互行为,只要在此之前调用一次就行,或者放在初始化方法完成后调用。
代码示例
object OnKeyboardActionDeFault = new Dictionary<string, object>
{
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.OnKeyboardAction(OnKeyboardActionDeFault, OnKeyboardActionCallBack); //有回调
void OnKeyboardActionCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|
sdk回调返回值 [data]
{
"value":"输入文字"
}
2.20 addShortcut 添加到桌面快捷方式
代码示例
object AddShortcutDeFault = new Dictionary<string, object>
{
};
MiaoJuDySDK.MiaoJuDySDKBridge.Instance.AddShortcut(OAddShortcutDeFault, AddShortcutCallBack); //有回调
void AddShortcutCallBack(string callback)
{
// 处理回调---无需处理回调不用实现
}
参数说明
参数 | 类型 | 是否必传 | 参数描述 |
---|
sdk回调返回值 [data]
{
}
3.服务端接入
3.1 游戏发货通知
当SDK服务端接收到抖音服务器推送的支付成功通知时,SDK服务端会先向抖音服务器发起用户游戏币扣款请求,扣款成功后,SDK服务器会向游戏服务器发送发货请求,通知游戏服给玩家发货。回调地址由游戏下单时传递的,不传的话,可以在SDK服务端数据后台配置。优先使用游戏传入。
发货签名密钥:signKey 由SDK提供
请求地址:游戏服接收请求的http地址,游戏下单时,传入。
请求方式:POST
参数格式:application/json
请求参数(JSON格式):
{
game_order_id:游戏订单号,必传
order_sn: SDK订单号,必传
user_id: SDK用户ID,必传
server_id: 服ID,必传
role_id: 角色ID,必填
platform_user_id: 抖音openID,必传
product_id: 商户唯一标识,必传
price:商品单价,单位分,必传
number: 购买数量,必传
money:付款金额,单位分,必传
real_pay:实付金额,单位分,必传
custom_data:获取订单号服务器传过来的自定义参数,原样返回
time: 请求发生的时间戳,必传
sign:签名值。 该字段不参与签名,签名规则:md5(order_sn&platform_user_id&product_id&custom_data&time&signKey),必传
}
游戏服务器返回(JSON格式):
{
code: 1000表示发货成功,其它值表示发货异常
message: 状态码对应的提示信息
}
请求参数说明(SDK发起请求)
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
game_order_id | string | 是 | 游戏订单号 |
order_sn | string | 是 | SDK订单号:25位长度 |
user_id | number | 是 | SDK用户ID |
platform_user_id | string | 是 | 即抖音openID |
server_id | string | 是 | 服ID |
role_id | string | 是 | 角色ID |
product_id | string | 是 | 道具ID |
price | number | 是 | 道具单价,单位分 |
number | number | 是 | 购买数量,如果大于1,需要按量发货 |
money | number | 是 | 付款金额,单位分 |
real_pay | number | 是 | 实付金额,单位分 |
custom_data | string | 是 | 获取游戏创建订单时透传过来的自定义参数,原样返回 |
time | number | 是 | 请求发生的时间戳 |
sign | string | 是 | 签名值。 该字段不参与签名 签名规则:md5(order_sn&platform_user_id&product_id&custom_data&time&signKey) |
返回参数说明(游戏返回)
参数 | 类型 | 参数描述 |
---|---|---|
code | number | 状态码:1000表示发货成功,其它表示发货异常 |
message | string | 状态码对应的提示说明 |
data | object | 返回的其它数据,可为空或不传 |
3.2 发送抖音订阅模版服务通知
当游戏服需要对玩家进行下发抖音订阅模版服务通知时,游戏服务端向SDK服务端进行请求。
请求地址:https://minigamesdk-api.miaorui1.com/tools/sendsubscribemsg
请求方式:GET
特别说明:platform_id 与 game_id 由SDK提供
签名密钥:signKey 由SDK提供
请求参数说明(游戏服务端发起请求)
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
platform_id | number | 是 | 平台ID,由SDK提供 |
game_id | number | 是 | 游戏ID,由SDK提供 |
server_id | string | 是 | 游戏服 |
role_id | string | 是 | 角色 |
template_id | string | 是 | 消息模版ID |
sdk_uid | string | 否 | SDK 用户唯一ID,与touser参数不能同时为空,都不为空则以touser为准 |
touser | string | 否 | 消息接收者 - 抖音用户openid,与sdk_uid参数不能同时为空,都不为空则以touser为准 |
page | string | 否 | 服务通知消息点击后的跳转地址,跳转地址,例:/page/index |
data | string | 是 | 模版内容,格式如: { "名次": 1, "奖励": "500钻石"},具体查看抖音模版对应的各字段 |
time | number | 是 | 请求发生的时间戳 |
sign | string | 是 | 签名值。 该字段不参与签名 签名规则:md5(platform_id&game_id&template_id&time&signKey) |
返回参数说明(SDK服务端返回)
参数 | 类型 | 参数描述 |
---|---|---|
code | number | 状态码:1000表示成功,其它表示异常 |
message | string | 状态码对应的提示说明 |
data | object | 返回的其它数据,可为空或不传 |
3.3 获取小游戏的抖音服务端调用凭证
当需要自行操作抖音小游戏的部分服务接口调用时,可使用该接口先获取调用凭证(即access_token),由需求方向SDK服务端进行请求。
请求地址:https://minigamesdk-api.miaorui1.com/dytoken/{platform_id}/{game_id}
请求方式:GET
特别说明:platform_id 与 game_id 由SDK提供
签名密钥:signKey 由SDK提供
请求参数说明(游戏服务端发起请求)
参数 | 类型 | 是否必传 | 参数描述 |
---|---|---|---|
time | number | 是 | 请求发生的时间戳 |
sign | string | 是 | 签名值。 该字段不参与签名 签名规则:md5(platform_id&game_id&time&signKey) |
返回参数说明(SDK服务端返回)
参数 | 类型 | 参数描述 |
---|---|---|
code | number | 状态码:1000表示成功,其它表示异常 |
message | string | 状态码对应的提示说明 |
data | object | 返回的其它数据,可为空或不传 |
---- | --- | 当code = 1000时,以下返回 |
object | {"access_token": "23****893","expire_in": 1729146965} |