云签名移动端SDK(IOS)接口手册

1. 集成准备

1.1 使用接口的准备工作

客户端 App 在使用云签名 SDK 是需确保工程进行如下设定(以下以

Xcode7.2 为例,其他版本 Xcode 请参考):

●Build Setting 设定:

Build Option – Enable Bitcode 设定为 NO。

注:运行实例代码时,请在 Apple LLVM7.0 language Object C - Object C Automatic Reference counting 设定为 NO。

●info 设定:

在 IOS9.0 设备请设定 Allow Arbitrary Loads 项为 YES。(注:只有在链接测试系统时需要作此设置,正式系统不需要);info.plist 文件配置如下参数:Privacy

- Face ID Usage Description;Privacy - Camera Usage Description;Privacy - Location When In Use Usage Description ; Privacy - Microphone Usage Description。

●引用 framework 如下:

SystemConfiguration.framework 、 MobileCoreServices.framework AssetsLibrary.framework 、 QuartzCore.framework LocalAuthentication.framework 、 CoreMedia.framework

CoreMotion.framework、AVFoundation.framework;

●编译目标设定:

App 只能进行真机调试和运行,不支持模拟器运行。

1.2 产品部署流程

解压“云签名 SDK 集成”压缩包,将 Header、Lib、Resource 目录内文件部署在工程目录下。将 Lib 目录内.a 文件添加在 Link Binary With Libraries 里;将Resource 目录内.bundle 文件添加在 Copy Bundle Resources 里。在 BJCASignetService.plist 中写入客户端 SDK 需要的配置信息,
如 :
{“ServiceURL”:http://dev.isignet.cn:8080”,

“FaceAuthCode”:”MDAxMDE1bm9kZXZpY2Vjd2F1dGhvcml6ZZ/n5+Xl5+bq3

+bg5efm5Of+5uXl4Obg5Yjm5uvl5ubrkeXm5uvl5uai6+Xm5uvl5uTm6+Xm5uD

m6uvn6+fr5+DV5+vn6+fr5/Xn5ubm5uc=”}。配置文件中各键值含义如下:

(1)ServiceURL:客户端 SDK 连接的云服务环境。接入初期测试阶段连接

联调环境的云服务,测试通过正式上线则修改为生产环境的云服务地址。

(2)FaceAuthCode:。

(3)qrCodeServUrl:新版二维码协议短码换取长码的服务地址

注:BJCASignetService.plist 为客户端 SDK 使用的重要的配置文件,不可修改文件名与后缀名、不可增加、删除、修改键名,除客户端 SDK 所连接的云服务地址外,不可将其他地址(如业务应用服务端地址、网关地址等)配入 ServiceURL、qrCodeServUrl键值中,同时注意 ServiceURL、qrCodeServUrl 根据不同环境(联调/生产)配套使用。

1.3 接口详情

【下证】

云签名协同证书签名系统中,将个人信息收集加密处理后申请的半张协同证书下载至移动端本地保护,此为云签名后续操作的基础。此前惯称的云签名移动端激活,注册,找回等接口,实质均为进行协同证书下载的过程。

1.4 邀请码下证 user Register

别名:

证书激活,邀请码注册,普通注册。

接口调用:

业务后台通过云签名网关,向云平台推送可信用户信息并获取激活码后,由

业务应用调用本接口传入激活码,引导用户输入短信验证码、设置证书 pin 码生
成证书。
接口定义:

-(NSError*)userRegister:(NSString )appID ActiveCode:(NSString)activeCode; 参数说明:
activeCode:业务应用服务端从云服务平台获取的用户激活码,activeCode
为 JSON 串 , 格 式 如 下 :

{"version":"2.0","operType":"ActiveUser","data":"6461d75f"}

appID:类型为 NSString,业务应用 ID。

返回值说明:

同步返回 NSError,当参数错误时返回非空 error,此时注册流程不会执行,返回为空时注册流程开始执行。

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

backData: NSString,注册完成后用户在云服务平台中的唯一标识

businessType: NSString,业务类型值字符串,“0”表示注册业务。

1.5 pin 邀请码下证 user Register WithPin

别名:

传 pin 激活,传 pin 注册。

接口调用:

业务后台通过云签名网关,向云平台推送可信用户信息并获取激活码后,业务应用调用本接口传入激活码,同时出于避免用户维护多套口令的需求传入业务

应用自身的登录口令/安全码等作为证书 pin 码生成证书。在该种场景下,业务应用应当采用充分的技术手段保证传入的 pin 码不被非法获取、探测、复制。

接口定义:

-(NSError*)userRegisterWithPin:(NSString )appID ActiveCode:(NSString)activeCode UserPin:(NSString *)pin;

参数说明:

appID: 类型为 NSString,业务应用 ID。

activeCode:类型为 NSString,激活码,调用该接口时,激活码从业务服务端获得,传入该接口作为参数。activeCode 为 JSON 串,格式如下:

{"version":"2.0","operType":"ActiveUser","data":"6461d75f"}
pin:类型为 NSString,业务应用传入用于替代用户设置的证书口令。仅支持大小写与字母的组合。

返回值说明:

同步返回 NSError,当参数错误时返回非空 error,此时注册流程不会执行,返回为空时注册流程开始执行。
异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode:

errorDescript:

backData:

businessType:

NSString,错误码

NSString,错误信息

NSString,注册完成后用户在云服务平台中的唯一标识

NSString,业务类型值字符串,“0”表示注册业务

1.6 个人信息下证 findbackUser

别名:

个人找回证书,传个人信息找回。

接口调用:

业务应用能够获取个人用户信息时,调用该接口传入用户的姓名、证件号码、证件类型,引导用户输入短信验证码、设置 pin 码完成证书的生成。找回时传入的个人用户实名信息必须与通过网关接口添加用户信息时(即获取激活码时)保持一致。

接口定义:

-(NSError*)findbackUser(NSString*)appID

UserName:( NSString*)userName UserCardID:( NSString*) cardID;(无证件类

型设置,默认身份证类型,建议使用如下接口)

-(NSError*)findbackUser(NSString*)appID

UserName:( NSString*)userName UserCardID:( NSString*) cardID IDTppe:(NSString*)IDTypeString;

参数说明:

appID :类型为 NSString,业务应用 ID。

userName :类型为 NSString,个人用户姓名

cardID:类型为 NSString,个人用户证件号码

IDTypeString:类型为 NSString,个人用户证件类型,取值范围与对应关系如下
HK 户口簿

HZ 护照

JG 军官证

JI 警官证

JL 外国人永久居留证

SB 士兵证

SF 身份证

SG 士官证

WZ 文职干部证

GA 港澳居民身份证

XJ 学籍号

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode:

errorDescript:

backData:

businessType:

NSString,错误码

NSString,错误信息

NSString,找回完成后用户在云服务平台中的唯一标识

NSString,业务类型值字符串,“2”表示找回业务

1.7 传pin个人信息下证 findbackUserWithPin

别名:

传 pin 与个人信息找回。

接口调用:

业务应用能够获取个人用户信息时,调用该接口传入个人用户的姓名、证件号码、证件类型,同时出于避免用户维护多套口令的需求传入业务应用自身的登录口令/安全码等作为证书 pin 码生成证书,引导用户输入短信验证码完成证书的生成。找回时传入的个人用户实名信息必须与通过网关接口添加用户信息时(即获取激活码时)保持一致。在该种场景下,业务应用应当采用充分的技术手段保证传入的 pin 码不被非法获取、探测、复制。

接口定义:

-(NSError*)findbackUserWithPin(NSString*)appID UserName:( NSString*)userName UserCardID:( NSString*) cardID IDTppe:(NSString*)IDTypeString UserPin:(NSString *)pin;

参数说明:

appID :类型为 NSString,业务应用 ID。

userName :类型为 NSString,个人用户姓名

cardID:类型为 NSString,个人用户证件号码

IDTypeString:类型为 NSString,个人用户证件类型,取值范围与对应关

系如下

HK 户口簿

HZ 护照

JG 军官证

JI 警官证

JL 外国人永久居留证

SB 士兵证

SF 身份证

SG 士官证

WZ 文职干部证

GA 港澳居民身份证

XJ 学籍号

pin:类型为 NSString,业务应用传入用于替代用户设置的证书口令。仅支持大小写与字母的组合。

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

backData: NSString,找回完成后用户在云服务平台中的唯一标识

businessType: NSString,业务类型值字符串,“2”表示找回业务

1.8 企业信息下证 findbackEnterPrise

别名:

企业找回证书,传企业信息找回。

接口调用:

业务应用能够获取企业用户信息时,调用该接口传入企业用户证书持有者姓名、持有者身份证号码、企业组织机构代码,引导用户输入短信验证码、设置pin 码完成证书的生成。找回时传入的企业用户实名信息必须与通过网关接口添加用户信息时(即获取激活码时)保持一致。

接口定义:

-(NSError*)findbackEnterPrise:(NSString*)appID

UserName:(NSString*)userName UserCardID:(NSString*)cardID

IDType:(NSString*)IDTypeString EnterPriseID:(NSString*)enterPriseIdStr EnterPriseIDType:(NSString*)enterPriseIDTypeString;

参数说明:

appID :类型为 NSString,业务应用 ID。

userName :类型为 NSString,企业证书持有人姓名

cardID:类型为 NSString,企业证书持有人身份证号码

IDTypeString :类型为 NSString,企业证书持有人证件类型

enterPriseIdStr :类型为 NSString,企业证照号

enterPriseIDTypeString:类型为 NSString,企业证照类型

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

backData: NSString,找回完成后用户在云服务平台中的唯一标识

businessType: NSString,业务类型值字符串,“2”表示找回业务

1.9 传pin企业信息下证 findbackEnterPriseWithPin

别名:

传 pin 与企业信息找回。

接口调用:

业务应用能够获取企业用户信息时,调用该接口传入企业用户证书持有者姓名、持有者身份证号码、企业组织机构代码,同时出于避免用户维护多套口令的需求传入业务应用自身的登录口令/安全码等作为证书 pin 码生成证书,引导用户输入短信验证码完成证书的生成。找回时传入的企业用户实名信息必须与通过网关接口添加用户信息时(即获取激活码时)保持一致。在该种场景下,业务应用应当采用充分的技术手段保证传入的 pin 码不被非法获取、探测、复制。

接口定义:

-(NSError*)findbackEnterPriseWithPin:(NSString*)appID

UserName:(NSString*)userName UserCardID:(NSString*)cardID

IDType:(NSString*)IDTypeString EnterPriseID:(NSString*)enterPriseIdStr EnterPriseIDType:(NSString*)enterPriseIDTypeString UserPin:(NSString *)pin;

参数说明:

appID :类型为 NSString,业务应用 ID。

userName :类型为 NSString,企业证书持有人姓名

cardID:类型为 NSString,企业证书持有人身份证号码

IDTypeString :类型为 NSString,企业证书持有人证件类型

enterPriseIdStr :类型为 NSString,企业证照号

enterPriseIDTypeString:类型为 NSString,企业证照类型

pin:类型为 NSString,业务应用传入用于替代用户设置的证书口令。仅支持大小写与字母的组合。

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode:

errorDescript:

backData:

businessType:

NSString,错误码

NSString,错误信息

NSString,找回完成后用户在云服务平台中的唯一标识

NSString,业务类型值字符串,“2”表示找回业务

1.10 填写信息下证 findbackUserBySignet

别名:

云签名找回证书,带界面找回证书。

接口调用:

业务应用无法获取个人/企业用户信息时,调用该接口由用户自行输入个人/企业用户的实名信息,输入完成后引导用户输入短信验证码、设置 pin 口令完成证书的生成。个人/企业用户实名信息的输入页面由本接口内部提供并加载。

接口定义:

-(NSError*)findbackUserBySignet:(NSString*)appID;(个人)

-(NSError*)findbackEnterPriseBySignet:(NSString*)appID;(企业)

参数说明

appID:类型为 NSString,业务应用 ID。

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各

属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

backData: NSString,找回完成后用户在云服务平台中的唯一标识

businessType: NSString,业务类型值字符串,“2”表示找回业务

【签名】

云签名认证登录与数据文档签名,实质均是根据服务端发起的签名任务 ID,使用本地半张证书协同云端完成签名运算。

1.11 登录认证 userLogin

别名:

传参登录,普通登录,登录签名,APP 登录。

接口调用:

业务应用需要登录时,由业务后台调用网关,向云平台推送一个随机数并获取任务 ID 后,调用该接口传入任务 ID 及用户在云服务中的唯一标识,本接口引导用户输入 pin 口令完成对随机数的一次电子签名,业务应用获取接口返回的签名值后,可以调用网关接口进行签名的验证,验证通过则允许用户登录 APP。

接口定义:

-(NSError*)userLogin:(NSString*)appID MSSPID:(NSString*)msspID LogInJobID:( NSString*)loginJobID;

参数说明:

appID:类型为 NSString,业务应用 ID。

msspID:类型为 NSString,用户在云服务平台中唯一标识

signJobID:类型为 NSString,有业务应用服务端从云服务平台获取的本次

登录任务 ID

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

backData: NSDictionary,

SignCert: NSString,本次签名使用证书

SignDataArr: NSArray

businessId: NSString,业务应用添加的待签数据业务标识

errCode: NSString,错误码

errMsg: NSString,错误信息

serialNum: NSString,业务应用添加的待签数据流水号

signDataJobID: NSString,本次签名任务 ID

signature: NSString,签名结果

SignJobID: NSString,本次签名任务 ID

businessType: NSString,业务类型值字符串,“1”表示登录业务

1.12 数据签名 signData

别名:

文档签名,普通签名,协同签名。

接口调用:

业务应用需要对一段数据或一个文档进行电子签名时,由业务后台调用网关,向云平台推送待签名的数据(或文档)的原文(或哈希值)并获取任务 ID 后,调用该接口传入任务 ID 及用户在云服务中的唯一标识,本接口引导用户输入 pin口令完成对数据或文档的一次电子签名,业务应用获取接口返回的签名值后,可以调用网关接口进行签名的验证,验证通过则一次对数据或文档的签名完成,即生成对数据或文档的合法有效的电子签名。

接口定义:

-(NSError*)signData:(NSString*)appID MSSPID:(NSString*)msspID SignJobID:(NSString*)signJobID;

参数说明:

appID:类型为 NSString,业务应用 ID。

msspID:类型为 NSString,用户在云服务平台中唯一标识

signJobID:类型为 NSString,有业务应用服务端从云服务平台获取的本次

登录任务 ID

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

backData: NSDictionary,

SignCert: NSString,本次签名使用证书

SignDataArr: NSArray

businessId: NSString,业务应用添加的待签数据业务标识

errCode: NSString,错误码

errMsg: NSString,错误信息

serialNum: NSString,业务应用添加的待签数据流水号

signDataJobID: NSString,本次签名任务 ID

signature: NSString,签名结果

SignJobID: NSString,本次签名任务 ID

businessType: NSString,业务类型值字符串,“1”表示签名业务

1.13 传pin签名 signDataWithPin

别名:

传 pin 签署,文档传 pin 签名,数据传 pin 签名。

接口调用:

业务应用需要对一段数据或一个文档进行电子签名时,由业务后台调用网关,向云平台推送待签名的数据(或文档)的原文(或哈希值)并获取任务 ID 后,调用该接口传入任务 ID 及用户在云服务中的唯一标识,同时传入用于作为证书pin 码的业务应用自身的安全码/登录口令等,完成本次电子签名的生成。在该种场景下,业务应用应当采用充分的技术手段保证传入的 pin 码不被非法获取、探测、复制。同时传入的 pin 码必须与传 pin 生成证书(即传 pin 与邀请码注册、传pin 与个人/企业信息找回)时传入的 pin 码保持一致。

接口定义:

-(NSError*)signDataWithPin:(NSString*)appID MSSPID:(NSString*)msspID SignJobID:(NSString*)signJobID UserPin:(NSString*)pin;

参数说明:

appID:类型为 NSString,业务应用 ID。

msspID:类型为 NSString,用户在云服务平台中唯一标识

signJobID:类型为 NSString,有业务应用服务端从云服务平台获取的本次

登录任务 ID

pin:类型为 NSString,用户使用的 PIN 码

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

backData: NSDictionary,

SignCert: NSString,本次签名使用证书

SignDataArr: NSArray

businessId: NSString,业务应用添加的待签数据业务标识

errCode: NSString,错误码

errMsg: NSString,错误信息

-(NSError*)enableFingerSign:(NSString*)appID

MSSPID:(NSString*)msspID;(开启指纹)

-(NSError*)disableFingerSign:(NSString*)appID MSSPID:(NSString*)msspID;(关闭指纹)

serialNum: NSString,业务应用添加的待签数据流水号

signDataJobID: NSString,本次签名任务 ID

signature: NSString,签名结果

SignJobID: NSString,本次签名任务 ID

businessType: NSString,业务类型值字符串,“1”表示签名业务

1.14 指纹签名开关 enableFinger Sign

别名:

指纹签名,开启指纹,关闭指纹。

接口调用:

业务应用使用系统指纹代替 pin 码进行数据签名等操作时,调用该接口实现指纹的开/管。

接口定义:

参数说明:

appID:类型为 NSString,业务应用 ID。

msspID:类型为 NSString,用户在云服务平台中唯一标识返回值说明:

同步返回错误码,为 NSError 类型。

【管理】

移动端 SDK 可以进行有限的证书生命周期管理与查询功能,例如:本地证书信息查询,证书本地注销,查询企业证书相关信息等。但更全面完整的管理功能仍需要在云端发起。

1.15 获取本地用户列表 getUserListWithUserType

别名:

用户列表,获取用户姓名。

接口调用:

业务应用在需要展示当前设备拥有证书的所有用户时,或设备上有多个用户选择一个指定用户进行电子签名时,调用该接口获取所有用户列表用于展示。

接口定义:

+(NSDictionary*)getUserList;(无类型,默认搜索全部) +(NSDictionary*)getUserListWithUserType:(SignetUserType)userType;

参数说明:

userType: 枚举类型 PERSON 个人,ENTERPRISE 企业;返回值说明:

NSDictionary,结果对象,用户唯一标识与姓名对应

{

msspID=姓名;

}

1.16 检查用户证书状态 detectionUserKeyState

别名:

无。

接口调用:

业务应用在进行电子签名业务前如需获知指定用户的状态,可以调用本接口根据返回的状态码对用户下一步对行为进行引导。

接口定义:

- (NSError *)detectionUserKeyState:(NSString *)appID MSSPID:(NSString *)msspID;

参数说明:

appID :类型为 NSString,业务应用 ID。

msspID:类型为 NSString,用户在云服务平台中的唯一标识

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下::

errorCode: NSString,错误码
errorDescript: NSString,错误信息
backData: NSString,用户状态码
用户状态码 userStateCode 取值范围、意义及建议后续操作如下:
0x8120000A 云服务平台内无此用户 引导用户
注册并生成证书
0x81200003 云服务平台内有此用户但用户未激活过证书 引导用户
注册并生成证书
0x14300001 用户已激活但在设备上无证书 引导用
户找回证书
0 用户已激活且在设备上有证书,证书可用 正常执行
流程
0x81200006 用户已激活且在设备上有证书但证书被锁定 引导用户
等待或找回证书
0x8120000B 用户已激活且在设备上有证书但证书已废止 引导用户

找回证书

businessType: NSString,业务类型值字符串,“12”表示查询用户状态

1.17 证书解析 analyzeCert

别名:

无。

接口调用:

当业务应用需要解析用户扩展项时,调用该接口传入证书的 base64 字符串。

接口定义:

+(NSDictionary*)analyzeCert:(NSString*)certString Error:(NSError**)error; 参数说明:

certString :NSString,Base64 格式的证书编码Error:返回错误信息。

返回值说明:

同步返回信息,属性定义如下:

issuer:颁发机构信息

user: 证书拥有者姓名

UID: 在云签名系统中的唯一标识

notAfter: 证书有效期的起始日

notBefore:证书有效期截止日

SN:证书序列号

1.18 获取用户证书 getUserCert

别名:

获取指定证书。

接口调用:

业务应用需要获取用户证书时,调用该接口获取参数指定的证书。

接口定义:

+(NSArray*)getUserCert:(NSString*)msspID

Type:(SignetUserCertType)certType Error:(NSError**)error;

参数说明:

msspID:用户在云服务平台中的唯一标识

certType:枚举,所需获取的证书类型,定义与取值如下

RSA_LOGIN_CERT, 获取 RSA 认证证书

SM2_LOGIN_CERT, 获取 SM2 认证证书

RSA_SIGN_CERT, 获取 RSA 签名证书

SM2_SIGN_CERT, 获取 SM2 签名证书

USER_LOGIN, 获取认证证书

USER_SIGN, 获取签名证书

USER_RSA, 获取 RSA 证书

USER_SM2, 获取 SM2 证书

ALL_CERT, 获取所有在线证书

RSA_OFFLINE_SIGN_CERT, 获取 RSA 离线证书

SM2_OFFLINE_SIGN_CERT, 获取 SM2 离线证书

ALL_OFFLINE_CERT, 获取所有离线证书

返回值说明:

NSArray,获取用户证书列表,数组内字典属性定义如下:

Cert:证书

Type:证书类型,如下类型:

USER_LOGIN_RSA RSA 认证证书
USER_LOGIN_SM2 SM2 认证证书
USER_SIGN_RSA RSA 签名证书
USER_SIGN_SM2 SM2 签名证书

1.19 本地注销证书 clearCert

别名:

证书注销。

接口调用:

业务应用需要清除指定用户证书时,调用该接口。该接口仅删除当前设备上指定用户的证书,不在后台进行用户注销、清除后台信息的操作。本接口仅支持一次性删除指定用户的所有证书,不支持单独删除某一张指定算法的证书。

接口定义:

-(void)clearCert:(NSString )appID MSSPID:(NSString)msspID; 参数说明:

appID :类型为 NSString,业务应用 ID。

msspID:类型为 NSString,用户在云服务平台中的唯一标识

返回值说明:

1.20 获取手写签名图片 getUser HandWr iting

别名:

获取个人手写签章。

接口调用:

业务应用需要获取指定个人用户的手写签章图片用于展示等应用场景时,调用该接口实现。

接口定义:

-(NSString*)getUserHandWriting:(NSString*)appID

MSSPID:(NSString*)msspID;

appID:类型为 NSString,业务应用 ID。参数说明 msspID: 类型为 NSString,用户的唯一标识返回值说明:

NSString,所设置的签章图片的 Base64 编码。

1.21 获取设备唯一标识 getDeviceID

别名:

获取设备唯一 ID。

接口调用:

业务应用需要获知当前设备在系统中的唯一标识时,调用该接口

接口定义:

+(NSString*)getDeviceID;

参数说明:

返回值说明:

NSString,设备唯一表示

1.22 获取文档信息 getDocuInfo

别名:

无。

接口调用:

当业务应用需要查询某一指定 ID 的文档其相关信息时,如文档的远程路径、签章位置、文档状态等,调用该接口实现。

接口定义:

- (NSError *)getDocuInfo:(NSString *)docuID appID:(NSString *)appID MSSPID:(NSString *)msspID;

参数说明:

appID: 类型为 NSString,业务应用 ID;

msspID: 类型为 NSString,企业用户在云服务平台中的唯一标

识 docuID :类型为 NSString,文档标识

返回值说明:

DocuInfoResult 定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

businessType: 业务类型,“13”表示获取文档状态

backData: {

docuURL: NSString,文档下载路径

docuStatus: NSString,文档状态,待签或已签

location: NSString,该文档签章位置信息

persionSignImage: NSString,签章图片 Base64 编码

}

1.23 查询企业完整签章信息 getAllEnter pr iseSealImage

别名:

无。

接口调用:

业务应用需要查询企业签章全部信息,包括企业名称、签章 ID、签章图片等信息时,调用该接口实现。

接口定义:

-(NSDictionary*)getAllEnterpriseSealImage:(NSString*)appID

MSSPID:(NSString*)msspID;

参数说明:

appID:类型为 NSString,业务应用 ID;

msspID:类型为 NSString,用户在云签名服务系统中的唯一标识。

返回值说明:

NSDictionary,结果对象,各属性值定义如下:

errCode: NSString,错误码

errMsg: NSString,错误信息

gongsiname: NSString,公司名称

value: NSArray,企业签章图片列表,每一个签章的信息,属性定义如下:

imageurl:NSString 章的图片编码

name: NSString,章名称,如法人章、财务章等

1.24 查询企业基本签章信息 getEnterpriseseal

别名:

无。

接口调用:

通过调用该接口,查询到该企业用户所拥有的企业签章基本信息时,调用该接口实现。

接口定义:

-(NSDictionary*)getEnterpriseseal:(NSString*)appID

MSSPID:(NSString*)msspID;

参数说明:

appID:类型为 NSString,业务应用 ID;

msspID:类型为 NSString,企业用户在云服务平台中的唯一标识

返回值说明:

NSDictionary,结果对象,各属性值定义如下:

errCode:类型为 NSString,错误码

errMsg: 类型为 NSString,错误信息

errTrace:类型为 NSString,错误信息

extMap: 类型为 NSString

name: 类型为 NSString,企业名称

version: 类型为 NSString,版本号

enterpriseSeal:NSArray,企业签章基本信息列表,企业

所拥有的签章基本信息,属性定义如下:

imageID: 类型为 NSString,签章在云服务平台中的唯一标识

name: 类型为 NSString,签章名称,如法人章、财务章、人力章等

1.25 获取企业签章图片 getEnterpriseSealImage

别名:

获取指定企业章。

接口调用:

业务应用需要查询企业用户指定 ID 的签章的图片时,调用该接口实现。

接口定义:

-(NSArray*)getEnterpriseSealImage:(NSString*)appID

MSSPID:(NSString*)msspID withEnterprisesealInfor:(NSArray*)infor;

参数说明:

appID:类型为 NSString,业务应用 ID;

msspID:类型为 NSString,企业用户在云服务平台中的唯一标识

infor:类型为 NSString,签章图片在云服务平台中的唯一标识。

返回值说明:

NSArray,结果对象,包含 NSDictionary 内容如下:

imageurl:类型为 NSString 章的图片编码

name: 类型为 NSString,章名称,如法人章、财务章等

1.26 手写签章设置功能 setUserHandWriting

接口调用:

当业务应用需要进行网页签章或文档签署时,若需要修改云服务平台默认生

成的个人签章图片,则可调用本接口,接口将引导用户通过手写的方式设置个人

签章图片。

接口定义:

-(NSError*)setUserHandWriting:(NSString*)appID MSSPID:(NSString*)msspID;(手写签章)

参数说明:

appID: 类型为 NSString,业务应用 ID。

msspID:类型为 NSString,用户在云服务平台唯一标识返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息backData:NSString,签名图片 base64 字符串;

businessType: NSString,业务类型值字符串,“4”表示签名设置业务

【扩展】

此部分接口不包含在核心功能包中。需要与项目经理沟通并选用全功能版 SDK 集成,可能会增加额外的费用,此外全功能版 SDK 也会造成集成项目大小

的急剧增加,请谨慎评估。

1.27 拍照签章设置功能 pictureHandWriting

接口调用:

当业务应用需要进行网页签章或文档签署时,若需要修改云服务平台默认生

成的个人签章图片,则可调用本接口,接口将引导用户通过拍照的方式设置个人

签章图片。

接口定义:

-(NSError*)pictureHandWriting:(NSString*)appID MSSPID:(NSString*)msspID;(拍照签章)

参数说明:

appID: 类型为 NSString,业务应用 ID。

msspID:类型为 NSString,用户在云服务平台唯一标识返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息backData:NSString,签名图片 base64 字符串;

businessType: NSString,业务类型值字符串,“4”表示签名设置业务

1.28 扫描二维码注册 qrRegister

别名:

扫码下证。

接口调用:

业务后台通过云签名网关,向云平台推送可信用户信息并获取激活码后,

将激活码以二维码形式展现在 PC 端,此时业务应用调用本接口,由本接口

-(NSError*)qrSign:(NSString*)appID MSSPID:(NSString*)msspID;

引导用户扫描二维码、输入短信验证码、设置证书 pin 码生成证书。

接口定义:

-(NSError*)qrRegister:(NSString *)appID;

参数说明

appID:类型为 NSString,业务应用 ID。

返回值说明:

同步返回 NSError,当参数错误时返回非空 error,此时注册流程不会

执行,返回为空时注册流程开始执行。

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,

各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

backData: NSString,注册完成后用户在云服务平台中的唯一标

businessType: NSString,业务类型值字符串,“0”表示注册业务

1.29 扫描二维码签名 qrSign

别名:

扫码签名。

接口调用:

业务应用在 PC 端完成签名时,由业务后台调用网关,向云平台推送待签名的数据(或文档)的原文(或哈希值)并获取任务 ID 后,将网关返回的包含该任务 ID 的 json 串以二维码形式展现在 PC 端,业务应用调用该接口,该接口将引导用户扫描二维码、输入 pin 口令完成一次电子签名。

接口定义:

参数说明:

appID:类型为 NSString,业务应用 ID。

msspID:类型为 NSString,用户在云服务平台中唯一标识返回值说明:

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

backData: NSDictionary,

SignCert: NSString,本次签名使用证书

SignDataArr: NSArray

businessId: NSString,业务应用添加的待签数据业务标识

errCode: NSString,错误码

errMsg: NSString,错误信息

serialNum: NSString,业务应用添加的待签数据流水号

signDataJobID: NSString,本次签名任务 ID

signature: NSString,签名结果

SignJobID: NSString,本次签名任务 ID

businessType: NSString,业务类型值字符串,“1”表示签名/登录业务

1.30 身份证 OCR:getUserInfoFromIDOCR

别名:

获取用户 OCR 信息。

接口调用:

当业务应用需要或者用户的身份证各项信息时,可以通过调用该接口,引导用户拍摄身份证信息并获取拍摄过程中解析到的所有信息。

接口定义:

-(NSError*)getUserInfoFromIDOCR:(NSString *)appID ImageSymbol:(BOOL)bNeedIDImage;

参数说明:

appID:类型为 NSString,应用 appID;

bNeedIDImage:类型为 BOOL,是否返回用户身份证照片。

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

backData: NSDictionary,

userInfo: NSDictionary,个人信息

userIDNumber: 用户身份证号码

userName: 用户姓名

userAddress: 用户身份证地址

userBirthday :用户身份证出生日期

userFolk : 用户民族

userIssue :用户身份证颁发机关

userPeriod: 用户身份证有效期

userSex : 用户性别

frontImage: 身份证正面照片

backImage: 身份证反面照片

faceImage: 身份证头像照片

businessType: NSString,业务类型值字符串,“6”表示 OCR 身份证识别

业务

1.31 活体检测 startLiveCheckAppID

别名:

无。

接口调用:

当业务应用需要检测当前用户是否为真人时,可以调用该接口,接口将引导用户完成指定动作并返回用户完成动作过程中抓拍的最佳人脸图片。

接口定义:

-(NSError*)startLiveCheckAppID:(NSString *)appID liveNumber:(int)liveNumber;

参数说明:

appID : 类型为 NSString,应用 appID;

liveNumber: 类型为 int,活体检测需要用户完成的动作数量,建议不超过 3 个

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode:

errorDescript:

backData:

businessType:

NSString,错误码

NSString,错误信息

NSString,最佳人脸图片 Base64 编码

NSString,业务类型值字符串,“11”表示活体检查业务

1.32 二维码扫描 qr Scan

别名:

无。

接口调用:

业务应用需要扫描二维码时,可以调用该接口。该接口将返回扫出来的原始数据,不做任何处理。

接口定义:

-(NSError*)qrScan:(NSString*)appID MSSPID:(NSString*)msspID; 参数说明:

appID:类型为 NSString,业务应用 ID。

msspID:类型为 NSString,用户在云服务平台中唯一标识返回值说明:

返回值说明:

异步返回结果对象 backParam,通过回调方法 isProcessFinished:返回,各属性定义如下:

errorCode: NSString,错误码

errorDescript: NSString,错误信息

backData: NSString,扫描解析数据

businessType: NSString,业务类型值字符串,“14”表示二维码扫描业务

1.33 隐私协议接口

别名:无

接口调用:

当业务应用需要由业务应用自行进行用户隐私信息采集提示时,调用该接口。

若不调用则默认由 SDK 进行用户隐私信息采集提示。

接口定义:

+(void)setShowPrivacyMode:(NSUInteger)mode; 参数说明:

mode:类型为 NSUInteger,用户隐私信息采集的提示模式。0 为由 SDK 提示,非 0 为业务应用自行提示。不显示调用该接口传入非 0 值,则默认由 SDK 提示用户隐私采集信息。

返回值说明:

1.34 标准格式二维码扫码下证/签名接口

别名:

通用扫码。

接口调用:

业务应用在 PC 端完成签名时,由业务后台调用网关,向云平台推送待激活用户信息或签名的数据(或文档)的原文(或哈希值)并相关固定格式链接后,将网关返回的包含该链接字符串在内的信息,按照一定格式以二维码形式展现在 PC 端,业务应用调用该接口,该接口将引导用户扫描二维码进行新用户激活或签名。

接口定义:

-(NSError*)qrGeneral:(NSString*)appID MSSPID:(NSString*)msspID;

参数说明:

appID:类型为 NSString,业务应用 ID。

msspID:类型为 NSString,用户在云服务平台中唯一标识返回值说明,仅扫码签名时需要

返回值说明:

下证情况下返回值请参考userRegister接口;

签名时返回值请参考signData接口。

0x00000000 交互成功 继续后续流程
0x18000002 网络不可用 引导用户检查网络状态
0x81E00000 调用的接口不存在 用户未授予应用相应权限
0x11000001 用户取消操作 提示用户取消操作可能的结果
0x11000004 用户返回操作 返回上一页面
0x12200030 用户找回失败 请检查输入信息是否正确
0x14000000 设备异常 引导用户重新下证证书
0x12200020 无法识别的二维码 二维码数据格式不是接口所需数据
0x12200021 二维码扫描结果失败 二维码数据无法解析,请确认扫码信息是否与功能接口对应
0x12200010 自注册错误:下载图片失败 自注册身份证照片上传失败
0x20000008 查询应用设置信息失败 检查 appID 是否正确
0x14200009 二维码扫描功能不具备 无二维码扫描功能
0x14200007 OCR 识别功能不具备 无 OCR 识别功能
0x14200008 活体检测功能不具备 无活体检查功能
0x12700011 人脸比对失败 引导用户选择光线良好的地方重新检测
0x20000009 证书申请失败 建议引导用户重新进行证书生成操作。
0x20000001 证书过期 建议引导用户重新生成证书。
0x12200000 异常 程序发生异常。
0x8000100A 无用户 后台无此用户,检查应用配置,包
行签名操作
0x81800003 获取签名数据失败 重新获取签名数据 调用签名接口时,传入的 signJobId
0x14100001 您没有权限签署该签名 已被其他用户签署过,或 signJobId生成时指定其他用户签署,导致当 前用户无法进行签署。
0x12200050 应用策略不允许使用离线 应用策略不允许使用离线秘钥证书秘钥证书
0x12200051 查询离线证书策略失败 检查是否有离线证书
0x12200052 获取离线证书失败 检查网络状况或输入信息是否正确
0x12300021 离线签名失败 检查签名数据是否正确
0x12300022 离线签名数据为空 更新签名 ID 重新签名
0x81100000 登录云签名服务异常,请重试! 登录异常
0x81200001 没有找到激活的用户信息 用户信息未激活,请确认用户信息 的来源
0x81200000 服务执行异常 服务端异常
0x12700041 签名口令验证失败 重新输入口令
0x12100000 参数异常 传入了非法参数,请参见各接口参数说明
0x81800009 您没有权限签名当前数据 此签名 ID 是否已经被签署,重新获 取签名 ID 签署
0x8180000A 文档与用户信息不匹配 签署文档时,文档 id 不存在,或文档 id 已指定其他用户签名
0x12100001 无签章图片 未设置签章图片或服务端未返回,重新设置签章图片
0x12100002 获取当前企业的签章图片 未设置企业签章图片失败
0x12100003 没有查询到用户信息 用户未注册操作