initialize
概览
- API URL:/api/v1/zoloz/realid/initialize
- API 描述:该接口用于初始化ZOLOZ中的身份验证进程,并为其生成一个唯一的事务ID。后续在与ZOLOZ交互的所有过程中均使用该事务ID。
说明:该接口不支持重复调用,即不符合幂等性。
请求参数
字段名称 | 数据类型 | 最大长度 | 是否必填 | 默认值 | 描述 | 示例值 |
bizId | String | 32 | 是 | - | 业务ID,业务的唯一标识,用于追踪业务。例如,商户业务相关数据库中的序列号。 说明:ZOLOZ服务器不检查该字段的值是否唯一。为了更便捷地追踪业务,建议开启商户服务器,并确保业务ID的唯一性。 | "2017839040588699" |
metaInfo | String | 512 | 是 | - | SDK和用户设备的元信息。该字段的值由ZOLOZ SDK以JSON字符串格式返回。 说明:不要修改返回值,直接传递即可。如果是H5接入模式,则设置为 | "{ \"deviceType\": \"android\", \"appVersion\": \"1.0.9\", \"osVersion\": \"9\", \"appName\": \"com.zoloz.atomic.client\", \"bioMetaInfo\": \"3.46.0:2916352,0\", \"apdidToken\": \"69b74bfe-bf7f-4d3b-ac59-907ee09e7955\", \"deviceModel\": \"MI 6\", \"zimVer\": \"1.0.0\" }" |
flowType | String | 32 | 是 | - | 指定身份验证流的类型。取值如下:
| "H5_REALIDLITE_KYC" |
docType | String | 16 | 否 | null | 指定证件类型。例如要上传的证件是护照,该字段的值需要设置为 说明: RealID支持的证件类型,请参见RealID和ID Recognition支持的证件类型和返回的OCR结果。 | "08520000001" |
autoDocTypes | List<String> | 200 | 否 | null | 证件类型列表。
支持的证件类型,请参见RealID和ID Recognition支持的证件类型和返回的OCR结果。 | ["08520000001","08520000002"] |
userId | String | 64 | 是 | - | 商户的用户ID或其他可用于识别某一用户的标识,例如手机号码、电子邮件地址等。 建议对userId字段的值进行预脱敏,例如进行哈希处理。 | "123456abcd" |
sceneCode | String | 64 | 否 | null | 场景码,用来为数据分析指定不同的业务场景。 当需要区分不同业务场景中的数据表现时,建议根据业务用途为sceneCode字段设置不同的值,例如login、riskVerify、payment、changePassword。 | "changePassword" |
serviceLevel | String | 32 | 否 | REALID0001 | 防伪检测和人脸活体检测的服务等级。取值如下:
| "REALID0001" |
operationMode | String | 32 | 否 | STANDARD | 为身份验证配置操作模式。取值如下:
说明:当operationMode设置为 以下是IDN和Velocity的含义:
| "STANDARD" |
pages | String | 32 | 否 | 证件类型支持的所有页 | 待扫描和上传的证件页面,多个页面以英文逗号分隔。例如:
证件所支持的页面数,请参见RealID和ID Recognition支持的证件类型和返回的OCR结果。 说明:
| "1,2" |
pageConfig | PageConfig | - | 否 | null | 指定H5页面的配置信息。详细信息,请参见PageConfig。 | { "urlFaceGuide":"http://url-to-face-guide-page.html" } |
h5ModeConfig | H5ModeConfig | - | 否 | null | H5 RealID的配置信息。详细信息,请参见H5ModeConfig。 说明:当flowType的值为 | { "completeCallbackUrl":"http://xxx.html", "interruptCallbackUrl":"http://xxx.html" } |
productConfig | ProductConfig | - | 否 | null | 为RealID产品提供更精细化的控制。详细信息,请参见ProductConfig。 | { "cropDocImage": "Y", "landmarkCheck": [ {"name":"kadPengenalan"}, {"name":"mykadLogo"}, {"name":"flagLogo"}, {"name":"mscLogo"}, {"name":"ghostFace"}, {"name":"hibiscusLogo"}, {"name":"coatOfArm"}, {"name":"twinTower"} ], "hologramCheck": [ {"name":"hologram"} ], "pageInfoCheck": [ {"name":"id"}, {"name":"symbol"}, {"name":"name"} ], "preciseTamperCheck": "Y" } |
PageConfig字段说明
字段名称 | 数据类型 | 最大长度 | 是否必填 | 默认值 | 描述 | 示例值 |
urlFaceGuide | String | 256 | 否 | null | 人脸引导页的URL。该页面为H5提示页面,可自定义引导用户进行人脸扫描。 | "http://url-to-face-guide-page.html" |
H5ModeConfig字段说明
字段名称 | 数据类型 | 最大长度 | 是否必填 | 默认值 | 描述 | 示例值 |
state | String | 128 | 否 | transactionId字段的值 | 用于恢复客户上下文的标识符。 您可以为该字段设置任何值,当ZOLOZ SDK回调商户的移动App时将该值作为参数进行传递。 | "G000000005FID20200304000000000001570702" |
completeCallbackUrl | String | 128 | 是 | - | 当整个身份验证完成时,为浏览器指定即将重定向的回调URL。 | "http://xxx.html" |
interruptCallbackUrl | String | 128 | 是 | - | 当进程中断时,为浏览器指定重定向到的回调URL。 | "http://xxx.html" |
locale | String | 16 | 否 | en | 网页语言,目前支持以下语言:
| "zh-CN" |
isIframe | String | 1 | 否 | N | 是否需要在iframe中打开网页,如果需要设置为Y,否则设置为N。 | "Y" |
uiCfg | String | 256 | 否 | null | 自定义UI配置,采用JSON字符串格式。目前仅支持 | "{\"titlebarbgcolor\":\"#ffffff\",\"titlebartextcolor\":\"#000000\",\"buttoncolor\":\"#3696fd\"}" |
allowDegradation | String | 1 | 否 | N | 是否允许进入降级模式。取值如下:
说明:
| "Y" |
docFrontPageGuideUrl | String | 128 | 否 | null | 指定降级模式下证件引导页首页的URL。这是一个可定制的H5提示页面,用于引导用户采集证件的第一页图片。 说明:如果不传该参数,则使用默认页面。 | "http://xxx.html" |
docBackPageGuideUrl | String | 128 | 否 | null | 指定降级模式下证件引导页第二页的URL。这是一个可定制的H5提示页面,用于引导用户采集证件的第二页图片。 | "http://xxx.html" |
facePageGuideUrl | String | 128 | 否 | null | 指定降级模式下人脸引导页面的URL。这是一个可定制的H5提示页面,用于引导用户采集自拍人脸图片。 说明:如果不传该参数,则使用默认页面。 | "http://xxx.html" |
ProductConfig字段说明
字段名称 | 数据类型 | 最大长度 | 是否必填 | 默认值 | 描述 | 特别说明 | 示例值 |
cropDocImage | String | 1 | 否 | N | 是否额外返回一张裁剪掉证件背景的证件图片。取值如下:
| - | "Y" |
cropFaceImage | String | 1 | 否 | N | 是否额外返回一张裁剪出脸部区域的人脸图片。取值如下:
| - | "Y" |
landmarkCheck | Array | - | 否 | null | 在证件防伪检测中进行landmark检查,详细检查项,请参见证件防伪检测组件。 说明:landmark检查仅适用于大马卡(MyKad)。 | - | [{"name":"kadPengenalan"}, {"name":"mykadLogo"}, {"name":"flagLogo"}, {"name":"mscLogo"}, {"name":"ghostFace"}, {"name":"hibiscusLogo"}, {"name":"coatOfArm"}, {"name":"twinTower"}] |
hologramCheck | Array | - | 否 | null | 在证件防伪检测中进行全息图检查,详细检查项,请参见证件防伪检测组件。 说明:全息图检查仅适用于大马卡(MyKad)。 | - | [{"name":"hologram"}] |
pageInfoCheck | Array | - | 否 | null | 在证件防伪检测中进行页面信息检查,详细检查项,请参见证件防伪检测组件。 说明:页面信息检查仅适用于中国香港身份证。 | - | [ {"name":"id"}, {"name":"symbol"}, {"name":"name"} ] |
preciseTamperCheck | String | 1 | 否 | N | 该参数已废弃,后续不再维护,为了保证API兼容性,该参数会继续保留。 是否进行精细篡改检测。精细篡改检测仅适用于中国香港身份证。
| - | "Y" |
docUiType | String | 20 | 否 |
| 证件照片的采集方式。取值如下:
| 以下10个参数的优先级高于serviceLevel和operationMode,如果传入了10个参数中的任何一个,其他几个参数的默认值都会生效。此时即使传入了servicelevel和operationmode的值,servicelevel和operationmode也不生效。
| "2" |
spoofMode | String | 10 | 否 | STANDARD | 证件防伪等级。取值如下:
| "STANDARD" | |
livenessMode | String | 10 | 否 | STANDARD | 人脸活体检测等级。取值如下:
| "STANDARD" | |
antiInjectionMode | String | 10 | 否 | CLOSED | 该参数已废弃,后续不再维护,为了保证API兼容性,该参数会继续保留。 防注入检测等级。防注入检测能够有效抵御使用换脸图片或视频进行的注入攻击。取值如下:
注意:开启防注入检测会略微增加误报率和运行时间,开启前请先联系ZOLOZ技术支持。 | "CLOSED" | |
deeperMode | String | 10 | 否 | CLOSED | AIGC攻击检测的Deeper等级,Deeper检测功能的详细介绍,请参见什么是Deeper。该参数支持以下取值:
注意:需要先购买Deeper产品,才能使用该功能。 | "CLOSED" | |
actionCheckItems | List<String> | - | 否 | FACEBLINK | 客户端和Web端的动作检测列表。取值如下:
说明:为了更好的用户体验,不建议使用两种及以上的动作。 | ["FACEBLINK","HEADLOWER"] | |
actionRandom | String | 1 | 否 | N | 客户端和Web端的动作检测顺序是否随机。取值如下:
| "Y" | |
actionFrame | List<String> | - | 否 | null | 采集其他帧图片。取值如下:
| ["EYECLOSE"] | |
riskMode | String | 10 | 否 | STANDARD | RealID中的多维度风控规则校验,用于拦截可疑交易。取值如下:
| "STANDARD" | |
idnThreshold | Integer | - | 否 | 3 | 该参数已废弃,后续不再维护,为了保证API兼容性,该参数会继续保留。 指定阈值,用于拦截同一商户同脸不同证或同证不同脸的交易,当不同userId之间的关联交易笔数超过指定的阈值时将被拦截。 | "3" | |
allowExpiredDocument | String | - | 否 | 不同的证件类型有不同的默认值:
| 已过期的证件是否可以通过验证。取值如下:
说明:如果传入的值为空或无效,此时将使用默认取值。 | - | "N" |
faceAttributeCheck | FaceAttributeCheck | - | 否 | null | 人脸属性检测,详情请参见FaceAttributeCheck。 说明:faceAttributeCheck的优先级高于livenessMode。例如,当occlusionCheck.detectOpen为N时,即使livenessMode为STRICT,也不会进行人脸遮挡检测。 | - | { "occlusionCheck": { "details": [ "eyesOcclusion", "noseOcclusion", "mouthOcclusion", "foreheadOcclusion", "chinOcclusion", "cheekOcclusion" ], "detectOpen": "Y", "needRetry": "Y" }, "maskCheck": { "detectOpen": "Y", "needRetry": "N" }, "glassesCheck": { "detectOpen": "Y", "needRetry": "N" }, "hatCheck": { "detectOpen": "Y", "needRetry": "N" } } |
consistencyCheck | List<ConsistencyCheckItem> | - | 否 | null | 是否进行一致性检查。一致性检查仅适用于部分证件的特定字段,详见ConsistencyCheckItem。 | - | 参考请求示例 |
checkAdvancedIdn | String | - | 否 | N | 是否开启Advanced IDN风险检查。取值:
说明:需要先购买Advanced IDN,才能开启该功能。 | - | "Y" |
advancedIdnRiskDetection | RiskDetection | - | 否 | RiskDetection | 风险检测,详情请参见RiskDetection。 说明:仅当 | - | { "riskTypes":[ "IDFAKE", "DUPLICATE", "BATCH_REGISTER", "DEEPFAKE", ], "timeWindow":{ "startTime":1651882535687, "endTime":1658902665000 } } |
advancedIdnThreshold | String | - | 否 | 3 | 指定Advanced IDN风险检查的阈值,取值范围为1-100,当历史有关联的风险交易笔数超过指定阈值时将被拦截。相同的 说明:仅当 | - | "3" |
checkBlacklist | String | 1 | 否 | N | 是否开启黑名单风险检查。取值:
说明:需要先购买黑名单能力,才能开启该功能。 | - | "Y" |
FaceAttributeCheck字段说明
字段名称 | 数据类型 | 最大长度 | 是否必填 | 默认值 | 描述 | 示例值 |
occlusionCheck | FaceAttributeDetails | - | 否 | null | 是否进行人脸遮挡检测,详情请参见FaceAttributeDetails。 | { "details": [ "eyesOcclusion", "noseOcclusion", "mouthOcclusion", "foreheadOcclusion", "chinOcclusion", "cheekOcclusion" ], "detectOpen": "Y", "needRetry": "Y" } |
maskCheck | FaceAttributeDetails | - | 否 | null | 是否进行口罩检测,详情请参见FaceAttributeDetails。 | { "detectOpen": "Y", "needRetry": "N" } |
glassesCheck | FaceAttributeDetails | - | 否 | null | 是否进行眼镜检测,详情请参见FaceAttributeDetails。 | { "detectOpen": "Y", "needRetry": "N" } |
hatCheck | FaceAttributeDetails | - | 否 | null | 是否进行帽子检测,详情请参见FaceAttributeDetails。 | { "detectOpen": "Y", "needRetry": "N" } |
FaceAttributeDetails字段说明
字段名称 | 数据类型 | 最大长度 | 是否必填 | 默认值 | 描述 | 示例值 |
detectOpen | String | 1 | 是 | null | 是否检测人脸属性并在checkresult API中返回检测结果。取值如下:
| "Y" |
needRetry | String | 1 | 是 | null | 检测到指定属性时是否重试。取值如下:
| "Y" |
details | List<String> | - | 否 | null | 是否返回人脸属性的结果详情。目前仅支持返回occlusionCheck的结果详情,支持的选项如下:
说明:
| [ "eyesOcclusion", "noseOcclusion", "mouthOcclusion", "foreheadOcclusion", "chinOcclusion", "cheekOcclusion" ] |
ConsistencyCheckItem类型说明
commonConsistencyCheck
字段名称 | 数据类型 | 取值范围 | 描述 | 支持的证件 / 国家或地区 / 证件类型 | OCR一致性检查支持字段 |
type | String | commonConsistencyCheck | 对证件防伪检测中的OCR字段进行一致性检查。 | 大马卡 / 马来西亚 / 00600000001 |
|
mrzVisualConsistencyCheck
字段名称 | 数据类型 | 取值范围 | 描述 | 支持的证件 / 国家或地区 / 证件类型 | OCR一致性检查支持字段 |
type | String | mrzVisualConsistencyCheck | 对证件防伪检测中机读区和视读区的OCR字段进行一致性检查。 | - | - |
details | List<String> | 在
| MyVisa / 马来西亚 / 00600000011 |
| |
护照(含机读区和视读区)/ 中国大陆、中国香港、中国台湾、中国澳门、菲律宾、新加坡、马来西亚 / 00000001006 |
|
passportCountryCheck
字段名称 | 数据类型 | 取值范围 | 描述 | 支持的证件 / 国家或地区 / 证件类型 / OCR一致性检查支持字段 / 默认国家代码 |
type | String | passportCountryCheck | 检查OCR结果中的 | - |
valueRange | List<String> | 应与默认国家代码一致 | OCR结果中的 当 | 以下证件的
|
每一项都应符合ISO_3166-1_alpha-3标准 | 以下证件的
|
RiskDetection字段说明
字段名称 | 数据类型 | 最大长度 | 是否必填 | 默认值 | 描述 | 示例值 |
riskTypes | List<String> | - | 否 | ["IDFAKE","DUPLICATE"] | 待查询的风险类型。支持以下四大类风险,系统会自动查询其包含的子风险,详情参考IdNetwork风险介绍。
| [ "IDFAKE", "DUPLICATE", "BATCH_REGISTER", "DEEPFAKE" ] |
timeWindow | TimeWindow | - | 否 | TimeWindow | 风险查询时间窗口,最长可查询180天的数据,默认查询最近30天的数据,详情请参见TimeWindow。 注意:系统单次扫描的数据量限制为50万条记录。如果在查询时间窗口范围内数据量超过50万条记录,系统会动态调整您所设置的时间窗口。 | { "startTime":1651882535687, "endTime":1658902665000 } |
TimeWindow字段说明
字段名称 | 数据类型 | 最大长度 | 是否必填 | 默认值 | 描述 | 示例值 |
startTime | Long | - | 否 | 当前时间 | 风险查询起始时间,采用13位时间戳。 | 1651882535687 |
endTime | Long | - | 否 | 30天前的时间 | 风险查询结束时间,采用13位时间戳。 | 1658902665000 |
返回参数
字段名称 | 数据类型 | 必须返回 | 描述 | 示例值 |
result | 是 | API请求结果,包含结果状态、结果码和结果消息。 | { "resultStatus": "S", "resultCode": "SUCCESS", "resultMessage": "Success" } | |
transactionId | String | 否 | ZOLOZ服务器为身份验证生成的唯一事务ID。此ID将作为RealID checkresult API请求的输入参数。 说明:当在客户端身份验证中出现错误时,例如参数无效,则不返回事务ID。 | "G000000005FID20200304000000000001570702" |
clientCfg | String | 否 | 客户端配置信息,包括SDK连接和行为参数。 说明:当result.resultStatus的值为S时,才返回该字段。 | "……" |
处理结果
根据请求结果执行下一步的响应动作,具体如下:
- 当result.resultStatus的值为
S
时,表示调用ZOLOZ RealID initialize API成功,并返回唯一的事务ID。 - 当result.resultStatus的值为
F
时,表示调用ZOLOZ RealID initialize API失败。请检查错误码获取有关该错误的更多信息,并分析导致该错误的原因。
API通用结果码
有关通用结果码的完整列表,请参见API通用结果码。
API特有结果码
RealID initialize API的结果码见下表。
结果码 | 结果状态 | 描述 |
SUCCESS | S | API调用成功。 |
HIGH_RISK | F | 检测到高风险。用户账号被风险引擎冻结。 |
ACCOUNT_SERVICE_SUSPEND | F | 用户账号被风险引擎列入黑名单。 |
DEVICE_NOT_SUPPORT | F | 不支持当前的设备类型。 |
OS_NOT_SUPPORT | F | 不支持当前设备的操作系统。 |
SDKVERSION_NOT_SUPPORT | F | 不支持ZOLOZ SDK当前的版本。 |
INVALID_ARGUMENT | F | 输入参数无效。关于无效参数的详细信息,请查看返回的resultMessage。 |
SYSTEM_ERROR | F | 其他内部错误。有关错误详情,请查看返回的resultMessage。 |
代码示例
请求示例
不同的接入模式请求结构略有不同。在H5模式下初始化身份验证时,必须指定H5ModeConfig对象。
- 原生RealID请求示例
在App SDK模式下初始化身份验证的请求代码示例。
{
"bizId": "2017839040588699",
"flowType": "REALIDLITE_KYC",
"userId": "123456abcd",
"autoDocTypes":["08520000001","08520000002"],
"pageConfig":{
"urlFaceGuide":"http://url-to-face-guide-page.htm"
},
"serviceLevel": "REALID0001",
"operationMode": "STANDARD",
"productConfig": {
"deeperMode":"STANDARD",
"cropDocImage": "Y",
"landmarkCheck": [
{"name":"kadPengenalan"},
{"name":"mykadLogo"},
{"name":"flagLogo"},
{"name":"mscLogo"},
{"name":"ghostFace"},
{"name":"hibiscusLogo"},
{"name":"coatOfArm"},
{"name":"twinTower"}
],
"hologramCheck": [
{"name":"hologram"}
],
"pageInfoCheck": [
{"name":"id"},
{"name":"symbol"},
{"name":"name"}
],
"preciseTamperCheck": "Y",
"allowExpiredDocument": "Y",
"faceAttributeCheck": {
"occlusionCheck": {
"details": [
"eyesOcclusion",
"noseOcclusion",
"mouthOcclusion",
"foreheadOcclusion",
"chinOcclusion",
"cheekOcclusion"
],
"detectOpen": "Y",
"needRetry": "Y"
},
"maskCheck": {
"detectOpen": "Y",
"needRetry": "N"
},
"glassesCheck": {
"detectOpen": "Y",
"needRetry": "N"
},
"hatCheck": {
"detectOpen": "Y",
"needRetry": "N"
}
},
"consistencyCheck": [
{
"type": "commonConsistencyCheck"
},
{
"details": [
"NAME",
"SEX"
],
"type": "mrzVisualConsistencyCheck"
},
{
"valueRange": [
"CHN",
"PHL"
],
"type": "passportCountryCheck"
}
],
"advancedIdnRiskDetection": {
"riskTypes": [
"IDFAKE",
"DUPLICATE",
"BATCH_REGISTER",
"DEEPFAKE"
],
"timeWindow": {
"endTime": 1724377636300,
"startTime": 1724222116300
}
},
"advancedIdnThreshold": "3",
"checkAdvancedIdn": "Y",
"checkBlacklist": "Y"
},
"metaInfo": "{
\"deviceType\": \"deviceType\",
\"appVersion\": \"1.0\",
\"osVersion\": \"7.1.1\",
\"appName\": \"com.company.wallet\",
\"bioMetaInfo\": \"3.37.0:262144,0\",
\"apdidToken\": \"mock-apdidToken\",
\"deviceModel\": \"MI 6\",
\"zimVer\": \"2.0.0\"
}"
}
- H5 RealID请求示例
在H5模式下初始化身份验证的请求代码示例。
{
"bizId": "2017839040588699",
"flowType": "H5_REALIDLITE_KYC",
"userId": "123456abcd",
"autoDocTypes":["08520000001","08520000002"],
"pageConfig":{
"urlFaceGuide":"http://url-to-face-guide-page.htm"
},
"serviceLevel": "REALID0001",
"operationMode": "STANDARD",
"productConfig": {
"deeperMode":"STANDARD",
"cropDocImage": "Y",
"landmarkCheck": [
{"name":"kadPengenalan"},
{"name":"mykadLogo"},
{"name":"flagLogo"},
{"name":"mscLogo"},
{"name":"ghostFace"},
{"name":"hibiscusLogo"},
{"name":"coatOfArm"},
{"name":"twinTower"}
],
"hologramCheck": [
{"name":"hologram"}
],
"pageInfoCheck": [
{"name":"id"},
{"name":"symbol"},
{"name":"name"}
],
"preciseTamperCheck": "Y",
"allowExpiredDocument": "Y",
"faceAttributeCheck": {
"occlusionCheck": {
"details": [
"eyesOcclusion",
"noseOcclusion",
"mouthOcclusion",
"foreheadOcclusion",
"chinOcclusion",
"cheekOcclusion"
],
"detectOpen": "Y",
"needRetry": "Y"
},
"maskCheck": {
"detectOpen": "Y",
"needRetry": "N"
},
"glassesCheck": {
"detectOpen": "Y",
"needRetry": "N"
},
"hatCheck": {
"detectOpen": "Y",
"needRetry": "N"
}
},
"consistencyCheck": [
{
"type": "commonConsistencyCheck"
},
{
"details": [
"NAME",
"SEX"
],
"type": "mrzVisualConsistencyCheck"
},
{
"valueRange": [
"CHN",
"PHL"
],
"type": "passportCountryCheck"
}
],
"advancedIdnRiskDetection": {
"riskTypes": [
"IDFAKE",
"DUPLICATE",
"BATCH_REGISTER",
"DEEPFAKE"
],
"timeWindow": {
"endTime": 1724377636300,
"startTime": 1724222116300
}
},
"advancedIdnThreshold": "3",
"checkAdvancedIdn": "Y",
"checkBlacklist": "Y"
},
"metaInfo": "MOB_H5",
"h5ModeConfig":{
"completeCallbackUrl":"http://xxx.html",
"interruptCallbackUrl":"http://xxx.html",
"allowDegradation":"Y",
"docFrontPageGuideUrl":"http://xxx.html",
"docBackPageGuideUrl":"http://xxx.html",
"facePageGuideUrl":"http://xxx.html"
}
}
返回示例
ZOLOZ服务器返回的响应代码示例。
{
"result": {
"resultStatus": "S",
"resultCode": "SUCCESS",
"resultMessage": "Success"
},
"transactionId":"G000000005FID20200304000000000001570702",
"clientCfg": "……"
}