合同预览使用说明
合同预览
- 在某些情况下,企业发起合同需要先预览下合同生成的效果,业务方进行校对,确认无误之后,再进行发起。
- 含有动态表格的预览文件需要通过文档合成完成后回调通知获得。
时序图如下:
预览类型
1.文件流预览
文件流预览指的是在生成预览文档的时候,会以文件流的方式返回,进行保存展示,注意文件流的链接有效期只有 5 分钟,业务方需要将文件下载下来,之后在业务内部进行展示。 链接类似如下:
https://file.test.ess.tencent.cn/bresource/resource/resource/0/0.PDF?hkey=8e3f7c22a526357a1f4afcb50ef3daf2e1152f012ea8829dc88e5ecfde560a7bd472ea36c0a39f589dfc655ecde12c37b8b7861b39b2f0c24cc78abf4618bc5892783273c90216b426bbe54e0d79523b2cd8d8cb4e96b10d3a6ef6ab379cdcebc23a91e321802cb38da9e7eb87fb314e 注意此链接有效期为 5 分钟,如果失效需要重新生成 第一步: 将得到的链接放到浏览器里面 第二步:
2.H5链接预览
H5链接预览指的是在生成预览文档的时候,会以H5链接的形式进行返回,用户只需要将这个链接嵌入到自己的页面即可。 链接类似如下:
注意这个链接只能使用一次, 下一次打开需要重新生成
使用文件发起
电子签为您提供了 通过文件发起签署流程 以及 通过模板发起签署流程 两种发起方式,如果您选择文件发起请阅读本节内容,如果您选择模板发起请阅读下一节内容。
请先阅读 通过文件发起签署流程 了解流程,并按照步骤 1 和 2 的指引获取到印章 ID 以及 PDF 文件编号 ID。此处将引导您完成一份具有发起控件的PDF预览合同。
完成上述步骤后,我们直接使用 用 PDF 文件创建签署流程(CreateFlowByFiles)接口发起合同,为方便描述我们将接口入参以 json 格式进行展示:
{
"Operator": {
"UserId": "yDwf3UUckps8dvveUEfH3DjvMmg3ZkjQ"
},
"FlowName": "文件发起预览示例",
"Components": [
{
"ComponentPosY": 260,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "TEXT",
"ComponentValue": "填上他",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
},
{
"ComponentPosY": 360,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "TEXT",
"ComponentValue": "填上他2",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
}
],
"Approvers": [
{
"ApproverType": 0,
"OrganizationName": "典子谦示例企业",
"Required": true,
"ApproverName": "典子谦",
"ApproverMobile": "13200000000",
"NotifyType": "NONE",
"RecipientId": "yDR4yUUgyg1q0y4tUuoJSJ78uOg0ZjBM",
"IsFullText": true,
"SignComponents": [
{
"ComponentPosY": 260,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "SIGN_SIGNATURE",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
},
{
"ComponentPosY": 360,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "SIGN_DATE",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
}
]
},
{
"ApproverType": 1,
"Required": true,
"ApproverName": "张三",
"ApproverMobile": "18888888888",
"NotifyType": "NONE",
"RecipientId": "yDR4yUUgyg1q0y4tUuoJSJ78uOg0ZjBM",
"SignComponents": [
{
"ComponentPosY": 260,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "SIGN_SIGNATURE",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
}
]
},
{
"ApproverType": 0,
"OrganizationName": "李四示例企业",
"Required": true,
"ApproverName": "李四",
"ApproverMobile": "15100000000",
"NotifyType": "NONE",
"RecipientId": "yDR4yUUgyg1q0y4tUuoJSJ78uOg0ZjBM",
"SignComponents": [
{
"ComponentPosY": 260,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "SIGN_SIGNATURE",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
}
]
}
],
"NeedPreview": true,
"FileIds": [
"yDCWiUUckpv6iggyUyuqIrwyppQVS7TR"
],
"Action": "CreateFlowByFiles"
}
参数填入规范见文档 用 PDF 文件创建签署流程,请参照文档阅读下面的内容,此处传值仅为参照,实际使用时请替换为真实数据!
- UserId 为发起方经办人的用户 ID,访问 腾讯电子签控制台 获取。
- FlowName 为合同名称。
- Approvers 指定签署方信息,此处样例场景为三方。
- ApproverType 填 0,即企业方签署,ApproverType 填 1,即为个人签署人。
- SignComponents 指定签署控件的位置和内容,此处样例场景为单个印章。
- ComponentType 填入 SIGN_SEAL,即印章类型,
- Components 为发起方填写控件的位置和内容,此处样例场景为两个单行文本填写控件
- ComponentType 填入 Text,即文本类型,
- ComponentPosX、ComponentPosY、ComponentHeight、ComponentWidth 为印章控件的坐标和大小,定位方式请参见 签署方信息说明。
- FileIndex 目前均为单文件发起,填 0 即可。
- ComponentPage 为控件所在页面编号,此处设置为 1。
- FileIds 目前均为单文件发起,此处填入前面上传文件获取的 PDF 文件编号 ID。
- NeedPreview 需要设置为 true,代表预览模式
- PreviewType 指的是会以文件流的方式返回链接
在使用 CreateFlowByFiles 接口发起合同后,会根据上传的 PDF 文件和填写控件内容生成一个已经合成的 PDF。
用户重新发起
用户根据返回的预览链接查看文档是否是预期的,如果是预期的合成效果,可以使用相同的参数再次发起, 此时将 NeedPreview 设置为 false 即可
{
"Operator": {
"UserId": "yDwf3UUckps8dvveUEfH3DjvMmg3ZkjQ"
},
"FlowName": "文件发起预览示例",
"Components": [
{
"ComponentPosY": 260,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "TEXT",
"ComponentValue": "填上他",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
},
{
"ComponentPosY": 360,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "TEXT",
"ComponentValue": "填上他2",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
}
],
"Approvers": [
{
"ApproverType": 0,
"OrganizationName": "典子谦示例企业",
"Required": true,
"ApproverName": "典子谦",
"ApproverMobile": "13200000000",
"NotifyType": "NONE",
"RecipientId": "yDR4yUUgyg1q0y4tUuoJSJ78uOg0ZjBM",
"IsFullText": true,
"SignComponents": [
{
"ComponentPosY": 260,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "SIGN_SIGNATURE",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
},
{
"ComponentPosY": 360,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "SIGN_DATE",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
}
]
},
{
"ApproverType": 1,
"Required": true,
"ApproverName": "张三",
"ApproverMobile": "18888888888",
"NotifyType": "NONE",
"RecipientId": "yDR4yUUgyg1q0y4tUuoJSJ78uOg0ZjBM",
"SignComponents": [
{
"ComponentPosY": 260,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "SIGN_SIGNATURE",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
}
]
},
{
"ApproverType": 0,
"OrganizationName": "李四示例企业",
"Required": true,
"ApproverName": "李四",
"ApproverMobile": "15100000000",
"NotifyType": "NONE",
"RecipientId": "yDR4yUUgyg1q0y4tUuoJSJ78uOg0ZjBM",
"SignComponents": [
{
"ComponentPosY": 260,
"ComponentWidth": 100,
"FileIndex": 0,
"ComponentType": "SIGN_SIGNATURE",
"ComponentPage": 1,
"ComponentPosX": 160,
"ComponentHeight": 100
}
]
}
],
"NeedPreview": false,
"FileIds": [
"yDCWiUUckpv6iggyUyuqIrwyppQVS7TR"
],
"Action": "CreateFlowByFiles"
}
使用模板发起
电子签为您提供了 通过文件发起签署流程 以及 通过模板发起签署流程 两种发起方式,如果您选择模板发起请阅读本节内容,如果您选择文件发起请阅读上一节内容。
请先阅读 通过模板发起签署流程 了解流程,按照引导熟悉模板、印章的创建和管理方式。此处将引导您完成一份具有发起控件预览合同,您可以根据自己的场景需求进行扩展。
控制台操作
- 访问 腾讯电子签控制台,在模板管理中选择创建模板,上传合同文件,进入下一步。
- 在"添加签署区"步骤,拖拽一个印章控件,完成后进入下一步。
- 添加填写控件
- 添加签署控件
- 在"设置签署流程"步骤,设置仅己方企业参与签署,单击确认。
- 设置填写控件为发起方控件
- 添加两个签署方
4. 保存模板完成编辑,并返回"模板管理"页面查询获取刚才创建好的模板 ID。
接口调用
在完成控制台操作后,我们使用编辑好的模板进行接口调用,请先阅读 通过模板发起签署流程 了解调用流程。
- 使用 创建签署流程(CreateFlow)接口创建流程,为方便描述我们将接口入参以 json 格式进行展示:
{
"Action": "CreateFlow",
"Operator": {
"UserId": "yDwf3UUckps8dvveUEfH3DjvMmg3ZkjQ"
},
"FlowName": "有发起方控件的测试预览合同",
"Approvers": [
{
"ApproverType": 0,
"OrganizationName": "典子谦示例企业",
"Required": true,
"ApproverName": "典子谦",
"ApproverMobile": "13200000000",
"RecipientId": "yDR4yUUgyg1q0y4tUuoJSJ78uOg0ZjBM"
},
{
"ApproverType": 0,
"OrganizationName": "李四示例企业",
"Required": true,
"ApproverName": "李四",
"ApproverMobile": "18888888888",
"NotifyType": "NONE",
"RecipientId": "yDR4yUUgyg1q0y4tUuoJSJ78uOg0ZjBM"
}
]
}
参数填入规范见文档 创建签署流程,请参照文档阅读下面的内容,此处传值仅为参照,实际使用时请替换为真实数据!
- UserId 为发起方经办人的用户 ID,访问 腾讯电子签控制台 获取。
- FlowName 为合同名称。
- Unordered 指定无序签署。若不指定或指定为false是有序签署,签署顺序同Approvers数组中各签署方的顺序。(注意:通过API集成腾讯电子签,签署顺序不依赖于模版【签署流程】中的配置)
- Approvers 指定签署方信息,此处样例场景为单方企业自动签署。
- ApproverType 填 0,即企业方签署,指定后签署人默认为经办人。
- 接口调用后返回一个 FlowId,请进行记录,在后续步骤会用到。
- 使用 创建电子文档(CreateDocument)接口创建电子文档,为方便描述我们将接口入参以 json 格式进行展示:
{
"Operator": {
"UserId": "yDwf3UUckps8dvveUEfH3DjvMmg3ZkjQ"
},
"FileNames": [
"合同空白模版.pdf"
],
"FlowId": "yDCVtUUckpwpk643UylTfrAyhDN8g1Fs",
"TemplateId": "yDCWoUUckpvwclk4Uy8lsS71pdCpVPcc",
"FormFields": [
{
"ComponentName": "甲方",
"ComponentValue": "甲方公司"
},
{
"ComponentName": "地址",
"ComponentValue":"休闲山庄"
},{
"ComponentName": "项目的名字",
"ComponentValue": "休闲山庄"
},{
"ComponentName": "联系方式",
"ComponentValue": "13200000000"
}
],
"NeedPreview":true,
"PreviewType":0
}
参数填入规范见文档 创建电子文档,请参照文档阅读下面的内容,此处传值仅为参照,实际使用时请替换为真实数据!
- UserId 为发起方经办人的用户 ID,访问 腾讯电子签控制台 获取,和上一步接口传入保持一致。
- FileNames 为文档名,目前影响使用,传入任意值即可。
- FlowId 指定合同编号,由上一步返回。
- TemplateId 指定模板 ID,由控制台操作步骤获取。
- NeedPreview 需要设置为 true,代表预览模式
- PreviewType 指的是会以文件流的方式返回链接
- 查看文档链接是否符合预期 用户根据返回的预览链接查看文档是否是预期的,如果是预期的合成效果,可以使用相同的参数再次发起, 此时将 NeedPreview 设置为 false 即可
{
"Operator": {
"UserId": "yDwf3UUckps8dvveUEfH3DjvMmg3ZkjQ"
},
"FileNames": [
"合同空白模版.pdf"
],
"FlowId": "yDCVtUUckpwpk643UylTfrAyhDN8g1Fs",
"TemplateId": "yDCWoUUckpvwclk4Uy8lsS71pdCpVPcc",
"FormFields": [
{
"ComponentName": "甲方",
"ComponentValue": "甲方公司"
},
{
"ComponentName": "地址",
"ComponentValue":"休闲山庄"
},{
"ComponentName": "项目的名字",
"ComponentValue": "休闲山庄"
},{
"ComponentName": "联系方式",
"ComponentValue": "13200000000"
}
],
"NeedPreview":false
}
- 使用 发起流程(StartFlow)接口发起流程,为方便描述我们将接口入参以 json 格式进行展示: 再确认成功之后,重新生成文档,此时可以再次
{
"Operator": {
"UserId": "yDwf3UUckps8dvveUEfH3DjvMmg3ZkjQ"
},
"FlowId": "yDCVtUUckpwpk643UylTfrAyhDN8g1Fs"
}
参数填入规范见文档 发起流程,请参照文档阅读下面的内容,此处传值仅为参照,实际使用时请替换为真实数据!
- UserId 为 发起方经办人的用户 ID,访问 腾讯电子签控制台 获取,和上一步接口传入保持一致。
- FlowId 指定合同编号,和上一步接口传入保持一致。
- 请注意如果此接口返回报错,可能是因为上一步异步合成文档需要等待,请在接口返回后等待一段时间(数秒)后重试,此接口可以反复调用。
完成上述步骤后,会根据创建的模板生成一份跟预览合同一样的合同。
文档合成回调
如果这个合同有填写控件或者动态表格, 文档预览链接合成成功之后会通过DocumentFill这个回调进行返回。