防沉迷
从 XDSDK v6.4.0 开始,XDSDK 将不再内置防沉迷 SDK 及其逻辑调用。游戏需要自行参考 TapSDK 中 实名认证和防沉迷开发指南 的内容来完成国内防沉迷的接入。此外,关于实名认证防沉迷的接入可以参考博客:XDSDK 接入 TDS 实名认证防沉迷最佳实践。
接入参考
客户端
- 调用 startup 接口时,参数 userIdentifier 请填写用户的 XDID (即 XDGUser 中的 userId)。
- 为了避免游戏客户端上报和 XD Server 服务端上报发生防沉迷金额上报重复,非特殊情况下请游戏客户端不要进行防沉迷金额上报。
关于国内 TapTap 无感授权
版本要求:接入 XDSDK v6.23.0 + TapSDK v3.29.4
支持平台:Android、iOS
接入限制:游戏需要获取 TapTap 用户的昵称、头像、好友信息或者手机号信息等数据的无法接入,详细咨询平台同事
版本符合要求时,游戏可以通过下述步骤在国内 TapTap 的登录流程中让玩家享受无感授权,即点击 TapTap 登录后,在 Tap 客户端已登录的时候直接进行授权,不需要对授权权限进行二次确认,以缩短整个授权登录流程,优化用户体验。
和平台负责人确认使用该功能,确认后平台会在服务端开启后置授权。
XDConfig.json 需要调整成如下格式,即 tapsdk-permissions 只保留 basic_info 一个权限点。
{
xxx:xxx
"tapsdk":{
xxxx:xxx,
"permissions":[
"basic_info",
]
}
}防沉迷接入配置中的 useAgeRange 设置为 false
- Android
- iOS
- Unity
- UE
// ... import
import com.tapsdk.antiaddiction.Config;
import com.tapsdk.antiaddictionui.AntiAddictionUIKit;
import com.tapsdk.antiaddictionui.AntiAddictionUICallback;
Config config = new Config.Builder()
.withClientId("your_client_id") // TapTap 开发者中心对应 Client ID
.showSwitchAccount(true) // 是否显示切换账号按钮
.useAgeRange(false) // 是否使用年龄段信息
.build();
AntiAddictionUIKit.init(MainActivity.this, config);
AntiAddictionUICallback callback = new AntiAddictionUICallback() {
@Override
public void onCallback(int code, Map<String, Object> extras) {
// 防沉迷回调
}
};
AntiAddictionUIKit.setAntiAddictionCallback(callback);
AntiAddictionConfig *config = [AntiAddictionConfig new];
config.clientID = [XDConfigManager currentConfig].tapConfig.clientId;
config.showSwitchAccount = YES;
config.useAgeRange = NO; // 不获取年龄段
[AntiAddiction initWithConfig:config delegate:[self sharedInstance]];
AntiAddictionConfig config = new AntiAddictionConfig()
{
gameId = gameId,
useTapLogin = true,
showSwitchAccount = true,
useAgeRange = false // 不获取年龄段
};
FAAUConfig AntiAddictionConfig;
AntiAddictionConfig.ClientID = GetDefault<UXDGConfig>()->tapsdk__client_id;
AntiAddictionConfig.ShowSwitchAccount = true;
AntiAddictionConfig.UseAgeRange = false; // 不获取年龄段
AntiAddictionUE::Init(AntiAddictionConfig);
- 测试验证
服务端
当玩家支付成功并且支付渠道给到支付回调后,XD Server 会 Server to Server 上报玩家的支付金额给 TDS 防沉迷,游戏不需要在客户端进行上报。但游戏的客户端依然需要自行校验玩家消费是否达到上限(参考文档)。
Server 端 Webhook 设置
网络游戏企业必须严格按照有关法律法规妥善保存、保护用户提供的实名注册信息。Webhook 用于接收用户在游戏实名认证过程中手动输入的实名信息,如果用户使用 TapTap 快速认证,则不会返回。游戏方需要在游戏服务器上设置 Webhook,并在 TapTap 开发者服务中心后台配置好 Webhook 的 URL。心动一方游戏固定配置为:https://xdsdk-6.xd.cn/api/real-auth/v1/info/save
。更多关于实名认证防沉迷 Webhook 的使用请参考文档。
提示:Server 端 Webhook 设置仅适用于国内游戏,越南防沉迷则不需要进行设置。
测试账号
测试账号的使用场景分为两种:
- 第一种:游戏处于开发测试阶段,需要测试账号来进行实名认证防沉迷功能测试。
- 第二种:适用于申请游戏版号的场景。
申请测试账号的两种途径:
- 第一种:使用 TapTap 开发者中心提供的测试账号。
TapTap 开发者中心提供的测试账号使用方式具体可以参考 TapSDK 文档说明,调整时间需要启用测试模式。特别需要注意,这种方式需要游戏在调用 startupwithtaptap
接口时,传递的玩家的唯一标识 userIdentifier
参数为 TapTap 登录后返回的 union id
。
- 第二种:提 Jira 工单进行申请,指派给运营同学「童洁」,工单申请后还需要在 #xd-platform 频道中 @童洁 和 @王浩。(推荐)
工单内容:
- 说明具体的测试账号使用需求
- 应用的 Tap Client ID: xxx
- 年龄需求分布:
- 未满 8 周岁:n 个
- 满 8 周岁,未满 16 周岁:n 个
- 满 16 周岁,未满 18 周岁:n 个
- 满 18 周岁:n 个
- 未实名账号:n 个
- 总共 N 个测试账号。(不同年龄段需要的测试账号数量游戏根据自身需求进行申请)
- 未满 8 周岁:n 个
如果游戏侧需要测试未成年账号功能,可以在 #xd-platform 频道中申请进行时间调整。 申请需要提供:
- 详细说明调整时间的需求
- 应用 Tap Client ID
- 需要调整的时间范围 譬如:xx 游戏接入实名认证,现需要测试未成年账号的防沉迷功能;应用 Client ID:svkmf***legjy;调整时间:自今日起即 3.13 ~ 3.15 日,每天下午 3 点到下午 5 点为未成年防沉迷测试时间段(具体时间段游戏侧根据实际需求提出)。 这样游戏侧则不需要等到未成年合规游戏时间段进行测试。
关于调整测试账号功能适用于应用开发测试阶段,时间调整是根据 Tap Client ID 来进行调整的,如果游戏已经上线,可能会影响到线上防沉迷功能。