防沉迷接入

目录


1. 防沉迷系统概述

防沉迷系统是腾讯移动开放平台为了响应国家新闻出版署2019年10月25日发布的《关于防止未成年人沉迷网络游戏的通知》中第规定,要求实行网络游戏账号实名注册制度,为、腾讯腾讯开发平台上的游戏开发者能够尽快落实通知要求,同时确保玩家流畅游戏体验,享受健康游戏生活所提供的腾讯实名认证及未成年防沉迷能力。游戏开发者通过接入YSDK,并开启防沉迷功能,用户即可按指引完成实名认证环节,同时为游戏接入腾讯防沉迷系统。为了避免重复认证以及出现异常情况,游戏开发者如果本身有实名认证和防沉迷系统,可以不接入YSDK的防沉迷系统,保证不会同时存在两套实名认证系统。
YSDK的防沉迷系统包括三部分功能:
(1)实名认证
用户在使用YSDK提供的登录能力时,YSDK如检测到用户未进行实名认证,会弹窗提示用户进行实名认证并中断登录流程,游戏开发者会在注册的全局回调中收到UserListener.OnLoginNotify的错误码为3103的回调,除此之外,由于实名认证的系统不会将认证结果返回给游戏开发者,因此,建议游戏开发者在收到3103的错误码时,通过toast等形式引导用户完成实名认证。用户实名认证网成功,需要重新进行登录。

(2)时长防沉迷
游戏开发者需要在游戏开始和结束时调用YSDK对应的api接口统计用户游戏时长,如果累计时长超过了防沉迷规定,会回调相应接口通知游戏开发者。另外,用户在登录时,YSDK会校验用户的防沉迷状态(单日游戏时长是否已达上限、宵禁等),如果检测到用户已处于防沉迷状态限制,会限制用户登录。
详细的时长防沉迷api请查阅下面第3章“标准接入”部分。

(3)未成年人支付限制
使用YSDK支付能力的游戏,未成年支付限制由YSDK统一处理,游戏方不需要额外开发。如果用户达到了防沉迷充值限制,在进行游戏充值时,会弹窗提示用户无法充值,游戏开发者也会收到支付失败的回调。
消费限制
游戏内未满8周岁的用户,不提供游戏付费服务;8周岁以上未满16周岁的用户,单次充值金额不得超过50元人民币,每月充值金额累计不得超过200元人民币;16周岁以上未满18周岁的用户,单次充值金额不得超过100元人民币,每月充值金额累计不得超过400元人民币。

2. sdk接入

这一章主要向游戏开发者介绍如何接入防沉迷系统。
(1) 游戏开发者需参照YSDK标准接入接入最新版本的YSDK
(2)参照手Q和微信登录接入单机账号登录模式接入接入YSDK的登录能力
(3)在ysdkcon.ini文件中配置YSDK_ANTIADDICTION_SWITCH=true,配置项的具体说明可以参照YSDK标准接入文档
(4)参照下面第3章“标准接入”,在游戏中进行相应的配置和设置回调
另外,需要注意的是,一定要在沙箱环境(ysdktest.qq.com)中测试完成后,再切到线上环境。

3. 标准接入

3.1 在ysdkconf.ini中开启防沉迷开关
fangchenmijieru_01.png

3.2 在游戏中通过YSDKApi.setAntiAddictListener设置全局防沉迷监听
fangchenmijieru_02.png

3.3 调用指南
(1)处理登录时需要进行实名认证的回调:
fangchenmijieru_03.png

(2) 处理防沉迷接口返回的防沉迷指令:
fangchenmijieru_04.png
需要注意的是:
i. 执行完防沉迷指令后,需要调用YSDKApi. reportAntiAddictExecute()接口上报指令完成信息。
fangchenmijieru_05.png

ii. 游戏可能会收到连续的防沉迷指令,游戏方需要处理互斥,避免出现连续弹窗,影响用户体验。
fangchenmijieru_06.png

3.3.3 设置游戏开始计时和结束及时,统计用户游戏时长
(1)在游戏开始时,调用YSDKApi. setAntiAddictGameStart()开始游戏计时
(2)在游戏结束时,调用YSDKApi. setAntiAddictGameEnd()结束游戏计时
注意:
i.该接口不会统计游戏不在前台(切后台、锁屏等)时的时间,因此,游戏开发者不需要考虑用户将游戏切换到后台时防沉迷系统计时的问题
ii.调用YSDKApi.logout()接口后,时长统计会自动停止,游戏开发者无需额外处理
iii.时长统计有超时机制,如果一段时间后,后台没有收到客户端的心跳,后台将会停止计时,并且统计的游戏时长将会回滚到最后一次有心跳上报的时间
iv.应用不在前台时,调用YSDKApi.setAntiAddictGameStart()不会开始游戏计时

3.4处理游客退出登录的错误码
在游客模式下,会弹窗提示用户去完成实名认证(见第五部分游客模式交互),所以需要有退出到登录界面,重新登录进行实名认证的能力。
用户点击『返回登录并实名认证』按钮,YSDK会注销已登录状态,并回调UserListener.OnLoginNotify()接口,flag的错误码为eFlag.Login_User_Logout=3105。
fangchenmijieru_07.png

3.5 YSDK提供了一些额外的api可供游戏开发者进行调试
(1) 通过YSDKApi.setAntiAddictLogEnable(boolean enable)可以在调试阶段打开防沉迷的日志输出,方便游戏开发者调试,但需要注意正式上线时需要将该日志关闭。
另外,防沉迷的日志输入是以5分钟作为维度进行日志输入的,其中,输入的日志里,duration为用户已游戏的时间,单位是秒。
(2) 游戏开发者可以通过YSDKApi.setAntiRegisterWindowCloseListener(AntiRegisterWindowCloseListener listener)这个接口监听实名认证弹窗的关闭时机。
需要注意的是,这个接口只回调实名认证弹窗关闭的时机,而不会返回实名认证结果。

4. 接口说明

(1) AntiAddictListener
fangchenmijieru_08.png

(2)AntiAddictRect
fangchenmijieru_09.png

防沉迷的指令类型(type)主要有:

类型 含义
TYPE_UNDEFINED 0 未定义,不需要处理
TYPE_TIPS 1 游戏开发者在收到这个指令时,应该弹出弹窗,弹窗(类型无要求)由游戏开发者实现,弹窗的标题(title)和提示内容(content)等文案由健康系统下发,用户点击弹窗的确定按钮后,可正常进行游戏。
TYPE_LOGOUT 2 游戏开发者在收到这个指令时,应该弹出弹窗,弹窗(类型无要求)由游戏开发者实现,弹窗的标题(title)和提示内容(content)等文案由健康系统下发,用户点击弹窗的确定按钮后,退出游戏,无法进行游戏。
TYPE_OPEN_URL 3 游戏开发者在收到这个指令时,游戏开发者应该打开一个可关闭的webview弹窗,加载指令中下发的url。另外,需要注意的是,测试环境暂无此指令,如需测试,可在下发1、2指令时,手动添加一个url,并唤起webview弹窗来进行测试。

防沉迷规则(ruleFamily)主要有:

类型 含义
RULE_HOLIDAY_TIP xg_holiday_tip 节假日 2 小时提醒
RULE_HOLIDAY_NO_PLAY xg_holiday_noplay 节假日 3 小时禁玩
RULE_WORK_TIP xg_work_tip 工作日 1 小时提醒
RULE_WORK_NO_PLAY xg_work_noplay 工作日 1.5 小时禁玩
RULE_NIGHT_NO_PLAY xg_alltime_noplaytime 所有时间宵禁

5. 游客模式

游客模式是YSDK1.6.6版本新增能力,按照国家版署要求,按手机设备维度,可以为未进行实名认证的用户提供一个游戏15天内累计1小时的游戏体验时间,在体验期间未实名认证的用户无法进行充值消费。
游客模式的触发机制是:未实名认证的用户点击登录,会弹出实名认证的弹窗,如果用户未完成实名认证,关闭实名认证弹窗后,YSDK会回调游戏方登录成功,并弹窗提示用户已进入游客体验模式。
游客模式下,用户杀掉进程,下次重启游戏,YSDK如果校验用户未实名认证,会回调游戏方登录失败(错误码为3103),仍然会弹出认证弹窗让用户进行实名认证,如用户仍未进行实名认证,会继续按照游客模式体验。
另外,需要注意的是:
(1)游客模式下,用户登录生成的openId与非游客模式下生成的openId规则一致,如果用户使用游客模式体验后,完成了实名认证,该用户的openId不会改变
(2)按照国家版署要求,一个设备,一款游戏15天内只有累计1个小时的游戏体验时间,如果达到时长限制,YSDK会通过AntiAddictListener.onTimeLimitNotify()接口给到游戏方,防沉迷规则为xg_guest
(3)按照国家版署要求,游客模式下,无法进行充值消费,该用户如果进行充值,会提示充值失败
fangchenmijieru_10.png

6. 防沉迷弹窗样例

(1)实名认证(实名认证的弹窗由YSDK统一样式,暂不支持游戏开发者定制)
实名认证弹窗
fangchenmijieru_11.png

实名认证成功
fangchenmijieru_12.png

实名认证失败
fangchenmijieru_13.png

游客模式提醒弹窗
fangchenmijieru_14.png

(2)防沉迷(防沉迷的指令和提示内容由健康系统下发,弹窗的样式和交互由游戏开发者自行设计,下图仅为样例)
弹窗提示(type为1时)
fangchenmijieru_15.png

弹窗提示(type为2,游戏时长达到上限时)
fangchenmijieru_16.png

弹窗提示(type为2,宵禁时)
fangchenmijieru_17.png

(3)支付限制(弹窗由YSDK统一样式,暂不支持游戏开发者定制)
fangchenmijieru_18.png

以上信息是否解决您的问题?

Copyright © 1998 - 2020 Tencent. All Rights Reserved.

腾讯公司 版权所有

返回顶部