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

1. 集成准备

1.1 使用接口的准备工作

在业务app工程的AndroidManifest.xml中,确保具备如下权限:

android:name="android.permission.WRITE_EXTERNAL_STORAGE" 	
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
android:name=" android.permission.ACCESS_FINE_LOCATION"
android:name=" android.permission.READ_PHONE_STATE"

android:name=" android.permission.ACCESS_WIFI_STATE"

android:name=" android.permission.INTERNET "

android:name=" android.permission.ACCESS_NETWORK_STATE"

android:name="android.permission.CAMERA"

​android:name="android.permission.USE_BIOMETRIC"

​ 注:若应用不使用SDK中指纹、二维码、自注册等相关功能,则相机与指纹权限可以不声明。

对如下Activity进行声明:

<activity  android:name="cn.org.bjca.signet.component.core.activity.SignetCoreApiActivity"

​ android:screenOrientation="portrait"

​ android:configChanges="orientation|screenSize" />

<activity android:name="cn.org.bjca.livecheckplugin.ui.LiveActivity"

​ android:screenOrientation="portrait"/ >

<activity android:name="cn.org.bjca.signet.component.ocr.activity.CaptureIdCardActivity"

​ android:screenOrientation="portrait" />

<activity android:name="cn.org.bjca.signet.component.qr.activity.QRScanActivity"

​ android:screenOrientation=" portrait "/>

<activity android:name="cn.org.bjca.signet.component.seal.activity.SignetSealApiActivity"

​ android:screenOrientation=" landscape " />

<activity android:name="cn.org.bjca.signet.component.seal.activity.CaptureSignActivity"

​ android:screenOrientation=" landscape " />

注:(1)若集成本产品的应用不配置活体检测策略,则可不声明LiveActivity;

(2)若不调用本产品扫码相关接口,则可不声明QRScanActivity;

(3)若不调用拍照签名功能,则可不声明CaptureSignActivity;

(4)若不调用设置个人手写签章功能,则可不声明SignetSealApiActivity

(5)若不调用自注册与获取OCR信息功能则可不声明CaptureIdCardActivity;

1.2 产品部署流程

​ 解压“云签名SDK集成”压缩包,将libs目录下的.jar文件添加到APP工程目录的libs目录下,将不同CPU架构子目录下的.so文件添加到APP工程libs目录下对应的CPU架构文件夹中。若应用开发商对部分CPU架构机型不做支持,则可不集成相应架构子目录下的底层库文件

​ 将LiveSound、MsspClient、SignImgPages三个目录及signet_config.json文件部署在工程asset目录下。在signet_config.json中写入客户端SDK需要的配置信息,

如:{“signetServUrl”:http://dev.isignet.cn:8080/”, “appId”:”xxxxx-xxxx–xxxxxx”,” useSelfSignCert”:”false”}。配置文件中各键值含义如下:

​ (1)signetServUrl:客户端SDK连接的云服务环境。接入初期测试阶段连接联调环境的云服务,测试通过正式上线则修改为生产环境的云服务地址。

(2)appId:云服务为接入的业务应用分配的标识,用于区分不同的业务来源。同一个应用分别接入联调环境与生产环境时,会产生不同的signetServUrl与appId,请注意修改并配套。

(3)“useSelfSignCert”:

若业务应用接入的是BJCA云签名服务的公有云平台,则该配置项为false;

若业务应用接入的是私有云、政务云或自建内网云等,且云端配置的服务器证书为全球服务器证书(即签发服务器证书的CA机构顶级根证已被Android系统预埋),则该配置项为false;

若业务应用接入的是私有云、政务云或自建内网云等,且云端配置的服务器证书由自建CA或其他未被Android系统预埋顶级根证的CA机构所签发(即服务器使用的证书不是全球服务器证书),则该项必须为true,同时在MsspClient/certs/目录下放入该CA的顶级根证书。根证的格式必须为pem编码或base64编码,不能为der编码。同时服务端必须配置完整的证书链。

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

​ 清单、部署及注意事项如下表所示:

​ 产品清单与部署

子目录 文件 说明
libs/arm64-v8a libclientalg.so 必须集成
libs/armeabi libs/armeabi-v7a libs/mips libs/mips64libs/x86libs/ x86_64 同上 同上
libs clientutil.jar 必须集成
libs gson-2.2.2.jar 应用工程中已有则可不集成
libs signetsdkVX.X.X.jar 信步云全功能版SDK
libs msspprovider_signed.jar 必须集成
assets/MsspClient HTML+JS+CSS文件 SDK部分接口与用户交互UI页面,必须集成;开发商可根据应用UI风格自行进行开发调整
signet_config.json 客户端SDK使用的配置文件,必须集成

1.3 接口的升级

未集成过云签名移动端SDKV2.1.2及早期版本的用户,可忽略本章节。

对由旧有版本产品更新至本产品的用户,需要修改以下部署:

1、 按2.1.1章节所描述路径,重新声明所使用功能模块需要声明的Activity

2、 集成新的assets下的内容,并在signet_config.json中配置相关信息

3、 在调用旧有版本接口Activity的onActivityResult方法中,注释掉如下代码:

if(signetSDKInstance!=null){

MessageControler.messageHandle(context,data);

​ }

4、若引用旧版产品ResultCode等类,则重新import路径即可

完成上述四步后, V2.1.2及早期版本产品SignetSDKInstance各接口、参数、回调的代码均无需变动

2. 接口详情

3.【下证】

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

3.1 邀请码下证

别名:

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

接口调用:

业务后台通过云签名网关,向云平台推送可信用户信息并获取激活码后,由业务应用调用本接口传入激活码,引导用户输入短信验证码、设置证书pin码生成证书。

接口定义:

SignetCoreApi.useCoreFunc(new RegisterCallBack(Context context,String activeCode, 

RegisterType RegisterType.COORDINATE

){

@Override

public void onRegisterResult(RegisterResult result) {

//TODO
}

});

参数说明:

​ context:上下文环境

​ activeCode:业务应用服务端从云服务平台获取的用户激活码

​ RegisterType:业务标识,固定传入RegisterType. COORDINATE,标识本次申请在线协同证书。

返回值说明:

result,结果对象RegisterResult,各属性定义如下,均使用get访问器获取属性值:

​ errCode: String,错误码

​ errMsg: String,错误信息

msspID: String,注册完成后用户在云服务平台中的唯一标识
userMobile: String,用户手机号码

userName: String,用户姓名

3.2 传pin邀请码下证

别名:

传pin激活,传pin注册。

接口调用:

业务后台通过云签名网关,向云平台推送可信用户信息并获取激活码后,业务应用调用本接口传入激活码,同时出于避免用户维护多套口令的需求传入业务应用自身的登录口令/安全码等作为证书pin码生成证书。在该种场景下,业务应用应当采用充分的技术手段保证传入的pin码不被非法获取、探测、复制。

接口定义:

SignetCoreApi.useCoreFunc(new RegisterCallBack(Context context,String activeCode, 

RegisterType RegisterType.COORDINATE,String pin

){

@Override

public void onRegisterResult(RegisterResult result) {

//TODO
}

​ });

参数说明:

context:上下文环境

msspID:申请注册协同证书的用户在云服务平台中的唯一标识

RegisterType:业务标识,固定传入RegisterType. COORDINATE,标识本次申请在线协同证书。

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

返回值说明:

result,结果对象RegisterResult,各属性定义如下,均使用get访问器获取属性值:

​ errCode: String,错误码

​ errMsg: String,错误信息

msspID: String,注册完成后用户在云服务平台中的唯一标识
userMobile: String,用户手机号码

userName: String,用户姓名

3.3 个人信息下证

别名:

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

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new FindBackUserCallBack (Context context, String name, String idCardNumber, IdCardType idCardType)){

@Override

public void onFindBackResult(FindBackUserResult result) {

//TODO

}

});

参数说明:

​ context:上下文环境

​ name:个人用户姓名

​ idCardNumber:个人用户证件号码

​ idCardType:个人用户证件类型,枚举,取值范围与对应关系如下

HK 户口簿

​ HZ 护照

​ JG 军官证

​ JI 警官证

​ JL 外国人永久居留证

​ SB 士兵证

​ SF 身份证

​ SG 士官证

WZ 文职干部证

GA 港澳居民身份证

XJ 学籍号

返回值说明:

result,结果对象FindBackUserResult,各属性定义如下,均使用get访问器获取属性值:

errCode: String,错误码

errMsg: String,错误信息

msspID: String,用户唯一标识

3.4 传pin个人信息下证

别名:

传pin与个人信息找回。

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new FindBackUserCallBack (Context context, String name, String idCardNumber, IdCardType idCardType,String pin)){

@Override

public void onFindBackResult(FindBackUserResult result) {

//TODO

}

});

参数说明:

​ context:上下文环境

​ name:个人用户姓名

​ idCardNumber:个人用户证件号码

​ idCardType:个人用户证件类型,枚举,取值范围与对应关系如下

HK 户口簿

​ HZ 护照

​ JG 军官证

​ JI 警官证

​ JL 外国人永久居留证

​ SB 士兵证

​ SF 身份证

​ SG 士官证

WZ 文职干部证

GA 港澳居民身份证

XJ 学籍号

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

返回值说明:

result,结果对象FindBackUserResult,各属性定义如下,均使用get访问器获取属性值:

errCode: String,错误码

errMsg: String,错误信息

msspID: String,用户唯一标识

3.5 企业信息下证

别名:

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

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new FindBackUserCallBack (Context context, String corporateName, String corporateCardNumber, String enterOrg)){

@Override

public void onFindBackResult(FindBackUserResult result) {

//TODO

}

});

参数说明:

​ context:上下文环境

​ corporateName:企业证书持有人姓名

​ corporateCardNumber:企业证书持有人身份证号码

​ enterOrg:企业唯一标识

返回值说明:

result,结果对象FindBackUserResult,各属性定义如下,均使用get访问器获取属性值:

errCode: String,错误码

errMsg: String,错误信息

msspID: String,用户唯一标识

3.6 传pin企业信息下证

别名:

传pin与企业信息找回。

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new FindBackUserCallBack (Context context, String corporateName, String corporateCardNumber, String enterOrg,String pin)){

@Override

public void onFindBackResult(FindBackUserResult result) {

//TODO

}

});

参数说明:

​ context:上下文环境

​ corporateName:企业证书持有人姓名

​ corporateCardNumber:企业证书持有人身份证号码

​ enterOrg:企业唯一标识

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

返回值说明:

result,结果对象FindBackUserResult,各属性定义如下,均使用get访问器获取属性值:

errCode: String,错误码

errMsg: String,错误信息

msspID: String,用户唯一标识

3.7 填写信息下证

别名:

信步云找回证书,带界面找回证书。

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new FindBackUserCallBack (Context context, FindBackType findBackType)){

@Override

public void onFindBackResult(FindBackUserResult result) {

//TODO

}

});

参数说明

​ context:上下文环境

​ findBackType:枚举,取值与定义如下:

​ FINDBACK_USER :通过云签名SDK页面找回个人用户

​ FINDBACK_ENTERPRISE: 通过云签名SDK页面找回企业用户

返回值说明:

result,结果对象FindBackUserResult,各属性定义如下,均使用get访问器获取属性值:

errCode: String,错误码

errMsg: String,错误信息

msspID: String,用户唯一标识

3.8 扫二维码注册

接口调用:

由业务应用调用本接口开启摄像头,扫二维码获取激活码,引导用户输入短信验证码、设置证书pin码生成证书。

接口定义:

SignetCoreApi.useCoreFunc(new RegisterCallBack(Context context

){

@Override

public void onRegisterResult(RegisterResult result) {

//TODO
}

});

参数说明:

​ context:上下文环境

返回值说明:

result,结果对象RegisterResult,各属性定义如下,均使用get访问器获取属性值:

​ errCode: String,错误码

​ errMsg: String,错误信息

msspID: String,注册完成后用户在云服务平台中的唯一标识
userMobile: String,用户手机号码

​ userName: String,用户姓名

4.【签名】

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

4.1 登录认证

别名:

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

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new LoginCallBack(Context context, String msspID, String signId))

{

@Override

public void onLoginResult(LoginResult result) {

//TODO

}

});

参数说明:

context:上下文环境

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

signId:有业务应用服务端从云服务平台获取的本次登录任务ID

返回值说明:

LoginResult,结果对象,各定义如下,均使用get访问器获取属性值:

cert: String,本次签名使用证书

signDataJobId String,本次签名任务ID

​ signDataInfos List ,签名结果列表,若单条签名则List只有一条数据

SignDataInfos定义如下:

signDataJobID: String,本条记录的签名任务ID
data: String,待签数据

signParame: String, SM2签名参数

docuName: String, (若本条签署任务为文档签署)文档名称

docuUrl: String ,(若本条签署任务为文档签署)文档预览Url
signature: String,签名结果
businessId: String,业务应用添加的待签数据业务标识
serialNum: String,业务应用添加的待签数据流水号
errCode: String,错误码
errMsg: String,错误信息

4.2 数据签名

别名:

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

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new SignDataCallBack(Context context, String msspID, String signId)){

@Override

public void onSignDataResult(SignDataResult result) {

//TODO

}

});

参数说明:

context:上下文环境

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

signId:本次数据与文档签署的任务ID

返回值说明:

SignDataResult,结果对象,各定义如下,均使用get访问器获取属性值:

cert: String,本次签名使用证书

signDataJobId String,本次签名任务ID

​ signDataInfos List ,签名结果列表,若单条签名则List只有一条数据

SignDataInfos定义如下:

​ signDataJobID: String,本条记录的签名任务ID

​ data: String,待签数据

​ signParame: String, SM2签名参数

​ docuName: String, (若本条签署任务为文档签署)文档名称
docuUrl: String ,(若本条签署任务为文档签署)文档预览Url
signature: String,签名结果
​ businessId: String,业务应用添加的待签数据业务标识
serialNum: String,业务应用添加的待签数据流水号
​ errCode: String,错误码
errMsg: String,错误信息

4.3 传pin签名

别名:

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

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new SignDataWithPinCallBack (Context context, String msspID, String signJobId, String pin)){

@Override

public void onSignDataPinResult(SignDataPinResult result) {

//TODO

}

});

参数说明:

context:上下文环境

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

​ signJobId:签名任务ID

​ pin:用户使用的PIN码

返回值说明:

SignDataResult,结果对象,各定义如下,均使用get访问器获取属性值:

cert: String,本次签名使用证书

signDataJobId String,本次签名任务ID

​ signDataInfos List ,签名结果列表,若单条签名则List只有一条数据

SignDataInfos定义如下:

​ signDataJobID: String,本条记录的签名任务ID
data: String,待签数据
signParame: String, SM2签名参数
docuName: String, (若本条签署任务为文档签署)文档名称
docuUrl: String ,(若本条签署任务为文档签署)文档预览Url
signature: String,签名结果
​ businessId: String,业务应用添加的待签数据业务标识
serialNum: String,业务应用添加的待签数据流水号
​ errCode: String,错误码
errMsg: String,错误信息

4.4 指纹签名开关

别名:

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

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new SetFingerCallBack(Context context, String msspID, SetFingerOperType operType)){

@Override

public void onSetFingerResult (SignetBaseResult result) {

//TODO

}

});

参数说明:

context:上下文环境

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

operType:枚举,定义与取值如下:

​ ENABLE_FINGER 开启指纹

​ DISABLE_FINGER 关闭指纹

返回值说明:

​ SignetBaseResult,结果对象,各属性定义如下,均使用get访问器获取属性值:

​ errCode: String,错误码

​ errMsg: String,错误信息

5.【管理】

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

5.1 获取本地用户列表

别名:

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

接口调用:

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

接口定义:

SignetToolApi.getUserList(Context context)

参数说明:

​ context:上下文环境

返回值说明:

GetUserListResult,结果对象,各属性定义如下,均使用get访问器获取属性值:

​ errCode: String,错误码

​ errMsg: String,错误信息

​ userListMap: HashMap<String, String>,KEY为当前设备上存在的用户在云服务平台中的唯一标识,VALUE为该用户姓名

5.2 检查用户证书状态

别名:

无。

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new CheckStateCallBack(Context context, String msspID)){

@Override

public void onCheckKeyStateResult(SignetBaseResult result){

//TODO

}

}

参数说明:

context:上下文环境

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

返回值说明:

UserStateResult,各属性定义如下,均使用get访问器获取属性值:

​ errCode: String,错误码

​ errMsg: String,错误信息

​ userStateCode: String,用户状态码

用户状态码userStateCode取值范围、意义及建议后续操作如下:

0x8120000A 云服务平台内无此用户 引导用户注册并生成证书
0x81200003 云服务平台内有此用户但用户未激活过证书 引导用户注册并生成证书

      0x14300001 用户已激活但在设备上无证书                     引导用户找回证书

0 用户已激活且在设备上有证书,证书可用 正常执行流程

0x81200006 用户已激活且在设备上有证书但证书被锁定 引导用户等待或找回证书
0x8120000B 用户已激活且在设备上有证书但证书已废止 引导用户找回证书

5.3 证书解析

别名:

无。

接口调用:

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

​ SignetToolApi.analyzeCert(String cert)

参数说明:

​ cert:Base64格式的证书编码

返回值说明:

AnalyzeCertResult,结果对象,各定义如下,均使用get访问器获取属性:

​ errCode: String,错误码

​ errMsg: String,错误信息

​ infoMap: HashMap<String, String>,KEY分别为C、CN、UID

5.4 获取用户证书

别名:

获取指定证书。

接口调用:

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

接口定义:

​ SignetToolApi.getUserCert(Context context, String msspID, CertType certType)

参数说明:

context:上下文环境

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

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

​ ALL_CERT 获取所有在线证书

​ RSA_SIGN_CERT, 获取RSA签名证书

​ RSA_AUTH_CERT, 获取RSA认证证书

​ SM2_SIGN_CERT, 获取SM2签名证书

​ SM2_AUTH_CERT 获取SM2认证证书

返回值说明:

​ GetCertResult,结果对象,各属性定义如下,均通过get访问器获取:

​ errCode:错误码

​ errMsg:错误信息

​ userCertMap: HashMap<CertType, String>KEY为传入的所需要获取的用户证书类型

5.5 本地注销证书

别名:

证书注销。

接口调用:

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

接口定义:

SignetToolApi.clearCert(Context context, String msspID, CertType certType)

参数说明:

context:上下文环境

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

certType:要注销的证书类型,目前仅支持全部证书的注销,不支持单张证书的注销。取值与定义如下:

​ ALL_CERT:注销所有证书

返回值说明:

SignetBaseResult,结果对象,各属性定义如下,均使用get访问器获取属性值:

​ errCode: String,错误码

​ errMsg: String,错误信息

5.6 获取手写签名图片

别名:

获取个人手写签章。

接口调用:

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

接口定义:

​ SignetToolApi.getSignImage (Context context,String msspID)

参数说明

​ context:类型为Context,当前上下文环境

​ msspID: 类型为String,用户的唯一标识

返回值说明:

SignImageResult结果对象,各定义如下,均使用get访问器获取属性值:

errCode: String,错误码

​ errMsg: String,错误信息

​ signImageSrc: String,所设置的签章图片的Base64编码

5.7 获取设备唯一标识

别名:

获取设备唯一ID。

接口调用:

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

接口定义:

​ SignetToolApi.getDeviceId(Context context)

参数说明:

​ context:类型为Context,当前上下文环境

返回值说明:

​ GetDeviceIdResult,结果对象,各属性定义如下,均通过get访问器获取属性值:

​ errCode: String,错误码

​ errMsg: String,错误信息

​ deviceId String,设备唯一表示

5.8 获取文档信息

别名:

无。

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new DocuInfoCallBack(Context context, String msspID, String docuId)){

@Override

public void onGetDocuInfo (DocuInfoResult result)

{

//TODO

}

});

参数说明:

​ cntext :上下文环境

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

​ docuId:文档标识

返回值说明:

DocuInfoResult定义如下:

errCode: String,错误码

​ errMsg: String,错误信息

docuURL: String,文档下载路径
docuStatus: String,文档状态,待签或已签
location: String,该文档签章位置信息
persionSignImage: String,签章图片Base64编码

5.9 查询企业完整签章信息

别名:

无。

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new EnterpriseSealTotalCallBack(Context context, String msspID)){

@Override

public void onEnterpriseSealTotal(EnterpriseSealTotalInfo result)

{

//TODO

}

});

参数说明:

​ cntext :上下文环境

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

返回值说明:

EnterpriseSealTotalInfo,结果对象,各定义如下,均使用get访问器获取属性值:

​ errCode: String,错误码

​ errMsg: String,错误信息

​ enterPriseResultInfo: 签章信息对象,企业签章全部信息,属性定义如下:

gongsiname: String,公司名称
List value: List,企业签章图片列表

EnterPriseImage,每一个签章的信息,属性定义如下:

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

​ imgurl: String,章的图片编码

5.10 查询企业基本签章信息

别名:

无。

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new EnterpriseSealBaseCallBack(Context context, String msspID)){

@Override

public void onGetEnterpriseSealBase (EnterpriseSealBaseInfo result)

{

//TODO

}

});

参数说明:

​ cntext :上下文环境

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

返回值说明:

EnterpriseSealBaseInfo,结果对象,各定义如下,均使用get访问器获取属性值:

​ errCode:错误码

​ errMsg:错误信息

enterpriseName; 企业名称

List list 企业签章基本信息列表

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

imageID: String, 签章在云服务平台中的唯一标识
name String,签章名称,如法人章、财务章、人力章等。

5.11 获取企业签章图片

别名:

获取指定企业章。

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new EnterpriseSealImgCallBack(Context context, String msspID, String imageID)){

@Override

public void onGetEnterpriseSealImgResult (EnterpriseSealImg result)

{

//TODO

}

});

参数说明:

​ cntext :上下文环境

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

​ imageID:签章图片在云服务平台中的唯一标识。

返回值说明:

EnterpriseSealImg,结果对象,各定义如下,均通过get访问器获取属性:

​ errCode: String,错误码

​ errMsg: String,错误信息

​ enterpriseImage: String,图片编码

6.【扩展】

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

6.1 个人签章设置

别名:

手写签章、拍照签章

接口调用:

当业务应用需要进行网页签章或文档签署时,若需要修改云服务平台默认生成的个人签章图片,则可调用本接口,接口将引导用户通过手写或者拍照的方式设置个人签章图片。本接口仅支持个人用户调用。

接口定义:

SignetCoreApi.useCoreFunc(new SetSignImageCallBack(Context context, String msspID, SetSignImgType setSignImgType)){

@Override

public void onSetSignImageResult(SignImageResult setSignImageResult)

{

//TODO

}

});

参数说明:

context:上下文环境

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

setSignImgType:枚举,声明设置个人签章的途径,取值与定义如下:

​ SET_HANDWRITING 通过手写设置个人签章

​ PICTURE_HANDWRITING 通过拍照设置个人签章

返回值说明:

​ SignImageResult,签章设置结果对象,各属性定义如下,均通过get访问器获取属性值:

​ errCode: String,错误码

​ errMsg: String,错误信息

​ signImageSrc: String,所设置的签章图片的Base64编码

6.2 扫描二维码登录

别名:

扫码登录。

接口调用:

业务应用需要登录PC端时,由业务后台调用网关,向云平台推送一个随机数并获取任务ID后,将网关返回的包含该任务ID的json串以二维码形式展现在PC端,业务应用调用该接口,该接口将引导用户扫描二维码、输入pin口令完成对随机数的一次电子签名,业务应用获取接口返回的签名值后,可以调用网关接口进行签名的验证,验证通过则允许用户登录APP。

接口定义:

SignetCoreApi.useCoreFunc(new LoginCallBack(Context context, String msspID))

{

@Override

public void onLoginResult(LoginResult result) {

//TODO

}

});

参数说明:

context:上下文环境

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

返回值说明:

LoginResult,结果对象,各定义如下,均使用get访问器获取属性值:

​ cert: String,本次签名使用证书

signDataJobId: String,本次签名任务ID

​ signDataInfos List 签名结果列表,单条签名则List只有一条数据

SignDataInfos定义如下:

​ signDataJobID: String,本条记录的签名任务ID
data: String,待签数据
signParame: String, SM2签名参数
docuName: String, (若本条签署任务为文档签署)文档名称
docuUrl: String ,(若本条签署任务为文档签署)文档预览Url
signature: String,签名结果
businessId: String,业务应用添加的待签数据业务标识
serialNum: String,业务应用添加的待签数据流水号
​ errCode: String,错误码
errMsg: String,错误信息

6.3 扫描二维码签名

别名:

扫码签名。

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new SignDataCallBack(Context context, String msspID))

{

@Override

public void onSignDataResult(SignDataResult result) {

//TODO

}

});

参数说明:

context:上下文环境

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

返回值说明:

SignDataResult ,结果对象,各定义如下,均使用get访问器获取属性值:

​ cert: String,本次签名使用证书

signDataJobId: String,本次签名任务ID

​ signDataInfos List 签名结果列表,单条签名则List只有一条数据

SignDataInfos定义如下:

​ signDataJobID: String,本条记录的签名任务ID
data: String,待签数据
signParame: String, SM2签名参数
docuName: String, (若本条签署任务为文档签署)文档名称
docuUrl: String ,(若本条签署任务为文档签署)文档预览Url
signature: String,签名结果
businessId: String,业务应用添加的待签数据业务标识
serialNum: String,业务应用添加的待签数据流水号
​ errCode: String,错误码
errMsg: String,错误信息

6.4 身份证OCR

别名:

获取用户OCR信息。

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new ocrCallBack (Context context, OcrOperType operType)){

@Override

public void onOcrResult (Map<String,String> ocrResultMap) {

//TODO

}

});

参数说明:

​ context:上下文环境

​ operType:枚举,声明本次拍摄身份证操作类型,定义与声明如下:

GET_INFO:仅获取拍摄的身份证基本信息。本功能使用该枚举必须取值为GET_INFO

返回值说明:

该回调函数返回MAP,通过MAP的get方法获取属性值。返回的KEY与VALUE的定义如下:

​ ERR_CODE 错误码

​ ERR_MSG 错误信息

USER_MSSPID 用户唯一标识

USER_NAME 用户姓名

USER_MOBILE 用户手机号

USER_ID_CARD_NUMBER 用户身份证号码

USER_SEX 用户性别

USER_FOLK 用户民族

USER_BIRTHDAY 用户出生日期

USER_ADDRESS 用户身份证地址

USER_ID_CARD_ISSUE 用户身份证颁发机关

USER_ID_CARD_PERIOD 用户身份证有效期

USER_ID_CARD_HEAD_IMGBASE64 用户身份证头像Base64编码

USER_ID_CARD_INFOSIDE_IMGBASE64 用户所拍摄身份证信息侧图片Base64编码

USER_ID_CARD_FLAGSIDE_IMGBASE64 用户所拍摄身份证国徽侧图片Base64编码

6.5 活体检测

别名:

无。

接口调用:

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

接口定义:

SignetCoreApi.useCoreFunc(new LiveCheckCallBack (Context context,int actionNumbers)){

@Override

public void onLiveCheckResult (LiveCheckResult result)

{

//TODO

}

});

参数说明:

​ cntext :上下文环境

​ actionNumbers:活体检测需要用户完成的动作数量,建议不超过3个

返回值说明:

onLiveCheckResult,活体检测结果对象,各属性定义如下,通过get访问器获取属性值:

​ errCode: String,错误码

​ errMsg: String,错误信息

​ bestFace: String,最佳人脸图片Base64编码

6.6 设置隐私提示

别名:

无。

接口调用:

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

接口定义:

SignetCoreApi.setShowPrivacyMode(Context context,int mode)

参数说明:

​ context :上下文环境

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