Appearance
快速接入
本文将介绍如何用最短的时间完成配置签署位 SDK 的集成。
注意
以下文档内容中"{}"包含的变量信息均可从客户端凭证文件中获取,对接过程中需替换对应的值
环境要求
服务端
- 非私有化部署的情况业务方服务器需支持外网访问,了解原因
客户端
- 浏览器支持 Chrome49+
SDK 集成
步骤 1:租户开通
签署 SDK 使用需要用到亲笔签运营平台,需申请客户端凭证等相关信息,可由项目侧或者商务侧发起邮件申请,并给租户分配指定权限
步骤 2:获取 Token
通过步骤一得到的客户端凭证等相关信息可以调用能力平台的获取 Token 的接口来获取调用签署 SDK 所需的 token,详细 Token 获取接口调用流程见<服务端 API-获取 Token>接口 ↓
步骤 3:引入 SDK
经过步骤 1、2 准备工作已做好,现在可以在项目中使用配置签署位 SDK 了,我们提供了以下几种常见的 Web/H5 项目对接方式的 demo 代码,您可以选择合适的代码集成
html
<script src="{SDK访问地址}/sign-config-v2/help.js"></script>
<script>
const help = new SignConfigHelp({
options: {
files: [{
name: ''; //文件名称
currentFileId: '';//文件ID
position:[]
}],
signers: [{
id: '111'
Signatory:'签署主体', //签署主体
role:'签署方',//签署方
name: "签署人姓名" //签署人姓名
phone:'13800000000', //手机号
companyName:'企业名称', //企业名称
color: '#efefef'
}],
service: {
apiConfig: {
host: "{能力访问地址}/{渠道编码}-{应用编码}/aoscript-gateway",
headers: {
"X-AOS-Voucher": "{客户端凭证}"
}
},
token: ''
},
sealCodeTypes: [{
label: "印章名称",
code: "印章code"
}],
},
target: document.body,
url: '{SDK访问地址}/sign-config-v2/index.html',
})
help.on('onSubmitSuccess', function (data) {
console.log('onSubmitSuccess', data)
})
help.on('onCloseFrame', function () {
console.log('onCloseFrame')
})
help.on('onInitSuccess',()=>{
console.log('onInitSuccess')
})
help.on('onSave',(data)=>{
console.log('onSave', data)
})
help.on("onAutoSave",(data)=>{
console.log('onAutoSave',data)
})
</script>
步骤 4:唤起 SDK
实例化完成后会自动在target元素下创建配置签署SDK的UI界面
- 如下图所示
可在顶部区域选择需要配置的组件,右侧区域可以配置具体组件的属性
步骤 5:配置完成
按自行要求完成传入文件的签署位配置后,点击右上方立即发起按钮即可,监听onSave事件即可获取到已经配置好的签署位数据,可直接使用到签署SDK中
参数类型
SignConfigHelp
参数字段 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
target | HTMLElement | 否 | 配置签署位容器,默认 Body |
url | string | 是 | 配置签署位服务地址 |
options | IOptions | 是 | 签署位配置参数 |
IOptions
参数字段 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
files | IFiles | 是 | 配置签署位的文件列表 |
service | IService | 是 | 签署服务配置 |
signers | ISigner | 否 | 签署人列表 |
permission | IPermission | 否 | 权限 |
currentIndex | number | 否 | 当前选中文件 index |
sealCodeTypes | ISealCodeProps | 否 | 印章列表 |
IFiles 配置签署位的文件列表
参数字段 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
name | string | 是 | 文件名称 |
currentFileId | string | 否 | 文件 ID |
seal | Array<IPosition> | 否 | 印章 |
sign | Array<IPosition> | 否 | 签字 |
finger | Array<IPosition> | 否 | 指纹 |
signFinger | Array<IPosition> | 否 | 签字+指纹 |
pagingSeal | Array<IPosition> | 否 | 骑缝章 |
position | Array<IPosition> | 否 | 签署位集和 |
IPosition 基础组件类型
参数字段 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
id | number | 是 | 签署位唯一标识符 |
x | number | 是 | 签署位 X 坐标 |
y | number | 是 | 签署位 Y 坐标 |
width | number | 是 | 签署位宽度 |
height | number | 是 | 签署位高度 |
page | number | 是 | 签署位所在页数 |
required | boolean | 否 | 是否必签 |
signerId | boolean | 否 | 签署人 id |
name | string | 是 | 当前签署位名称 |
positionType | string | 是 | 组件类型 1 印章,2 签字,4 文本,5 指纹,6 日期,7 签字指纹,100 单行, 101 多行, 102 数字,103 身份证,104 日期可选日历,105 下拉,106 多选,107 勾选 108 单选框 109 骑缝章 |
ext | ExtOption | 否 | 额外参数 |
ExtOption 额外参数
参数字段 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
fontSize | number | 否 | 字体大小 |
weight | boolean | 否 | 是否加粗 |
color | number | 否 | 字体颜色 |
italic | boolean | 否 | 是否斜体 |
underline | boolean | 否 | 是否有下划线 |
align | string | 否 | 行内对齐 "CENTER" | "LEFT" | "RIGHT" |
lineAlign | string | 否 | 行对齐 "TOP" | "CENTER" | "BOTTOM" |
maxLength | number | 否 | 单行最大长度 |
maxLine | number | 否 | 最大行数 |
options | Array<IOption> | 否 | 下拉选项列表 |
option | IOption | 否 | 勾选内容 |
bottomTip | string | 否 | 提示文案 |
sealTypeCodes | string[] | 否 | 印章 code 集和 |
relateId | string | 否 | 集合 Id |
IOption 下拉内容
参数字段 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
key | string | 是 | 唯一标识符 |
label | string | 是 | 下拉内容 |
ISigner 签署人列表
参数字段 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
id | string | 否 | |
Signatory | string | 是 | 签署主体 |
companyName | string | 否 | 企业名称 |
role | number | 否 | 签署方 |
name | string | 是 | 签署人姓名 |
phone | string | 否 | 手机号 |
color | string | 否 | 签署人颜色 |
IService 基础服务配置
参数字段 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
apiConfig | IApiConfig | 否 | Api 配置 |
token | string | 否 | Token |
IApiConfig 基础服务配置
参数字段 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
env | string | 否 | 访问环境,可选'dev'|'develop'|'standard'|'open' |
host | string | 否 | 访问接口根地址 |
headers | object | 否 | 自定义请求头 |
IPermission 权限配置
参数字段 | 参数类型 | 是否必填 | 参数描述 | 默认值 |
---|---|---|---|---|
positions | IPositionsPermission | 否 | 显示签署人管理 | "{sign:true,seal:true,finger:true}" |
operate | IOperate | 否 | 显示返回 |
IPositionsPermission 组件权限
参数字段 | 参数类型 | 是否必填 | 参数描述 | 默认值 |
---|---|---|---|---|
sign | boolean | 否 | 签字位 | true |
seal | boolean | 否 | 印章 | true |
finger | boolean | 否 | 指纹 | true |
signFinger | boolean | 否 | 签字指纹 | 无 |
pagingSeal | boolean | 否 | 骑缝章 | 无 |
input | boolean | 否 | 单行文本 | 无 |
textarea | boolean | 否 | 多行文本 | 无 |
date | boolean | 否 | 日期 | 无 |
inputNumber | boolean | 否 | 数字 | 无 |
idcard | boolean | 否 | 身份证 | 无 |
radio | boolean | 否 | 单选框 | 无 |
checks | boolean | 否 | 复选框 | 无 |
select | boolean | 否 | 下拉选择 | 无 |
singleCheck | boolean | 否 | 勾选 | 无 |
IOperate 显示的操作按钮 默认全都显示
参数字段 | 参数类型 | 是否必填 | 参数描述 | 默认值 |
---|---|---|---|---|
name | boolean | 否 | 是否展示组件名称选项 | true |
page | boolean | 否 | 是否展示应用页 | true |
isRequired | boolean | 否 | 是否展示必填选项 | true |
autoTime | boolean | 否 | 是否展示自动签署日期 | true |
sealCodes | boolean | 否 | 是否选择印章类型 | true |
back | boolean | 否 | 是否显示返回 | true |
save | boolean | 否 | 是否显示保存 | true |
submit | boolean | 否 | 是否显示立即发起 | true |
format | boolean | 否 | 是否可选日期格式 | true |
实例
SignConfigHelp (Class)
示例代码
js
const help = new SignConfigHelp({
options: {
files: [{
name: "文件3"; //文件名称
currentFileId: "200754440742189063";//文件ID
}],
service: {
apiConfig: {
env: 'dev'|'develop'|'standard'|'open',
host: string
},
token: string
},
permission: {
positions: {
sign: true,
seal: true,
finger: true,
signFinger: true,
date: true,
input: true,
pagingSeal: true,
radio: true,
inputNumber: true,
idcard: true,
checks: true,
select: true,
singleCheck: true,
textarea: true,
},
},
},
target: document.getElementById('sign')|| document.body,
url: url+'/index.html',
})
实例 / 事件
onSubmitSuccess
js
// 配置完成按钮点击事件
help.on("onSubmitSuccess", data => {
console.log("onSubmitSuccess", data);
});
onCloseFrame
js
// 返回按钮点击事件
help.on("onCloseFrame", () => {
console.log(87, "onCloseFrame");
});
onAutoSave
js
//定时自动保存
help.on("onAutoSave", data => {
console.log("onAutoSave", data);
});
onInitSuccess
js
//初始化完成事件
help.on("onInitSuccess", () => {
//
});
实例 / 方法
getSignData
js
//获取完整数据接口
help.getSignData().then((res: IFiles[]) => {
console.log(res);
});