跳到主要内容

获取返回结果

注意

在 Android 和 iOS 上,startOcrPromise 解析出的都是 JSON 字符串。访问字段前必须调用 JSON.parse()。TypeScript 中声明的类型为 OCR_RETURN_VALUES | string

返回结构

type OCR_RETURN_VALUES = {
DocumentRecognitionResponse: {
ocr_key?: string;
ocr_front_key?: string;
ocr_back_key?: string;
document_type: string;
}[];
};
属性类型说明
ocr_keystring图像识别密钥,出现在单次采集的证件中(cnh_fullcnh_digitalproof_of_addressrg_cin_digital)。可在 QI Tech 系统的任何其他服务中使用。
ocr_front_keystring正面图像的识别密钥,出现在双次采集的证件中(cnhrgrnecrnm)。
ocr_back_keystring背面图像的识别密钥,出现在双次采集的证件中(cnhrgrnecrnm)。
document_typestring标识该密钥对应的证件(例如 "cnh""rg""proof_of_address")。
重要

请保存返回的密钥——它们是该图像在 QI Tech 系统其他产品(例如 Onboarding API)中的标识符。

单次采集的证件

{
"DocumentRecognitionResponse": [
{ "ocr_key": "5d0f0e1c-8f9e-4b6c-9c3d-2f8a1b4e7c10", "document_type": "cnh_full" }
]
}

双次采集的证件

{
"DocumentRecognitionResponse": [
{ "ocr_front_key": "5d0f0e1c-8f9e-4b6c-9c3d-2f8a1b4e7c10", "document_type": "cnh" },
{ "ocr_back_key": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "document_type": "cnh" }
]
}

读取返回结果的示例

startOcr(CAAS_ENVIRONMENT.SANDBOX, mobileToken, CAAS_DOCUMENT_TYPE.CNH)
.then((response) => {
const { DocumentRecognitionResponse } = JSON.parse(response as string);

if (DocumentRecognitionResponse.length === 1) {
const { ocr_key, document_type } = DocumentRecognitionResponse[0];
console.log('Ocr key: ' + ocr_key + ' document type: ' + document_type);
} else if (DocumentRecognitionResponse.length === 2) {
const { ocr_front_key } = DocumentRecognitionResponse[0];
const { ocr_back_key } = DocumentRecognitionResponse[1];
console.log('Ocr front key: ' + ocr_front_key + ' / Ocr back key: ' + ocr_back_key);
}
})
.catch((error) => {
console.log('Error executing Ocr. Error: ' + error);
});

错误处理

当用户中断流程或原生 SDK 发生错误时,Promise 会被 reject。

场景错误信息
用户取消了流程User canceled OCR
iOS 原生 SDK 发生错误Error executing OCR: <详情>
原生模块未正确链接The package 'react-native-qi-tech-module' doesn't seem to be linked...
注意

如果遇到链接错误,请确认您在 iOS 上执行了 pod install、在安装包之后重新构建了应用,并且没有在未执行 prebuildExpo managed workflow 中运行。