跳到主要内容

防沉迷

从 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 客户端已登录的时候直接进行授权,不需要对授权权限进行二次确认,以缩短整个授权登录流程,优化用户体验。

  1. 和平台负责人确认使用该功能,确认后平台会在服务端开启后置授权。

  2. XDConfig.json 需要调整成如下格式,即 tapsdk-permissions 只保留 basic_info 一个权限点。

    {
    xxx:xxx
    "tapsdk":{
    xxxx:xxx,
    "permissions":[
    "basic_info",
    ]
    }
    }
  3. 防沉迷接入配置中的 useAgeRange 设置为 false

// ... 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);
  1. 测试验证

服务端

当玩家支付成功并且支付渠道给到支付回调后,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 个测试账号。(不同年龄段需要的测试账号数量游戏根据自身需求进行申请)

如果游戏侧需要测试未成年账号功能,可以在 #xd-platform 频道中申请进行时间调整。 申请需要提供:

  • 详细说明调整时间的需求
  • 应用 Tap Client ID
  • 需要调整的时间范围 譬如:xx 游戏接入实名认证,现需要测试未成年账号的防沉迷功能;应用 Client ID:svkmf***legjy;调整时间:自今日起即 3.13 ~ 3.15 日,每天下午 3 点到下午 5 点为未成年防沉迷测试时间段(具体时间段游戏侧根据实际需求提出)。 这样游戏侧则不需要等到未成年合规游戏时间段进行测试。

关于调整测试账号功能适用于应用开发测试阶段,时间调整是根据 Tap Client ID 来进行调整的,如果游戏已经上线,可能会影响到线上防沉迷功能。