Skip to content

防沉迷自定义指南

一、为什么需要自定义防沉迷

  • 统一的界面风格

    lcm提供的界面风格和游戏可能不是很匹配,游戏可以通过开发相应的界面来获取统一的界面风格

  • 更加精确的防沉迷时长控制

    lcm现在通过心跳来计时, 心跳为3分钟一次,不是那么精确

二、如何自定义

除了不可自定义部分,游戏自己实现所有的其他逻辑。

打开ope的自定义开关后,lcm的实名功能都将关闭。

但是请注意,打开自定义开关时,仍然需要打开防沉迷开关开启充值验证。

不可以自定义的部分

  • 身份证录入,必须要接入该接口,身份证信息统一保存在lcm
  • 充值限制,充值限制由lcm实现,集成在充值接口,游戏侧可以不用关注该部分

身份信息验证

在/game/token/validate中集成了身份信息查询[2],游戏侧在登录时利用该接口获取是否实名,是否成年等数据, 不要缓存实名数据,因为实名信息是多游戏共享的。

身份信息录入

对于没有实名的用户,在合适的时间提醒录入身份证,提醒时机和界面由游戏测自定义, 提交时调用lcm录入身份信息接口[1]

试玩模式

对于没有实名的用户,合计1小时试玩时间,达到时长后无法进入游戏

未成年人防沉迷

  • 对于未成年人,每天有1.5小时可玩时间
  • 在国家法定节假日有3小时可玩时间(请注意法定节假日只有11天,请查询国务院通知)
  • 每日22时至第二日8时为不可玩时间

三、接口定义

1. 身份信息录入
  • URL_V1 :
    • Production: https://lcm-prod-cn-live.mobage.cn/
    • Sandbox : https://lcm-sand-cn-live.mobage.cn/
  • URL_V2 :

    • Production: https://lcm-api.mobage.cn
    • Sandbox : https://lcm-api-sand.mobage.cn
  • Path: {URL_V1 OR URL_V2}/game/real_name

  • Method: PUT
  • Request Header:

    key value
    signature 请参考 服务器接入文档 2.0; server v1 不需要这个签名
    Accept application/json
    Content-Type application/json
  • Response:

    type value
    Content-Type application/json
    Response body

    { "rnInfo": 1 "rncId": *** "rncStatus": 0, } rncStatus -> 认证状态:0: 认证成功 1: 认证中。2: 认证失败 3:待认证

  • Request Body ( json ):

    key type value
    key string your consumer key
    token string token
    certificate string 证件号
    realName string 姓名
  • 错误码

    code description
    9991001 已经录入证件信息
    9991002 证件不存在
    9991003 卡号不合法
    9991004 每个证件只能绑定10个uid

2. 查询身份信息(lcm server v2)

我们在{URL_V2}/game/token/validate接口的相应体中新增了一个字段

  • 新增字段

    key type description
    rnInfo Integer 0:未录入, 1:未成年人, 2:成年人
    rncStatus Integer 认证状态:0: 认证成功 1: 认证中。2: 认证失败 3: 待认证

3. 查询身份信息(lcm server v1)

我们在{URL_V1}/auth/validate接口的相应体中新增了一个字段

  • 新增字段

    key type description
    rnInfo Integer 0:未录入, 1:未成年人, 2:成年人
    storeAccount String 商店账号
    rncStatus Integer 认证状态:0: 认证成功 1: 认证中。2: 认证失败 3:待认证

4. 自定义模式下的上下线信息汇报接口
  • URL :

    • Production: https://lcm-api.mobage.cn
    • Sandbox : https://lcm-api-sand.mobage.cn
  • Path: URL/game/real_name/sign/report

  • Method: POST
  • Request Header:

    key value
    signature 请参考 服务器接入文档 2.0
    Accept application/json
    Content-Type application/json
  • Request Body ( json ):

    key type value
    key string your consumer key
    data array 上下线数据
  • data元素信息:

    key type description
    lid long lid
    storeType string
    storeAccount string 平台账号
    sessionId string(最长32位) 一个会话标识只能对应唯一的实名用户
    clientIp string 客户端ip
    action int 动作 0:下线,1:上线
    occurTime int 发生时间,时间戳

    sessionId补充:

    一个会话标识只能对应唯一的实名用户
    一个实名用户可以拥有多个会话标识;
    同一用户单次游戏会话中 上下线动作必须使用同一会话标识上报

    备注:会话标识仅标识一次用户会话
    生命周期仅为一次上线和与之匹配的一次下线
    不会对生命周期之外的任何业务有任何影响

  • Example for Request body:
{
    "key":13002010,
    "data":[
        {
            "lid":"18",
            "storeType":"APPLE",
            "storeAccount":"151",
            "sessionId":"sd11",
            "action":0,
            "clientIp":"",
            "occurTime":1615455675
        },
        {
            "lid":"15",
            "storeType":"APPLE",
            "storeAccount":"151",
            "sessionId":"sd11",
            "action":1,
            "clientIp":"",
            "occurTime":1615455675
        }
    ]
}
  • Response:

    type value
    Content-Type application/json
    Response body

    { "trace": null, "code": 2002, "catalog": 1, "message": "签名错误", "internalMessage": "", "status": 401 }

  • HttpStatus

    status description
    200 OK
    500 Internal Server Error
Back to top