账号实名认证信息比对 v2.4

1. 接口简介

  • 用户实名认证信息检查,校验输入的身份证姓名和身份证号码是否与实名认证的信息匹配;敏感权限
    • odp 进行服务申请
      申请服务名:GACC 帐号相关服务(gacc_account_service)
      申请的接口:账号实名认证信息比对服务
      申请方式参考:内网文档
    • 申请注明:使用方业务名称 ,使用背景 ,使用范围 ,申请的 QPS 量级(建议 QPS:30)

注意:该接口在比对的过程中,会对输入的身份证信息再次进行征信校验,征信校验过程中会产生高额费用,请调用方注意,减少不必要的调用


2. L5 信息

  • 正式环境:64620673:851968
  • 测试环境:64620673:917504

3. 账号实名认证信息比对接口

CGI 基本信息

请求参数说明及完整示例

HEADER 参数

参数 必填 说明
Content-Type application/json application/json
X-Odp-Destination-Service gacc_account_service 账号实名认证信息比对服务名
X-Odp-Source-Service 示例:xxx 调用者服务英文名
X-Odp-Timestamp 示例:1540612023 当前服务器 Unix 秒
X-Odp-Nonce au8X6q 长度为 6 的随机字符串
X-Odp-Signature xxxx 签名
 签名计算方式:             lowercase(md5(strcat(destination,',',source,',',timestamp,',',nonce,',',secret)))
    destination为,
    source为,
    timestamp为当前服务器Unix秒,
    nonce为长度为6的随机字符串,
    secret为调用方自身服务秘钥

POST 参数

参数 类型 必填 说明
name string 身份证姓名,中文使用 UTF-8 编码
certId string 身份证号码
context string 上下文,回包原样返回,最大长度 128
authInfo AuthInfo 参考基本类型AuthInfo
device Device 参考基本类型Device
示例:
{
  "name": "张三",
  "certId": "11010020191010789X",
  "context": "blabla",
  "authInfo": {
    "authUserType": 3,
    "authAppid": "1234567",
    "authUserId": "24347382",
    "authKey": "244fe73ab2343803ce"
  },
  "device": {
    "outerIp": "14.17.22.35",
    "osSystem": "windows"
  }
}

完整请求示例:
curl -H "X-Odp-Destination-Service:gacc_account_service" -H "X-Odp-Source-Service:xxx" -H "X-Odp-Timestamp:xxx" -H "X-Odp-Nonce:xxx" -H "X-Odp-Signature:xxx" -d '{"name": "张三","certId": "11010020191010789X","context": "blabla","authInfo": {"authUserType": 3,"authAppid": "","authUserId": "24347382","authKey": "244fe73ab2343803ce"},"device": {"outerIp": "14.17.22.35", "osSystem": "windows"}}' "http://ip:port/dmfeature/4037/userCertIdCheck"

返回字段说明及返回结果示例

返回参数

参数 类型 必填 说明
ret int 返回码
msg string 返回说明
isCert int 是否实名认证: 0 - 未实名认证; 1 - 已实名认证
isMatch int 是否匹配:0 - 不匹配; 1 - 匹配
注意: 该字段仅在 isCert == 1,用户已实名情况下有效
context string 上下文,回包原样返回
traceId string 流水号
返回结果:
{
  "ret": 0,
  "msg": "",
  "context": "blabla",
  "traceId": "hp95a3a4d7c627e07d-3-24347382-24347382-837",
  "isMatch": 1,
  "isCert": 1
}

4. 返回码说明

ret 说明
0 请求成功
601 后端请求错误
603 请求参数错误
604 逻辑错误
605 其他错误
606 用户请求受限,单个 openID 24 小时内请求上限 5 次
607 后端请求错误
608 未实名
609 已实名,但输入信息不匹配
610-612 系统内部错误,包含未配置必要信息等
613 证件 ID 格式不正确
403 ACL 鉴权错误
429 请求过载
30000 数据发送错误
-40000 接口不存在
-50000 服务端解码错误
-70000 接口名称或参数错误
-100001 异常, 稍后重试
-1 系统错误
-2 系统错误
-3 找不到服务器
-4 appid 为空
-5 app secret 非法
1 获取实名信息失败 , SYS ERR, Get UserCertInfo Failed(注意检查票据信息正确性)
100 非法参数输入, 非法的账号类型
101 非法身份证姓名或号码
1000 不合法的 appid
1001 签名检验失败
1002 调用次数超过每日上限
1003 调用频率超过限制
1004 调用方不在 ip 白名单中
1005 调用接口不合法
1006 userid 不合法
1007 nonce 不合法
1008 timestamp 过期
1009 签名参数不足
1010 nonce 重复
1011 签名错误
2000 不合法的帐号类型
2001 帐号鉴权失败
2010 无法获取到实名信息,没有办法做比对, 如果是微信 appid+openid 发起查询,请确认 appid 是否在精品游戏池
3000 身份证不符合格式
3001 身份证公安接口返回不一致
4001 不合法的事实类型
4002 批量接口,单次请求条数超过限制
4003 AuthInfo 中的 authKey 为空
5001 session 获取失败

鉴权信息 AuthInfo

  • 对于帐号体系互通的登录行为,还需要额外字段用于鉴权 authInfo。
  • 对于 wegame 里 qq 登录的,获取票据的方式,参考下面的样例代码。
  • wegame 在即通的 authAppid 请联系 wegame 同事查询,每个游戏都不一样。
字段 类型 必填 最大长度 说明
authUserType int 鉴权类型 AuthType
authAppid string 20 鉴权平台中该应用的 appid ,如 QQ 互联或微信开放平台的 appid,数字使用十进制,例如 wegame 的 2112513
authUserId string 64 鉴权平台中该用户的 id,例如 openid 或 uin
authUserIdType int 默认不传,如果 userID 为 Gopenid,则值为 1
authKey string 1024 鉴权平台中该用户的登录凭证,例如 skey 或 access token,使用 wegame 或 tcls 登录的 qq 帐号也需要填写。
authExt string 1024 用户的额外的登录凭证, 一般不需要填写, 目前微信小游戏会使用此字段
AuthType 数值 介绍
AuthType_Undefined 0 未定义
AuthType_WXOpen 1 微信开放平台帐号体系的 accessToken 票据,authKey 填 accessToken, authAppid 填写微信开放体系分配的 appid
AuthType_QQOpen 2 QQ 互联帐号体系
AuthType_QQUin 3 QQ 号体系的 skey,形如@mlHhSGoaY,authAppid 填写即通登录体系分配的 appid
AuthType_WXCTT 4 微信 ctt 票据(端游 wegame)
AuthType_QQST 5 QQ 号体系的 ST 票据, authKey 用 hex 的字符串表示,形如:12741e84d02834164f0949dfa5521d622f442, authAppid 填写即通登录体系分配的 appid
AuthType_QQA2 6 QQ 号体系的 A2 票据, authKey 用 hex 的字符串表示,形如:12741e84d02834164f0949dfa5521d622f442, authAppid 填写即通登录体系分配的 appid
AuthType_WXSK 7 微信开放体系的 sessionkey 票据, authKey 填 sessionkey, authAppid 填写微信开放体系分配的 appid
AuthType_WXMiniGame 8 微信小游戏体系. authAppid 填写小游戏的 appid, authUserId 填写 commid, authKey 为空, authExt 填写已协商的内容
AuthType_Guest 9 手游的游客态
AuthType_AppleID 128 苹果 ID
AuthType_Kuaishou 129 快手的登录态, appid 和 key 透传快手的登录态

从 wegame 的 tcls sdk 中获取 ST 的方式

BYTE byarrGameSignature[QQLO_GAMESIGNMAXLEN] = {0};
    nTmp = sizeof(byarrGameSignature);
    bSucess = m_pTclsProxy->GetBYTE(SM_BYTE_GAMESIGNATURE_SIGNATURE, byarrGameSignature, &nTmp);

设备 Device

  • 游戏后台上报设备信息,在管理端可以配置设备属性相关的规则。
  • 规则按地区灰度时,需要知道用户设备的外网 ip 或经纬度信息。
  • 当有人脸规则时,部分操作系统或手机型号暂不支持时,不下发此类决策。
  • 这里填写的全是用户使用的客户端的信息,不是服务器的信息。
字段 类型 必填 说明
outerIp string 客户端的外网 ipv4 地址,因为涉及海外用户不需要实名
osSystem string 操作系统,ios android windows mac linux 等,全小写
outerIpv6 string 客户端的外网 ipv6 地址,功能与 outerIp 一致
language string 设备语言,支持 zh_CN,en_US
scene string 场景;视频青少年模式场景:257

5. 接口常见问题 Q&A

1.账号实名信息说明

账号实名信息:指用于登录游戏的 QQ 或者微信账号的实名认证信息,每一个 QQ/微信账号对应的实名信息唯一。实名认证信息可能是:

  • 用户 QQ 支付/微信支付绑定的实名信息
  • 用户登录游戏引导进行实名认证的信息
  • QQ 账号实名注册信息

    2.输入的 authInfo 作用

  • 输入的 authInfo 用于查询对应 QQ/微信账号的实名认证信息

  • 如果输入参数不对(通常如 appid 和 openid 不匹配,accessToken 过期等)或者微信 appid 没有查询对应微信账号实名信息的权限,均会导致中控查询账号实名认证信息失败
  • 如果中控不能查询到实名认证信息便不能进行实名信息比对

    3.什么情况下比对成功

  • 输入的 name 和 certId 必须是合法的身份证姓名和身份证号码

  • 输入的 name 和 certId 和账号实名信息使用的身份证姓名和身份证号码完全一致

    4.已实名认证,不匹配情况:

  • 检查输入的姓名和身份证号,是否和实名认证用的证件信息完全一致,务必确认清楚

  • 部分非常早期的用户,实名认证时候,是没有校验身份证号的,所以存在误填的可能,确认早期是否实名注册时随便填了身份证号

特别说明:

  1. 对 QQ 用户,如果在较早时期对自己账号进行过实名注册操作,如果自己随意输入的身份证号,请联系客服处理
  2. 部分 QQ 号返回的实名信息可能是 QQ 绑定的微信账号认证的实名信息。 用户的实名状态以https://jiazhang.qq.com/zk/home.html上查询到的状态为准

results matching ""

    No results matching ""