跳到主要内容

获取返回结果

startOcr 方法返回 Future<OcrReturnValues>。无需手动解析 JSON——插件已经提供带类型的 Dart 对象。

OcrReturnValues

class OcrReturnValues {
final List<DocumentRecognitionItem> documentRecognitionResponse;
}
属性类型说明
documentRecognitionResponseList<DocumentRecognitionItem>列表,用户每完成一次采集对应一个条目。

DocumentRecognitionItem

class DocumentRecognitionItem {
final String? ocrKey;
final String? ocrFrontKey;
final String? ocrBackKey;
final String documentType;
}
属性类型说明
ocrKeyString?图像识别密钥,出现在单次采集的证件中(cnhFullcnhDigitaladdressrgCinDigital)。可在 QI Tech 系统的任何其他服务中使用。
ocrFrontKeyString?正面图像的识别密钥,出现在双次采集的证件中(cnhrgrnecrnm)。
ocrBackKeyString?背面图像的识别密钥,出现在双次采集的证件中(cnhrgrnecrnm)。
documentTypeString标识该密钥对应的证件(例如 "cnh""rg""proof_of_address")。
重要

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

读取返回结果的示例

final result = await plugin.startOcr(
CaaSEnvironment.sandbox,
'<YOUR_MOBILE_TOKEN_SENT_BY_QITECH>',
CaaSDocumentType.cnh,
);

for (final item in result.documentRecognitionResponse) {
if (item.ocrKey != null) {
print('Ocr key: ${item.ocrKey} document type: ${item.documentType}');
}
if (item.ocrFrontKey != null) {
print('Ocr front key: ${item.ocrFrontKey} document type: ${item.documentType}');
}
if (item.ocrBackKey != null) {
print('Ocr back key: ${item.ocrBackKey} document type: ${item.documentType}');
}
}

错误处理

注意

与抛出带类型的 FaceReconExceptionstartFaceRecon 不同,startOcr 方法抛出的是包含错误信息的 String。请使用通用的 catch (e)

try {
final result = await plugin.startOcr(
CaaSEnvironment.sandbox,
'<YOUR_MOBILE_TOKEN_SENT_BY_QITECH>',
CaaSDocumentType.cnh,
);
// ...
} catch (e) {
print('Erro ao executar o OCR: $e');
}

最常见的错误信息

错误信息含义
User canceled OCR用户在完成采集流程前中断了流程。
Error executing OCR: <详情>iOS 原生 SDK 以错误结束流程。
at startOcr: <详情>调用中缺少某个必填参数。
Activity is null在 Android 上,SDK 无法获取宿主 activity