SignatureAPI(Deprecated) - infoplus/docs GitHub Wiki
- 最新:本API规范由
2020/07编写,2021/06废弃。未实现。参见新版SignatureAPI - 签章功能由InfoPlus引擎及其依赖的 Signature Service(签章服务)两方面配合完成
- InfoPlus 作为签章服务的客户端,提供 SignatureAPI,供 Signature Service 回调
- Signature Service 需实现与不同第三方签章提供商的对接
// TYPE: Signature
{
// 继承自 File 类型的属性
id: {uuid}, // FileAPI的文件Id
name: {string}, // 文件名
size: {int}, // 文件大小
uri: {uri}, // 文件访问地址
mime: {string}, // 文件类型,仅支持 "application/pdf"
createTime: {long}, // 文件创建时间
// 签章所需信息
seals: [ {
x: {int}, // 盖章位置横坐标
y: {int}, // 盖章位置纵坐标
placeHolder: {string}, // 盖章位置占位符
signer: {
account: {string}, // 签署人账号
name: {string}, // 签署人姓名
},
permission: {
sealTypes: [{string}], // 允许使用的签章类型列表
sealIds: [{string}], // 允许使用的签章Id列表
signers: [{string}], // 允许签名的用户账号列表
}
template: {uri}, // 签章Word模版链接
image: {uri}, // 印章图片
description: {string}, // 印章描述
algorithm: {string}, // 印章的签名算法
signature: {string}, // 印章的签名
privateKey: {string}, // 印章的公钥
} ]
}- Signature 控件承载签章类型的数据结构,并且有以下状态:
- 判定条件为:uri 为空,或某个 seals[i].signature 为空
- 此控件的界面将引导用户完成盖章过程
- 如有 seals 有多个,则每个印章具有独立的已签/未签状态;用户需逐个触发点击盖章
- 显示已盖的章的信息(seals[i].image & description)
- 用户可删除盖章、验证盖章有效性(验证签名)
[S1] GET "/signature/{id}" @returns Response<Signature>- 根据要签章的文件id,获取Signature数据结构
[S2] POST "/signature/{id}" @returns Response<Signature>- 签章完成之后,回填签章信息给引擎,引擎再将签章信息推送到表单
- 未签章状态下,签章控件会提示用户点击对表单进行盖章
- 用户点击盖章后,调用引擎接口,引擎通过ExportAPI根据表单数据和Word模版,生成PDF文件并存入FileAPI得到要盖章的文件信息存回控件
- 签章控件将用户导向到 SignatureService(签章服务,参考后续章节)的签名地址,并传递要盖章的文件id
- 签章服务调用API S1,获取要签章的信息后,将这些信息传递给真正的第三方签章工具进行盖章
- 签章服务在第三方签章服务盖章成功后,调用 API S2,回填盖章信息到InfoPlus引擎
- InfoPlus引擎将信息推送给签章控件,签章控件完成盖章过程,状态变为“已盖章”
其他说明:
- 流程开发这需设法通过代码或公式,填充Signature结构所需的permission和模版等信息
- 如果 Signature整个结构为空,则默认为只需要盖一个章,盖章的Word模版为该步骤导出的Word模版