通过文件发起合同
场景接入指引流程图
操作步骤
步骤1:获取印章信息
步骤2:上传合同原文件
API 链接
使用场景
想直接使用 PDF 文件直接发起合同。
使用方法
- FileInfos,FileUrls 参数二选一传递。
- FileBody 是图片转 base64 之后的编码内容。
!需要去除编码后的编码头。
执行结果
获取到 PDF 文件的资源编号 ID。
步骤3:通过 PDF 原文件创建并发起签署流程
API 链接
使用场景
- 想直接使用 PDF 文件直接发起合同。
- 已经完成 步骤1 获得了 PDF 文件的资源编号。
快速发起
- 自定义签署人信息
- 由签署人信息的个数和类型来决定了合同属于那种类型(单 B、单 C、B2C、B2B和多方签署)。
- 签署人数目=1,签署人类型:企业,则发起单 B 签署合同。
- 签署人数目=1,签署人类型:个人,则发起单 C 签署合同。
- 签署人数目=2,签署人类型:企业+个人,则发起 B2C 合同。
- 签署人数目=2,签署人类型:企业+企业,则发起 B2B 合同。
- 依次规则,则可指定多方签署合同。
- 签署人手机号+签署人姓名必须填写正确。
- 当指定为企业签署人,则企业名称必须填写工商注册的企业名称。
- 特性
- 指定企业签署人类型:企业静默签,则该企业会自动完成签署。
- 如何开通静默签功能,请参见 企业中心 扩展服务。
- 指定 PDF 文件的资源编号 ID,由 步骤2 获取到。
定制化签署流程
- 指定填写控件,满足企业客户需要在合同上填写自定义内容。
- 如何构造签署方信息,请参见 签署方信息说明。
- 指定过期时间,合同过期后合同则自动失效,合同即将过期,合同过期都会有通知提醒。
- 指定签署顺序,若指定有序签署,则最终签署顺序按照签署人传参顺序依次签署。
执行结果
获取到发起的签署流程 ID,电子签控制台可看到合同信息。
签署方分类
签署方分为以下类:
参与方类型 | 必传字段 | 说明 |
---|---|---|
个人 | Name、Mobile | 个人参与方,目前签署控件只支持: SIGN_SIGNATURE:手写签名 SIGN_DATE:签署日期 |
企业签署方 | Name、Mobile、OrganizationName | 企业参与方,其中: OrganizationName:为签署方在工商注册的企业名称 支持的签署控件: SIGN_SIGNATURE:手写签名 SIGN_SEAL:签署印章 SIGN_DATE:签署日期 |
企业静默签署方 | \ | 此签署方由系统自动完成签署。 |
签署方具体参数
签署方的参数有非常多,最简单可以发起合同的参数如上面所示。如果您需要更多功能,请参见 ApproverInfo。
指定签署控件
签署控件是绑定在签署人上的,通过 ApproverInfo 中的 SignComponents 字段指定:
- SignComponent 数据结构如下:
- Component
- 控件在 PDF 上的定位方式可以以下几种:
- 绝对定位方式。
- 表单域(FIELD)定位方式。
- 关键字(KEYWORD)定位方式。
Component 三种定位方式说明
绝对定位方式
{
"ComponentPosX": 160,
"ComponentPosY": 260,
"ComponentWidth": 100,
"ComponentHeight": 100,
"FileIndex": 0,
"ComponentType": "SIGN_SIGNATURE",
"ComponentPage": 1
}
直接指定控件在 PDF 中的 X、Y 绝对位置。关于如何计算 PDF 控件请参见章节-计算签署坐标。
表单域(FIELD)定位方式
{
"GenerateMode": "FIELD",
"ComponentName": "seal",
"FileIndex": 0,
"ComponentType": "SIGN_SEAL"
}
通过 Adobe 等 PDF 编辑工具创建表单域,随后指定表单域的对应名称,即可指定对应控件,控件的大小即为表单域的大小。 上图中的 seal 即对应了输入参数中的 seal 参数。
关键字(KEYWORD)定位方式
{
"GenerateMode": "KEYWORD",
"ComponentId": "Test",
"FileIndex": 0,
"ComponentType": "SIGN_SEAL",
"ComponentWidth": 100,
"ComponentHeight": 100,
"OffsetX": 100.5,
"OffsetY": 200.5
}
- 需要指定 GenerateMode 为 KEYWORD,开启关键字定位。
- 通过 ComponentType 指定控件类型。
- 通过 ComponentId 指定 PDF 文件中的关键字(例如:"甲方")来对签署控件进行定位。
- 需要通过设置 ComponentWidth 和 ComponentHeight 来指定控件的大小。
- 如未指定控件大小,即为关键字所对应控件的大小。
同时,可以指定 OffsetX、OffsetY 参数来调整控件的相对位置。
如上图中的 Test 即对应上面入参中的 Test 参数。
您可以结合您自己的使用场景来使用不同的定位方式。
计算签署坐标
在合同签署阶段,需确认三要素,方可对一份合同内的具体位置进行签署: ●签署文件 ●签署控件所在的文件页码 ●控件左上角的点的坐标 ComponentPosX 和 ComponentPosY。
本章节将着重讲解第三步,如何对PDF签署坐标进行计算。
坐标计算方式:
开发人员
推荐使用PDF开源SDK,解析签署坐标,推荐的PDF开源SDK包括: https://github.com/itext/itext7 https://github.com/apache/pdfbox https://github.com/LibrePDF/OpenPDF https://github.com/mozilla/pdf.js 提示:可以通过解析签署关键字,获取签署坐标。
非开发人员
推荐使用PDF编辑器,包括: adobe官方编辑器 https://acrobat.adobe.com/cn/zh-Hans/acrobat.html 国产福昕编辑器 https://www.foxitsoftware.cn/
Adobe编辑器:
首先:
然后:
查看属性,位置:
单位选择“点”,此时下方位置显示坐标值,注意此坐标值以页面左下角为原点,需要转换成以页面左上角为原点,转换方法:
ComponentPosX = 左对齐坐标140.7288
ComponentPosY = 页面高度 - 上对齐坐标616.8359
页面高度如何获取?可先将控件移至页面顶部,此时上对齐坐标值即为页面高度。