本文指导您通过集成支付宝小程序唤起实人认证服务。

唤起身份验证页面

以下代码为小程序唤起认证流程。参数 certifyIdurl 需要通过发起认证请求接口获取。verifyResult 请参考文档回调函数出参

    function startAPVerify(options, callback) { 
        my.call('startBizService', {  
            name: 'open-certify',   
            param: JSON.stringify(options),
        }, callback);
     }
认证结果回调触发。以下处理逻辑为示例代码,您可根据自身业务特性来自行处理。
    startAPVerify({ 
      certifyId: certifyId, url: url }, function (verifyResult) {

        if (verifyResult.resultStatus === '9000') {

            // 验证成功,接入方在此处处理后续的业务逻辑
            // ...   
            return;
        }

        // 用户主动取消认证
        if (verifyResult.resultStatus === '6001') {
            // 可做下 toast 弱提示
            return;
        }

        const errorCode = verifyResult.result && verifyResult.result.errorCode;
            // 其他结果状态码判断和处理 ...
    });
			

回调函数出参

回调函数带入的参数 verifyResult: { resultStatus: 'xx', result: { } }

名称 类型 描述
resultStatus string 认证流程结果状态码, 详见以下 ResultStatus 定义
result.certifyId string 本次认证流水号 certifyId
result.errorCode string 业务异常错误码

注意:result 对象可能为 null, API 接入者代码逻辑需要做防御性处理,避免 NPE 异常。

ResultStatus

状态码 描述
9000 认证通过
6002 网络异常
6001 用户取消了业务流程,主动退出
4000 业务异常
注意:
  • resultStatus = 6001、6002 时,result 对象数据为空,接入者不需要获取 result 对象数据。
  • resultStatus= 9000 时,业务方需要去查询认证结果接口查询最终状态(由于前端数据是可篡改的)。
Status:4000 包含的部分 errorCode 如下表格所示
错误码 描述
UNKNOWN_ERROR 未知异常
SYSTEM_ERROR 系统异常
USER_IS_NOT_CERTIFY 用户未认证
... 其他

查询认证结果

请求参数您在查询认证结果时,其他参数请参见调用参数。并在ServiceParameters 的 json 字符串里传入以下字段:
名称 类型 是否必需 描述 示例值
method String 查询人脸比对结果的操作。取值必须为query。 query
certifyId String 认证ID,需与发起认证请求时返回的certifyId保持一致。 7eff3ad26a9c7b68c511b9f35eb1a354
sceneId String 认证场景ID,需与发起认证请求时的sceneId保持一致。 1000000006
响应参数
名称 类型 是否必需 描述 示例值
passed String 是否通过,通过为T,不通过为F。 T
identityInfo String 认证的主体信息,一般的认证场景返回为空。 "IdentityInfo":"{"cert_type":"IDENTITY_CARD","cert_no":"330103xxxxxxxxxxxx","cert_name":"张三"}"
materialInfo String 认证主体附件信息,主要为图片类材料,一般的认证场景都是返回空。 {"facial_picture_front“:{"FEATURE_FACE":"xydasf=="}}