服务端 API 文档

文档捉虫大赛火热进行中,好礼多多> HOT

iOS 端文字识别 SDK 主要涉及的类有 OcrSDKKit、OcrSDKConfig、CustomConfigUI、OcrCommmDef,下面对其支持的 API 做出详细说明。

OcrSDKKit

OcrSDKKit 是文字识别 OCR 的对外接口类,文字识别功能主要集中在这个类中。

API 功能描述
sharedInstance() 创建 OcrSDKKit 的单例
clearInstance() 主动释放资源
getVersion() 获取当前 SDK 的版本号信息
loadSDKConfig 初始化 SDK 配置信息
updateFederationToken() 主动更新临时密钥
startProcessOcr() 启动 OCR 识别

sharedInstance()

+ (nonnull instancetype)sharedInstance;

  • 功能描述:
    创建 OcrSDKKit 的单例。
  • 返回结果:
    OcrSDKKit 的单例对象。

clearInstance()

/// 清理 SDK 资源
+ (void)clearInstance;

  • 功能描述:
    主动释放资源的方法,可在退出应用或者需要清理资源的时候调用。

getVersion()

- (NSString *_Nonnull)getVersion;

  • 功能描述:
    获取 SDK 当前的版本号。
  • 返回结果:
    当前 SDK 的版本信息。

loadSDKConfig()

/// SDKKIt 加载 OCR 配置信息 这里使用的密钥为固定密钥,当使用临时密钥时,secretId secretKey 填入 nil 空值
/// @param secretId  Secret id
/// @param secretKey Secret key
/// @param ocrConfig ocr 配置类
- (int)loadSDKConfigWithSecretId:(NSString *)secretId withSecretKey:(NSString *)secretKey withConfig:(OcrSDKConfig *)ocrSDKConfig;

  • 功能描述:
    初始化 SDK 信息。
  • 传入参数:
参数类型 参数名称 参数含义
OcrSDKConfig ocrSDKConfig SDK 配置参数的实体类
OcrSDKUIConfig ocrSDKUIConfig SDK UI 配置参数的实体类
NSString secretId SecretId 密钥
NSString secretKey SecretKey 密钥

updateFederationToken()

/// @param tmpSecretId 临时 SecretId
/// @param tmpSecretKey 临时密钥信息
/// @param token 临时兑换 token
- (void)updateFederationToken:(NSString *_Nonnull) tmpSecretId withTempSecretKey:(NSString *_Nullable)tmpSecretKey withToken:(NSString *_Nonnull)token;

  • 功能描述:
    主动更新临时密钥信息,在您与服务器兑换得到临时密钥之后主动调用设置。
  • 传入参数:
参数类型 参数名称 参数含义
NSString tmpSecretId 临时密钥 SecretId
NSString tmpSecretKey 临时密钥 SecretKey
NSString token 兑换后的临时访问 token

startProcessOcr()

/// 启动 SDK 模块,运行带有 UI 界面的功能识别模块
/// @param ocrType  识别模式
/// @param CustomConfigUI ocrUI 配置类 当传入 nil 时使用默认配置
/// @param onProcessSucceed  成功回调 block
/// @param onProcessFailed 失败回调 block
- (void)startProcessOcr:(int)ocrType withSDKUIConfig:(CustomConfigUI *)customConfigUI withProcessSucceedBlock:(OcrSDKKitProcessSucceedBlock _Nonnull)onProcessSucceed withProcessFailedBlock:(OcrSDKKitProcessFailedBlock _Nonnull)onProcessFailed;

  • 功能描述:
    启动 OCR 识别
  • 传入参数:
参数类型 参数名称 参数含义
OcrType ocrType 启动的 OCR 识别类型
CustomConfigUI customConfigUI ocrUI 配置类
OcrSDKKitProcessSucceedBlock onProcessSucceed 识别成功的回调
OcrSDKKitProcessFailedBlock onProcessFailed 识别失败的回调

OcrSDKConfig

OcrSDKConfig 是在 OCR 初始化时需要传入的 SDK 的配置信息实体类。

支持参数及其默认值如下:

类型 名称 含义 默认值
OcrType OcrType 默认识别类型 IDCardOCR_FRONT,IDCardOCR_BACK 均代表 id_card
OcrModeType ModeType 识别模式类型:OCR_DETECT_MANUAL 代表手动拍摄模式,OCR_DETECT_AUTO_MANUAL 代码自动捕获模式 20s未检测提示是否切换至手动拍摄 OCR_DETECT_MANUAL 默认值
long auto_timeout_ms 自动捕捉模式下自动切换至手动拍照模式的超时时间(5000ms<auto_timeout_ms<180000ms) 20000ms
BOOL CropIdCard 开启身份证照片裁剪(去掉证件外多余的边缘、自动矫正拍摄角度)开关 NO
BOOL CropPortrait 开启人像照片裁剪(自动抠取身份证头像区域) NO
BOOL CopyWarn 开启复印件告警 NO
BOOL BorderCheckWarn 开启边框和框内遮挡告警 NO
BOOL ReshootWarn 开启翻拍告警 NO
BOOL DetectPsWarn 开启 PS 检测告警 NO
BOOL TempIdWarn 开启临时身份证告警 NO
BOOL InvalidDateWarn 开启身份证有效日期不合法告警 NO
BOOL Quality 开启图片质量分数(评价图片的模糊程度) NO
BOOL MultiCardDetect 是否开启多卡证检测 NO
BOOL ReflectWarn 是否开启反光告警 NO
NSString RetImageType 图像预处理,检测图片倾斜的角度,将原本倾斜的图片围绕中心点转正,最终输出一张正的名片抠图。
BOOL RetImage 马来西亚身份证接口是否返回图片 NO

CustomConfigUI

CustomConfigUI 是在启动 SDK 模块时需要传入的 SDK 的 UI 配置信息实体类。

支持参数及其默认值如下:

类型 名称 含义 默认值
BOOL isShowTips 是否显示中间提示语 YES
NSString tipsShowText 中间提示语内容(限制15个中文字) "请避免识别内容折角、遮挡和反光"
NSString remindDialogText dialog 模式转换提示文字 "未能识别证件,是否切换模式拍照上传?"
UIColor remindConfirmColor dialog 模式转换提示,按钮颜色 RGBA:5 106 1 1
UIColor cardFrameColor 卡片框选中颜色 RGBA:5 106 1 1
UIImage takePictureImage 拍照按钮图标 80x80 默认图标
UIImage lightONImage 打开手电筒按钮图标 40x40 默认图标
UIImage lightOFFImage 关闭手电筒按钮图标40x40 默认图标
UIImage albumImage 相册按钮图标40x40 默认图标
BOOL isShowAlbumBtn 是否显示相册按钮 YES
BOOL isHorizontal 是否横屏显示 NO

OcrType

OcrType 是一个枚举类型,列举了当前文字识别 OCR 的 SDK 所支持业务类型的种类,大致如下:

OcrType 类型 代表含义
OcrType.IDCardOCR_FRONT 身份证人像面识别模式
OcrType.IDCardOCR_BACK 身份证国徽面识别模式
OcrType.BankCardOCR 银行卡正面识别模式
OcrType.BusinessCardOCR 名片卡正面识别模式
OcrType.MLIdCardOCR 马来西亚身份证识别模式
OcrType.LicensePlateOCR 汽车车牌识别模式
OcrType.VinOCR 汽车VIN码识别模式
OcrType.VehicleLicenseOCR_FRONT 行驶证主页识别模式
OcrType.VehicleLicenseOCR_BACK 行驶证副页识别模式
OcrType.DriverLicenseOCR_FRONT 驾驶证主页识别模式
OcrType.DriverLicenseOCR_BACK 驾驶证副页识别模式

OcrModeType

OcrModeType 是一个枚举类型,列举了卡片识别模式

OcrModeType 类型 代表含义
OCR_DETECT_MANUAL 手动拍摄模式
OCR_DETECT_AUTO_MANUAL 自动识别模式(tips:20s后提示 是否切换到手动拍摄)

识别结果回调

文字识别 OCR 识别结果的回调类,用于接收识别结果以及错误异常。

///SDKKit 处理成功回调接口
///@param resultInfo 会根据不同的工作模式返回对应下的成功信息(一般都是网络回包 json 字段)
///@param reserved 预留位
typedef void (^OcrSDKKitProcessSucceedBlock)(id _Nonnull resultInfo, UIImage *resultImage,id _Nonnull reserved);

/// SDKKIt 处理失败回调接口
/// @param error 处理过程中触发的异常错误
/// @param reserved 预留位
///tips
typedef void (^OcrSDKKitProcessFailedBlock)(NSError *_Nonnull error, id _Nullable reserved);

说明:


用户取消文字识别退出会在 OcrSDKKitProcessFailedBlock 回调

  • domain: "OcrSdk.UserCancelOcr" - code: 200101
  • NSLocalizedDescription : "用户主动停止文字识别"

身份证正面请求返回 resultInfo 结果示例:

{
    "Name": "李明",
    "Sex": "男",
    "Nation": "汉",
    "Birth": "1987/1/1",
    "Address": "北京市石景山区高新技术园腾讯大楼",
    "IdNum": "440524******010014",
    "Authority": "",
    "ValidDate": "",
    "AdvancedInfo": "{}",
    "RequestId": "ab2c132e-9e1c-43d3-b0ef-9b4d80f00330"
 }

身份证反面请求返回 resultInfo 结果示例:

{
    "Name": "",
    "Sex": "",
    "Nation": "",
    "Birth": "",
    "Address": "",
    "IdNum": "",
    "Authority": "赵县公安局",
    "ValidDate": "2010.07.21-2020.07.21",
    "AdvancedInfo": "{}",
    "RequestId": "0d394478-6d4d-48fc-8b19-552415bf46de"
 }

银行卡请求返回 resultInfo 结果示例:

{
    "CardNo": "6225760088888888",
    "BankInfo": "招商银行(03080000)",
    "ValidDate": "08/2022",
    "RequestId": "46ab2e62-11e3-4d04-9fab-0abe18e7c927"
 }

名片请求结果返回 resultInfo 结果示例:

{
    "BusinessCardInfos": [
      {
        "Name": "姓名",
        "Value": "艾米"
      },
      {
        "Name": "职位",
        "Value": "视觉设计师"
      },
      {
        "Name": "部门",
        "Value": "社交平台部"
      },
      {
        "Name": "公司",
        "Value": "Tencent腾讯"
      },
      {
        "Name": "地址",
        "Value": "深圳市南山区高新技术园科技中一路腾讯大厦"
      },
      {
        "Name": "邮箱",
        "Value": "ab***fg@tencent.com"
      },
      {
        "Name": "手机",
        "Value": "+86-133****5678"
      },
      {
        "Name": "QQ",
        "Value": "1234567"
      },
      {
        "Name": "微信",
        "Value": "amy001"
      }
    ],
    "RetImageBase64": "",
    "RequestId": "98f8fcbf-933a-4e95-ac48-6f1a9308fs6h"
 }

马来西亚身份证请求结果返回 resultInfo 结果示例:

{
  "Response": {
    "Name": "KAVIN ONG KHI MN",
    "ID": "710716-08-6085",
    "Address": "NO 11 PERSIARN PERAJRIT 4 TAMA PERAK 31400 IPOH ERAK",
    "Sex": "LEAKI",
    "Birthday": "",
    "Warn": [],
    "Image": "",
    "AdvancedInfo": "{\"ID\":{\"Confidence\":\"1.0000\"},\"Name\":{\"Confidence\":\"0.9996\"},\"Address\":{\"Confidence\":\"0.9997\"},\"Sex\":{\"Confidence\":\"0.9999\"}}",
    "Type": "MyKad",
    "RequestId": "c969da05-54e3-4d0a-a55d-b3ef90d4ebf5"
  }
}

车牌识别请求结果返回 resultInfo 结果示例:

{
  "Response": {
    "Number": "京N0L9U8",
    "Confidence": 99,
    "Rect": {
      "X": 217,
      "Y": 233,
      "Width": 170,
      "Height": 21
    },
    "RequestId": "210103d3-db06-4691-abe0-c0853aae606b"
  }
}

车辆 VIN 码识请求结果返回 resultInfo 结果示例:

{
  "Response": {
    "Vin": "LBV2B25G2E5069977",
    "RequestId": "c59d9002-6c8c-426d-b57f-a8837dee2c7c"
  }
}

行驶证主页和副页请求结果返回 resultInfo 结果示例:

{
  "Response": {
    "FrontInfo": {
      "PlateNo": "沪AA1234",
      "VehicleType": "小型轿车",
      "Owner": "李明",
      "Address": "上海市徐汇区田林路397号腾云大厦6F",
      "UseCharacter": "非营运",
      "Model": "别克牌SGM7151LAAA",
      "Vin": "ABCDEFGH123456789",
      "EngineNo": "8B54321",
      "RegisterDate": "2011-10-10",
      "IssueDate": "",
      "Seal": "上海市公安局交通警寨总队"
    },
    "BackInfo": null,
    "RecognizeWarnCode": [
      -9106
    ],
    "RecognizeWarnMsg": [
      "WARN_DRIVER_LICENSE_PS_CARD"
    ],
    "RequestId": "820916b4-b391-40a8-9203-7ae87e3f1954"
  }
}

驾驶证主页和副页请求结果返回 resultInfo 结果示例:

{
  "Response": {
    "Name": "李明",
    "Sex": "男",
    "Nationality": "中国",
    "Address": "上海市徐汇区田林路397号腾云大厦6F",
    "DateOfBirth": "1987-01-01",
    "IssuingAuthority": "上海市公安局交通警察总队",
    "DateOfFirstIssue": "2011-10-01",
    "Class": "C1",
    "StartDate": "2011-10-01",
    "EndDate": "2017-10-01",
    "CardCode": "440524198701010014",
    "ArchivesCode": "",
    "Record": "",
    "RecognizeWarnCode": [
      -9106
    ],
    "RecognizeWarnMsg": [
      "WARN_DRIVER_LICENSE_PS_CARD"
    ],
    "RequestId": "4ba2958b-e7cf-41c2-aafe-fdc985307f63"
  }
}

对于返回的错误码以及错误信息,可以参考 错误码

{
  "Response": {
    "Error": {
      "Code": "AuthFailure.SignatureFailure",
      "Message": "The provided credentials could not be validated. Please check your signature is correct."
        },
      "RequestId": "ed93f3cb-f35e-473f-b9f3-0d451b8b79c6"
     }
}

目录