SDK版本

SDK版本 v2.0
文档版本 v2.0
修改时间 2020年7月31日

使用授权声明

本⽂文档中所包含的信息属于商业机密信息,应严格控制使用范围。如⽆杭州学谷数据智能有限公司的书⾯许可,任何人员不得以任何方式持有或使用本⽂文档的部分或全部内容。

⽂档说明

本文所指的《学谷智能iOS端SDK对接文档》是针对iOS端接口对接的详细说明⽂档。

功能描述

商户通过调⽤SDK服务接口,实现活体检测、身份证证件识别、人脸比对、机动车登记证书识别等功能。

阅读对象

iOS端开发⼈员以及相关项⽬管理⼈员。
技术服务

在开发或使用接口时,产⽣疑问或出现问题,可通过QQ、微信、Email、⼿机等联系相关技术人员,相关人员会及时处理。

集成准备及配置⼯作

1,请在您的工程目录结构中,将ShargooSDK文件夹添加到您的项目中。
2,拖放后一般会在 ‘Build Settings - Search Paths - Framework Search Paths’中存在指向ShargooSDK的根⽬录路径$(PROJECT_DIR),一般情况下这个路径会自动填充,如若没有填充, 请手动填充指向存放ShargooSDK的路径。
3,在Targets-General-Frameworks中添加Accelerate.framework
4,在Target-Build Settings-Linking-Other Linker Flags中添加-ObjC、-force_load、ShargooTensorflow的对应路径"$(SRCROOT)/ShargooSDKDemo/ShargooSDK/ShargooTensorflow.a"
5,在Target-Build Settings中将Enable Bitcode设置为NO
6,请在info.plist⾥添加使用相机权限和App Transport Security Settings 1),Privacy - Camera Usage Description 2,App Transport Security Settings(添加Allow Arbitrary Loads并设为YES)
7,引用SDK#import <Shargoo/Shargoo.h>
8,需要使用接口的页面,将.m改为.mm
9,请使用真机进行测试开发

接口列表

(一),活体检测
(二),身份证证件识别
(三),手动输入身份证号和姓名后进行人脸比对
(四),身份证证件识别后自动进行人脸比对
(五),机动车登记证书识别
(六),车牌识别
(七),VIN码识别

⚠️使用SDK需要使用Token、订单号、商户号, 均由商户提供,请以NSUserDefaults方式保存,key分别为“XG_TOKEN”、“XG_OUTSIDE_NO”、“XG_PLATFORMNO”,若key不一致,SDK中将无法获取Token、订单号、商户号,建议使用SDK相应接口前获取Token并保存,Token有效时间为10分钟。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//    token
[defaults setObject:@"XXXXX" forKey:@"XG_TOKEN"];

//    订单号(唯一标识,英文或数字,不超过64位字符,例如 Shargoo_iOS,尽量保持唯一 )
[defaults setObject:@"XXXXX" forKey:@"XG_OUTSIDE_NO"];

//    商户号
[defaults setObject:@"XXXXX" forKey:@"XG_PLATFORMNO"];

[defaults synchronize];

一,活体检测

启动页面XGFaceDetectionViewController

XGFaceDetectionViewController *controller = [[XGFaceDetectionViewController alloc] init];
//单纯的活体检测 faceType请传0
controller.faceType = 0;
//回调结果的处理,活体检测成功后会返回backData(含有成功的状态码及获得的最后一张照片)
//商户可对回调中的controller进行操作,自行处理结果处理页面
controller.faceDetectionBlock = ^(id  _Nonnull backData, UIViewController * _Nonnull controller) {
    NSLog(@"单纯活体检测%@", backData);

//  识别后返回当前页面 
//  [controller.navigationController popViewControllerAnimated:YES];

//  识别后跳转某页面
//  [controller.navigationController pushViewController:XXXController animated:YES];

};
[self.navigationController pushViewController:controller animated:YES];

二,身份证证件识别

启动页面XGIDCardDetectionViewController

XGIDCardDetectionViewController *controller = [[XGIDCardDetectionViewController alloc] init];
//进入身份证识别页面按照提示拍摄身份证正反面后
//backData中包含所识别的结果,商户可自行处理结果并处理页面
controller.idCardDetectionBlock = ^(id  _Nonnull backData, UIViewController * _Nonnull infoController) {
    NSLog(@"单纯身份证证件识别%@", backData);

//  识别后返回当前页面 
//  [controller.navigationController popViewControllerAnimated:YES];

//  识别后跳转某页面
//  [controller.navigationController pushViewController:XXXController animated:YES];
};
[self.navigationController pushViewController:controller animated:YES];

三,手动输入身份证号和姓名后进行人脸比对

启动页面XGFaceDetectionTipViewController

XGFaceDetectionTipViewController *controller = [[XGFaceDetectionTipViewController alloc] init];
controller.idCardNameStr = @"张三";
controller.idCardNumberStr = @"350321096003237001";
//backData中包含失败或成功的结果
controller.faceDetectionTipBlock = ^(id  _Nonnull backData, UIViewController * _Nonnull controller) {
     NSLog(@"手动输入身份证号和姓名后进行人脸比对%@", backData);

//  识别后返回当前页面 
//  [controller.navigationController popViewControllerAnimated:YES];

//  识别后跳转某页面
//  [controller.navigationController pushViewController:XXXController animated:YES];
};
[self.navigationController pushViewController:controller animated:YES];

四,身份证证件识别后自动进行人脸比对

启动页面XGIDCardDetectionViewController

XGIDCardDetectionViewController *controller = [[XGIDCardDetectionViewController alloc] init];
controller.idCardDetectionBlock = ^(id  _Nonnull backData, UIViewController * _Nonnull infoController) {
     NSLog(@"身份证证件识别结果%@", backData);
//      拿到backData并且有数据时跳转到人脸比对页面
     if ([backData[@"name"]length] > 0) {
          XGFaceDetectionTipViewController *controller = [[XGFaceDetectionTipViewController alloc] init];
          controller.idCardNameStr = backData[@"name"];
          controller.idCardNumberStr = backData[@"id_no"];
          controller.faceDetectionTipBlock = ^(id  _Nonnull backData, UIViewController * _Nonnull controller) {
             NSLog(@"身份证识别后自动输入并活体检测验证结果%@", backData);
             [controller.navigationController popToRootViewControllerAnimated:YES];
          };
         [self.navigationController pushViewController:controller animated:YES];
     }
};
[self.navigationController pushViewController:controller animated:YES];

五,机动车登记证书识别

启动页面XGMVRCDetectionViewController

XGMVRCDetectionViewController *controller = [[XGMVRCDetectionViewController alloc] init];
controller.MVRCDetectionBlock = ^(id  _Nonnull backData, UIImage * _Nonnull image, UIViewController * _Nonnull controller) {
    NSLog(@"机动车登记证识别结果%@", backData);
    [controller.navigationController popToRootViewControllerAnimated:YES];
};
[self.navigationController pushViewController:controller animated:YES];

六,车牌识别

启动页面XGLPDetectionViewController

XGLPDetectionViewController *controller = [[XGLPDetectionViewController alloc] init];
controller.LPDetectionBlock = ^(id  _Nonnull backData, UIImage * _Nonnull image, UIViewController * _Nonnull controller, BOOL manuallyInput) {
     if (manuallyInput) {
//        跳转到一个新的输入车牌的页面
           OtherViewController *vc = [[OtherViewController alloc] init];
           [controller.navigationController pushViewController:vc animated:YES];
      } else {
           NSLog(@"车牌识别结果%@", backData);
           [controller.navigationController popToRootViewControllerAnimated:YES];
      }
};
[self.navigationController pushViewController:controller animated:YES];

七,VIN码识别

启动页面XGVINDetectionViewController

XGVINDetectionViewController *controller = [[XGVINDetectionViewController alloc] init];
controller.VINDetectionBlock = ^(id  _Nonnull backData, UIImage * _Nonnull image, UIViewController * _Nonnull controller, BOOL manuallyInput) {
     if (manuallyInput) {
//       跳转到一个新的输入VIN的页面
          OtherViewController *vc = [[OtherViewController alloc] init];
          [controller.navigationController pushViewController:vc animated:YES];
      } else {
          NSLog(@"VIN识别结果%@", backData);
          [controller.navigationController popToRootViewControllerAnimated:YES];
     }
};
[self.navigationController pushViewController:controller animated:YES];
文档更新时间: 2024-12-20 19:23   作者:admin