跳到主要内容

通过文件发起合同

场景接入指引流程图

操作步骤

步骤1:获取印章信息

  1. 登录 电子签控制台,印章管理模板,可以创建、管理印章,请参见 印章管理
  2. 单击具体印章,获取印章 ID。

步骤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:签署日期
企业静默签署方 \ 此签署方由系统自动完成签署。
  • 无需指定参与人信息,签署人信息默认为发起人(Operator)的信息
  • 必须为 SIGN_SEAL 类型的控件指定印章 ID(控件的 ComponentValue 字段)
  • 不能指定 SIGN_SIGNATURE 类型的签署控件,因为系统无法进行手写签名
  • 签署方具体参数

    签署方的参数有非常多,最简单可以发起合同的参数如上面所示。如果您需要更多功能,请参见 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

    页面高度如何获取?可先将控件移至页面顶部,此时上对齐坐标值即为页面高度。