iOS
4.1.3-alpha.19安装依赖后执行 pod install --repo-update,使用生成的 .xcworkspace 打开工程。
使用 Objective-C 或 Swift 调用 YWXSignManager。
版本和标准安装
| 项目 | 精确值 |
|---|---|
| 主 Pod | YWXSignSDK,4.1.3-alpha.19 |
| 可选原生包装 Pod | BjcaSignSDK,4.1.3-alpha.19;精确依赖同版本主 Pod |
| SDK 运行时版本 | versionString 返回 4.1.3-alpha.19 |
| 最低 iOS | 15.0 |
| 模块 | YWXSignSDK |
| 公网 Specs | https://github.com/yiwangxin/YWXSignSDK-Specs.git |
source 'https://github.com/yiwangxin/YWXSignSDK-Specs.git'
source 'https://cdn.cocoapods.org/'
platform :ios, '15.0'
target 'YourApp' do
pod 'YWXSignSDK', '= 4.1.3-alpha.19'
end权限与应用配置
Info.plist 权限配置:
| 键 | 适用场景 |
|---|---|
NSCameraUsageDescription | 扫码或证书认证调用相机 |
NSMicrophoneUsageDescription | 认证网页的音视频或麦克风调用 |
NSFaceIDUsageDescription | Face ID 能力检查及签名认证 |
NSPhotoLibraryUsageDescription | 读取相册时 |
NSPhotoLibraryAddUsageDescription | 保存到相册时 |
LSApplicationQueriesSchemes 中 weixin、wechat | 使用相应微信跳转查询时 |
初始化与环境配置
重点:认证客户使用 YWXEnvironmentPublic,医信客户使用 YWXEnvironmentSZYX。#import <YWXSignSDK/YWXSignSDK.h>
YWXSignManager *sdk = [YWXSignManager sharedManager];
[sdk startWithClientId:clientId environment:YWXEnvironmentPublic];
// 集成环境使用 YWXEnvironmentTest。import YWXSignSDK
YWXSignManager.shared().start(withClientId: clientID, environment: .public)
// 医信客户使用 .SZYX;集成环境使用 .test。接口说明
获取 SDK 实例
接口: sharedManager
取得 YWXSignManager 单例。
调用示例
YWXSignManager *sdk = [YWXSignManager sharedManager];参数: 无。
返回结果
返回类型:instancetype。
返回 YWXSignManager 单例。
获取设备标识
接口: getDeviceIdWithCompletion:
获取 SDK 业务请求使用的设备标识。
调用示例
[sdk getDeviceIdWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
同步回调;成功 data 为 {deviceId: String},失败 status 为 007x001。
导出加密日志
接口: exportEncryptedLogsWithCompletion:
导出 SDK 本地加密日志文件。
调用示例
[sdk exportEncryptedLogsWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
异步回调;成功 data 包含 path、segmentCount、failedRecordCount 和可选 recordingFailure;失败为 007x001。
data 字段
| data字段 | 类型 | 含义 |
|---|---|---|
| path | NSString | 导出文件路径。 |
| segmentCount | NSNumber | 此次密文分片数,可能为0。 |
| failedRecordCount | NSNumber | 日志记录失败数量。 |
| recordingFailure | 可选字符串 | 日志记录失败说明。 |
初始化与设置环境
接口: startWithClientId:environment:
设置 clientId 和 SDK 服务环境。
调用示例
[sdk startWithClientId:clientId
environment:environment];| 参数 | 类型 | 说明 |
|---|---|---|
clientId | NSString * | 分配给接入应用的 clientId |
environment | YWXEnvironment | 生产使用 YWXEnvironmentPublic 或 YWXEnvironmentSZYX;集成使用 YWXEnvironmentTest |
返回结果
返回类型:void。
无返回值。
environment 取值
| 常量 | 值 | 服务地址 |
|---|---|---|
YWXEnvironmentPublic | 0 | https://www.51trust.com |
YWXEnvironmentSZYX | 1 | https://www.51szyx.com |
YWXEnvironmentTest(集成) | 2 | https://test.51trust.com |
currentEnvironment | YWXEnvironment | 当前环境枚举。 |
currentEnvironmentURL | NSString* nonnull | 当前服务根地址。 |
设置导航栏颜色
接口: setupUIForNavigationBarTintColor:navigationBarBackgroundColor:
设置 SDK 导航栏文字和背景颜色。
调用示例
[sdk setupUIForNavigationBarTintColor:navigationBarTintColor
navigationBarBackgroundColor:navigationBarBackgroundColor];| 参数 | 类型 | 说明 |
|---|---|---|
navigationBarTintColor | UIColor * | 导航栏文字与按钮颜色 |
navigationBarBackgroundColor | UIColor * | 导航栏背景颜色 |
返回结果
返回类型:void。
无返回值。
设置页面语言
接口: changePreferredLanguage:
切换 SDK 页面的显示语言。
调用示例
[sdk changePreferredLanguage:language];| 参数 | 类型 | 说明 |
|---|---|---|
language | NSString * | 语言标识,取值见返回说明 |
返回结果
返回类型:void。
无返回值;language 支持 zh-Hans、en。
相关只读属性
| 属性 | 类型 | 含义 |
|---|---|---|
currentLanguage | NSString* nonnull | SDK 页面语言。 |
查询本地证书
接口: existsCertWithPhone:
查询指定手机号的本地证书是否存在。
调用示例
BOOL result = [sdk existsCertWithPhone:phone];| 参数 | 类型 | 说明 |
|---|---|---|
phone | NSString * | 当前用户的 11 位手机号 |
返回结果
返回类型:BOOL。
返回 BOOL,存在本地证书为 YES,否则为 NO。
相关只读属性
| 属性 | 类型 | 含义 |
|---|---|---|
existsCert | BOOL | 当前用户是否有本地证书。 |
下载证书
接口: certDownWithPhone:completion:
打开 SDK 证书申领与下载流程。
调用示例
[sdk certDownWithPhone:phone
completion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
phone | NSString * | 当前用户的 11 位手机号 |
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回下载结果:0 成功、3000 取消,其余状态为失败。
completion 类型
typedef void (^YWXCompletion)(YWXSignStatusCode status,
NSString *message,
id _Nullable data);completion 回调字段
| 字段 | 类型 | 说明 |
|---|---|---|
| status | YWXSignStatusCode | 0 成功,3000 取消,其余为失败码 |
| message | NSString | 结果说明 |
| data | id,可为 nil | 接口返回数据 |
更新证书
接口: certUpdateWithCompletion:
打开当前用户的证书更新流程。
调用示例
[sdk certUpdateWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回更新结果:0 成功、1007 未到可更新时间、3000 取消。
重置签名密码
接口: certResetPinWithCompletion:
打开签名 PIN 重置流程。
调用示例
[sdk certResetPinWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回 PIN 重置结果,相关状态见错误码表。
查看证书详情
接口: showCertDetailWithCompletion:
打开 SDK 证书详情页面。
调用示例
[sdk showCertDetailWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
关闭详情页返回 3000;证书查询失败返回对应错误码和说明。
清除本地证书
接口: clearCert
清除当前用户的本地证书及相关授权状态。
调用示例
BOOL result = [sdk clearCert];参数: 无。
返回结果
返回类型:BOOL。
返回 BOOL,表示本地清理结果。
获取用户信息
接口: requestUserInfoWithCompletion:
查询当前证书用户的资料。
调用示例
[sdk requestUserInfoWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
成功 data 为用户资料字典,deviceFit 为 NSNumber(BOOL),表示资料中的设备标识是否与本机一致。
相关只读属性
| 属性 | 类型 | 含义 |
|---|---|---|
openId | NSString* nullable | 当前用户 OpenId,无证书时可为 nil。 |
设置签章图片
接口: drawStampWithCompletion:
打开 SDK 手写签章页面并保存签章。
调用示例
[sdk drawStampWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回保存结果;成功后可读取 signatureBase64EncodedString。
相关只读属性
| 属性 | 类型 | 含义 |
|---|---|---|
signatureBase64EncodedString | NSString* nullable | Base64 签章图片,无签章为 nil。 |
签署待签数据
接口: signWithUniqueIdList:completion:
对服务端生成的待签 ID 列表完成签署。
调用示例
[sdk signWithUniqueIdList:uniqueIdList
completion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
uniqueIdList | NSArray<NSString *> * | 服务端生成的待签 ID 列表,1~100 项 |
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回签署结果:0 成功、3000 取消;单次 1~100 个待签 ID。
协同签名
接口: teamSignWithUniqueIdList:completion:
对协同签名业务的待签 ID 列表完成签署。
调用示例
[sdk teamSignWithUniqueIdList:uniqueIdList
completion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
uniqueIdList | NSArray<NSString *> * | 服务端生成的待签 ID 列表,1~100 项 |
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回协同签署结果:0 成功、3000 取消。
完成授权登录
接口: startOauthLogin:grantOpenId:grantUserName:completion:
根据授权请求和所选授权人完成登录流程。
调用示例
[sdk startOauthLogin:uuid
grantOpenId:grantOpenId
grantUserName:grantUserName
completion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
uuid | NSString * | 授权登录请求 ID |
grantOpenId | nullable NSString * | 所选授权人的 OpenId;当前用户登录传 nil |
grantUserName | nullable NSString * | 所选授权人的姓名;当前用户登录传 nil |
completion | YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回授权登录结果。
处理业务二维码
接口: qrDisposeWithString:completion:
接收扫码文本并执行签名或授权登录流程。
调用示例
[sdk qrDisposeWithString:qrString
completion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
qrString | NSString * | 扫码取得的完整文本 |
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回二维码业务结果;0 成功、2002 不支持该二维码、3000 取消。此重载使用当前用户完成授权登录。
处理业务二维码
接口: qrDisposeWithString:isHandleGrantOauth:completion:
接收扫码文本并执行签名或授权登录流程。
调用示例
[sdk qrDisposeWithString:qrString
isHandleGrantOauth:isHandleGrantOauth
completion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
qrString | NSString * | 扫码取得的完整文本 |
isHandleGrantOauth | BOOL | YES:查询二维码的授权关系;NO:直接使用当前用户授权登录 |
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回二维码业务结果。isHandleGrantOauth 为 YES 且存在授权关系时,返回 2003,data 包含 uuid 和 granted 数组;选择授权人后调用 startOauthLogin:grantOpenId:grantUserName:completion:。无授权关系时直接使用当前用户登录。
开启自动签名
接口: signForStartSignAutoWithSysTag:completion:
打开指定业务系统的自动签名授权流程。
调用示例
[sdk signForStartSignAutoWithSysTag:sysTag
completion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
sysTag | NSString * | 业务系统标识 |
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
成功 data 为字典,包含 signTotal 和 selfSignSession;取消返回 3000,失败返回错误码和说明。
关闭自动签名
接口: stopSignAutoWithSysTag:completion:
关闭指定业务系统的自动签授权。
调用示例
[sdk stopSignAutoWithSysTag:sysTag
completion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
sysTag | NSString * | 业务系统标识 |
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回自动签关闭结果;成功 data 可为 nil。
查询自动签名信息
接口: signAutoInfoWithCompletion:
查询当前用户的自动签授权信息。
调用示例
[sdk signAutoInfoWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
成功 data 为授权字典(聚合查询返回该结构的数组),包含 signTotal 和 selfSignSession;未匹配授权返回 003x043,data 为 nil。
data 字段
| 字段 | 类型 | 说明 |
|---|---|---|
| signTotal | NSNumber | 累计签名次数 |
| selfSignSession.clientId | NSString | 授权厂商标识 |
| selfSignSession.clientName | NSString | 授权厂商名称 |
| selfSignSession.endTime | NSString | 授权到期时间 |
| selfSignSession.sdk | NSNumber(BOOL) | SDK 授权标记 |
| selfSignSession.sysTags | NSArray<NSString *> | 已授权业务系统标识 |
| selfSignSession.version | NSString | 授权会话版本 |
显示 PIN 输入框
接口: showPinWindowWithCompletion:
打开 SDK PIN 输入窗口并取得输入结果。
调用示例
[sdk showPinWindowWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
成功 data 为字典:pin 为输入的 PIN 字符串,pinForNet 为加密后的 PIN 字符串;用户取消为 3000。
开启免密签名
接口: keepPinWithDays:completion:
校验 PIN 并设置免密有效天数。
调用示例
[sdk keepPinWithDays:days
completion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
days | NSInteger | 免密有效天数,1~60 |
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
成功 data 为 nil;天数范围为 1~60,非法天数返回 1008。
相关只读属性
| 属性 | 类型 | 含义 |
|---|---|---|
isPinExempt | BOOL | 免密签名是否开启。 |
关闭免密签名
接口: clearPin
关闭免密签名。
调用示例
[sdk clearPin];参数: 无。
返回结果
返回类型:void。
无返回值。
查询可用生物识别类型
接口: getSupportedBiometricTypesWithCompletion:
获取设备当前可用于签名认证的指纹或人脸类型。
调用示例
[sdk getSupportedBiometricTypesWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
成功 data 为 NSArray<YWXBiometricType>,无可用类型时为空数组。YWXBiometricTypeFingerprint(fingerprint):Touch ID;YWXBiometricTypeFace(face):Face ID。
开启指定生物识别签名
接口: startBiometricAuthenticationForSignWithType:completion:
使用指定的指纹或人脸类型开启签名授权。
调用示例
[sdk startBiometricAuthenticationForSignWithType:type
completion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
type | YWXBiometricType | 传入查询接口返回的 YWXBiometricTypeFingerprint 或 YWXBiometricTypeFace |
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回开启结果;类型不匹配为 1010,非法参数为 1003。
开启生物识别签名
接口: startBiometricAuthenticationForSignWithCompletion:
使用设备可用的生物识别方式开启签名授权。
调用示例
[sdk startBiometricAuthenticationForSignWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回开启结果。
相关只读属性
| 属性 | 类型 | 含义 |
|---|---|---|
isBiometricAuthenticationEnabled | BOOL | 生物识别签名是否开启。 |
关闭生物识别签名
接口: stopBiometricAuthenticationForSignWithCompletion:
关闭生物识别签名。
调用示例
[sdk stopBiometricAuthenticationForSignWithCompletion:^(NSString *status, NSString *message, id data) {
// 处理返回结果。
}];| 参数 | 类型 | 说明 |
|---|---|---|
completion | nullable YWXCompletion | 结果回调,参数为 status、message、data |
返回结果
返回类型:void。
completion 返回关闭结果;成功 status 为 0。
获取 SDK 版本
接口: versionString(只读属性)
读取当前 SDK 版本号。
调用示例
NSString *version = sdk.versionString;参数: 无。
返回结果
返回 NSString,当前版本为 4.1.3-alpha.19。
查询指定厂商证书
接口: existsCertWithFirmID:
查询指定厂商证书。
调用示例
BOOL exists = [sdk existsCertWithFirmID:firmId];| 参数 | 类型 | 说明 |
|---|---|---|
firmId | nullable NSString * | 厂商标识 |
返回结果
返回 BOOL:存在为 YES,否则为 NO。
下载指定厂商证书
接口: certDownWithPhone:firmId:completion:
下载指定厂商证书。
调用示例
YWXCompletion completion = ^(NSString *status, NSString *message, id data) {
// 处理返回结果。
};
[sdk certDownWithPhone:phone firmId:firmId completion:completion];| 参数 | 类型 | 说明 |
|---|---|---|
phone | NSString * | 手机号 |
firmId | nullable NSString * | 厂商标识 |
completion | nullable YWXCompletion | 结果回调:status、message、data |
返回结果
completion(status, message, data);成功 status 为 0,取消为 3000,失败返回错误码与说明。
更新指定厂商证书
接口: certUpdateWithFirmId:completion:
更新指定厂商证书。
调用示例
YWXCompletion completion = ^(NSString *status, NSString *message, id data) {
// 处理返回结果。
};
[sdk certUpdateWithFirmId:firmId completion:completion];| 参数 | 类型 | 说明 |
|---|---|---|
firmId | nullable NSString * | 厂商标识 |
completion | nullable YWXCompletion | 结果回调:status、message、data |
返回结果
completion(status, message, data);成功 status 为 0,取消为 3000,失败返回错误码与说明。
重置指定厂商签名密码
接口: certResetPinWithFirmId:completion:
重置指定厂商签名密码。
调用示例
YWXCompletion completion = ^(NSString *status, NSString *message, id data) {
// 处理返回结果。
};
[sdk certResetPinWithFirmId:firmId completion:completion];| 参数 | 类型 | 说明 |
|---|---|---|
firmId | nullable NSString * | 厂商标识 |
completion | nullable YWXCompletion | 结果回调:status、message、data |
返回结果
completion(status, message, data);成功 status 为 0,取消为 3000,失败返回错误码与说明。
查看指定厂商证书详情
接口: showCertDetailWithFirmId:completion:
查看指定厂商证书详情。
调用示例
YWXCompletion completion = ^(NSString *status, NSString *message, id data) {
// 处理返回结果。
};
[sdk showCertDetailWithFirmId:firmId completion:completion];| 参数 | 类型 | 说明 |
|---|---|---|
firmId | nullable NSString * | 厂商标识 |
completion | nullable YWXCompletion | 结果回调:status、message、data |
返回结果
关闭详情页返回 3000;证书查询失败返回对应错误码和说明。
设置指定厂商签章
接口: drawStampWithFirmIds:completion:
设置指定厂商签章。
调用示例
YWXCompletion completion = ^(NSString *status, NSString *message, id data) {
// 处理返回结果。
};
[sdk drawStampWithFirmIds:firmIds completion:completion];| 参数 | 类型 | 说明 |
|---|---|---|
firmIds | nullable NSArray<NSString *> * | 厂商标识数组 |
completion | nullable YWXCompletion | 结果回调:status、message、data |
返回结果
completion(status, message, data);成功 status 为 0,取消为 3000,失败返回错误码与说明。
签署指定厂商待签数据
接口: signWithFirmId:uniqueIdList:completion:
签署指定厂商待签数据。
调用示例
YWXCompletion completion = ^(NSString *status, NSString *message, id data) {
// 处理返回结果。
};
[sdk signWithFirmId:firmId uniqueIdList:uniqueIdList completion:completion];| 参数 | 类型 | 说明 |
|---|---|---|
firmId | NSString * | 厂商标识 |
uniqueIdList | NSArray<NSString *> * | 待签数据 ID 数组,最多 100 条 |
completion | nullable YWXCompletion | 结果回调:status、message、data |
返回结果
completion(status, message, data);成功 status 为 0,取消为 3000,失败返回错误码与说明。
开启指定厂商自动签名
接口: signForStartSignAutoWithFirmId:sysTag:completion:
开启指定厂商自动签名。
调用示例
YWXCompletion completion = ^(NSString *status, NSString *message, id data) {
// 处理返回结果。
};
[sdk signForStartSignAutoWithFirmId:firmId sysTag:sysTag completion:completion];| 参数 | 类型 | 说明 |
|---|---|---|
firmId | NSString * | 厂商标识 |
sysTag | NSString * | 自动签系统标识 |
completion | nullable YWXCompletion | 结果回调:status、message、data |
返回结果
成功 status 为 0,data 包含 signTotal 和 selfSignSession,字段见查询自动签名信息;取消为 3000,失败返回错误码与说明。
关闭指定厂商自动签名
接口: stopSignAutoWithFirmId:sysTag:completion:
关闭指定厂商自动签名。
调用示例
YWXCompletion completion = ^(NSString *status, NSString *message, id data) {
// 处理返回结果。
};
[sdk stopSignAutoWithFirmId:firmId sysTag:sysTag completion:completion];| 参数 | 类型 | 说明 |
|---|---|---|
firmId | NSString * | 厂商标识 |
sysTag | NSString * | 自动签系统标识 |
completion | nullable YWXCompletion | 结果回调:status、message、data |
返回结果
成功 status 为 0,data 为 nil;失败返回错误码与说明。
授权他人签名
接口: grantSignAuthorizationToFirmId:grantedUserId:hours:completion:
授权他人签名。
调用示例
YWXCompletion completion = ^(NSString *status, NSString *message, id data) {
// 处理返回结果。
};
[sdk grantSignAuthorizationToFirmId:firmId grantedUserId:grantedUserId hours:hours completion:completion];| 参数 | 类型 | 说明 |
|---|---|---|
firmId | NSString * | 厂商标识 |
grantedUserId | NSString * | 被授权用户标识 |
hours | NSInteger | 授权时长,单位小时,至少 1 小时 |
completion | nullable YWXCompletion | 结果回调:status、message、data |
返回结果
completion(status, message, data);成功 status 为 0,取消为 3000,失败返回错误码与说明。
关闭授权签名
接口: stopGrantSignAuthorizationToFirmId:grantUniqueId:completion:
关闭授权签名。
调用示例
YWXCompletion completion = ^(NSString *status, NSString *message, id data) {
// 处理返回结果。
};
[sdk stopGrantSignAuthorizationToFirmId:firmId grantUniqueId:grantUniqueId completion:completion];| 参数 | 类型 | 说明 |
|---|---|---|
firmId | NSString * | 厂商标识 |
grantUniqueId | NSString * | 授权记录标识 |
completion | nullable YWXCompletion | 结果回调:status、message、data |
返回结果
成功 status 为 0,data 为服务端返回数据(可为 nil);失败返回错误码与说明。
错误码
常量(共同前缀 YWXSignStatusCode,另注者除外) | 字符串值 | 含义与处理 |
|---|---|---|
| Success | 0 | 本次操作成功。 |
| CertificateDoesNotExist | 1001 | 本地证书不存在。 |
| SignatureDoesNotExist | 1002 | 签章不存在;需要完成签章配置。 |
| ParameterNull | 1003 | 参数缺失或格式错误。 |
| InsufficientPermissions | 1004 | 缺少权限。 |
| SignDataCountError | 1006 | 签名数组为空或超过 100 条。 |
| CertificateIsNotExpired | 1007 | 证书尚无需更新。 |
| FreePinDayIllegal | 1008 | 免密天数不在1...60。 |
| InvalidPhoneNumberFormat | 1009 | 手机号格式不正确。 |
| BiometricNotEnabled | 1010 | 生物识别不可用/未开启/指定类型不匹配。 |
| ResetPasswordSuccess | 1013 | 重置密码成功;按重置业务处理。 |
| CantSignOtherUserData | 1015 | 不可操作其他用户数据。 |
| UnsupportedCAChannel | 1016 | 当前证书渠道不支持。 |
| 无公开常量 | 007x001 | 设备标识存储或加密日志导出失败。 |
| 无公开常量 | 1023 | SDK 安全存储不可用。 |
| 无公开常量 | 003x043 | 未查询到自动签授权。 |
| NetworkError | 2001 | 网络异常。 |
| QRCodeError | 2002 | 当前二维码业务不能处理。 |
| NeedGrantInfoError | 2003 | 需要选择授权人。 |
| Cancel | 3000 | 用户取消或操作已失效。 |
| BiometricLockoutError | 0x14100402 | 连续认证错误导致生物锁定。 |
| TouchIDVerifyError | 0x14100403 | Touch ID验证失败。 |
| FaceIDVerifyError | 0x14100404 | Face ID验证失败。 |
YWXSignResponseCodeInvalidPhoneNumberFormat | 017x001 | 服务端手机号格式错误。 |
YWXSignResponseCodeUserDoesNotExist | 017x003 | 服务端账号不存在。 |
升级指引
必做配置
1. Pod 依赖更新为 pod 'YWXSignSDK', '= 4.1.3-alpha.19'。
2. 最低系统版本设置为 iOS 15。
3. 执行 pod install --repo-update,通过生成的 .xcworkspace 打开工程。
4. 按使用功能配置本页列出的 Info.plist 权限说明。
现有调用是否需要修改
YWXSignManager 的普通证书、签章、签名、免密及自动签接口保留原调用方式;结果回调仍为 status、message、data。
按需接入的新接口
| 需要的功能 | 接入方法 |
|---|---|
| 查询指定手机号的本地证书 | existsCertWithPhone: |
| 查询指定厂商的本地证书 | existsCertWithFirmID: |
| 查询可用生物识别类型 | getSupportedBiometricTypesWithCompletion: |
| 指定生物识别类型开启签名 | startBiometricAuthenticationForSignWithType:completion: |
| 获取设备标识 | getDeviceIdWithCompletion: |
| 导出加密日志 | exportEncryptedLogsWithCompletion:,从 data.path 读取文件路径 |