产品说明
e签宝将于2020年7月1日将产品名称由“悟空SDK”变更为更容易理解的“电子签名服务SDK”。本次仅涉及产品名称变更,其接口及参数保持原有不变。
注:自2021年8月1日起,客户集成对接时需先联系e签宝进行申请,审批通过后才允许对接此产品。
产品介绍
电子签名服务SDK是e签宝提供的一种电子签名开放服务能力。
企业开发者在自己的业务系统中可以通过调用电子签名服务SDK所提供的接口实现在电子文件中签名。
产品特点
- 电子签名服务SDK纯接口调用,无e签宝页面嵌入,企业开发者可以根据自己的业务系统实际情况灵活进行交互设计;
- 电子签名服务SDK在整个签署过程中均不需要上传电子文件到e签宝服务端,仅上传本地电子文件哈希摘要值到服务端签名并保存签署记录;
- 电子签名服务SDK默认不做强制实名认证,允许企业开发者使用非e签宝的实名认证服务对签署人进行实名认证;
- 电子签名服务SDK默认不对签署后的电子文件进行存储,企业开发者直接拥有并保管所有电子文件;
- 电子签名服务SDK允许企业开发者单独对接e签宝实名认证服务、电子存证服务进行组合使用;
适用场景
- 企业开发者希望电子文件在签署过程中不脱离自身业务系统;
- 企业开发者希望能够无缝将e签宝电子签名服务接口集成到自身业务系统中,客户操作全部在自身业务系统界面中;
- 支持在通过移动端、H5、PC端、微信公众号/小程序中进行文件在线签署,详细集成步骤可点击此处了解;
名词解释
企业开发者:
集成e签宝各服务接口的企业开发团队。
平台方:
在e签宝官网注册企业账号并完成企业实名且直接开通/对接e签宝各服务接口的企业账户。
平台用户:
平台方自己的个人客户或企业客户。
平台自身签署和平台用户签署:
平台方自己需要签字盖章时称为平台自身签署。
平台方的企业客户或者个人客户需要签字盖章时称为平台用户签署。

举例:
A公司有一个借贷平台,A公司在e签宝开通服务接口并在借贷平台中集成了e签宝的服务接口,此时A公司就被e签宝称为平台方。
A公司的个人客户C和企业客户B,直接在A公司的借贷平台系统注册账号,而不需要在e签宝官网注册账号,此时个人客户C和企业客户B被e签宝称为平台用户。
A公司需要在文件中签字盖章的行为被e签宝称为平台自身签署,A公司的个人客户或企业客户需要在文件中签字盖章的行为被e签宝称为平台用户签署。
PDF摘要签署:
签署过程中不将文件直接上传到e签宝服务端,而是通过电子签名服务SDK在本地使用SHA256算法获取电子文件的唯一哈希摘要值,然后电子签名服务SDK将文件哈希摘要值上传e签宝服务端进行数字签名,该方式称为PDF摘要签署。其优点是可以保护文件内容的隐私,网络数据传输较小。电子签名服务SDK中PDF摘要签署过程介绍
PDF文件路径方式签署:
PDF文件路径签署就是直接将PDF文件的绝对路径传递给电子签名服务SDK,让SDK自己根据文件路径读取文件流进行签署和根据文件路径将签署后的PDF文件保存到磁盘中。
使用该方式的前提条件时PDF文件绝对路径要和电子签名服务SDK在同一台计算机中。
PDF文件流方式签署:
PDF文件流签署就是企业开发者先获取PDF文件的二进制字节流(Byte),然后将PDF文件的二进制字节流传递给电子签名服务SDK,签署成功后电子签名服务SDK返回已签署的二进制字节流,企业开发者自行将签署后文件流保存到磁盘中或发送至其他文件存储系统中。
接入方式
电子签名服务SDK提供techSDK(JAVA语言调用的JAR版)和techWrapper(非JAVA语言调用的HTTP版)两个版本。点击查看techSDK与techWrapper之间的区别
注:文件一旦签名盖章就不可以再进行任何填写或修改操作,否则在验证签署文件有效性时会显示文件被篡改,请在签章前完成所有内容填充。
业务流程

1.电子签名服务SDK初始化
电子签名服务SDK中的接口在调用之前需要先进行SDK初始化获取接口调用权限。
电子签名服务SDK-techSDK(JAVA语言调用的JAR版):
可查看techSDK接口列表中的[注册客户端]、[获取客户端]、[关闭客户端]接口。
电子签名服务SDK-techWrapper(非JAVA语言调用的HTTP版):
可查看techWrapper接口列表中的[项目初始化]接口。
附注:电子签名服务SDK初始化仅需要在企业开发者的业务系统中作为全局执行一次即可,无需多次进行SDK初始化。
2.签署人实名认证
签署人在进行电子签名申请CA数字证书前需要先验明其身份的真实性,所以建议企业开发者在调用电子签名服务SDK中的创建签署账号接口代为申请CA数字证书前完成实名认证。
企业开发者对签署人身份进行认证时可以单独调用e签宝的认证服务API,也可以采用其他第三方身份认证服务。
如果使用e签宝-认证服务API则需要企业开发者妥善保存身份认证后接口返回的结果,以便日后查询签署人身份认证详情。
如果使用其他第三方身份认证服务则需要企业开发者妥善保存身份认证的过程信息,以便日后举证时提供相关信息。
附注:电子签名服务SDK中的创建签署账号时不对传入的名称和证件号进行真实性校验,仅校验证件号的格式是否正确。
不做实名认证的个人或企业也可以通过电子签名服务SDK创建签署账户,但其真实性需要企业开发者来负责确保。
3.创建签署账号
企业开发者获取到签署人的真实身份信息(名称和证件号)后可以通过调用电子签名服务SDK中的创建签署账号接口为个人客户或企业客户代为申请CA数字证书,签署账号创建成功时返回AccountId(签署账号标识)。
电子签名服务SDK-techSDK(JAVA语言调用的JAR版):
可查看techSDK接口列表中[创建个人签署账户]、[创建企业签署账户]等接口。
电子签名服务SDK-techWrapper(非JAVA语言调用的HTTP版):
可查看techWrapper接口列表中的[创建个人签署账户]、[创建企业签署账户]等接口。
港澳台居民、非中国公民(外籍人士)如何创建签署账户请点击查看个人签署账户证件类型介绍
中国境内企业、港澳台企业、外国企业如何创建签署账户请点击查看企业签署账户证件类型介绍
附注:企业开发者可以将签署账号标识AccountId在本地进行保存,日后该签署人再次进行文件签署时就不需要重新创建签署账号,可以直接使用已获取的AccountId签署文件。
4.创建印章
企业开发者获取到签署人的签署账户标识AccountId后可以调用电子签名服务SDK中的创建模板印章接口为个人或企业客户生成印章图片,模板印章创建时返回印章数据SealData(印章图片的Base64)。
电子签名服务SDK-techSDK(JAVA语言调用的JAR版):
可查看techSDK接口列表中的[创建个人模板印章]、[创建企业模板印章]等接口。
电子签名服务SDK-techWrapper(非JAVA语言调用的HTTP版):
可查看techWrapper接口列表中的[创建个人模板印章]、[创建企业模板印章]等接口。
个人或企业印章创建时如何选择样式请点击查看个人和企业印章样式介绍
附注:企业开发者可以将印章数据SealData在本地进行保存,日后该签署人再次进行文件签署时就不需要重新创建印章图片,可以直接使用已获取的印章数据SealData签署文件。
5.生成待签署PDF文件
企业开发者在开始签署之前需要根据实际业务生成用于签署的PDF文件。
待签署PDF文件可以企业开发者采用其他方式实现,也可以调用电子签名服务SDK中的PDF模板填充接口实现根据已有PDF模板生成待签署PDF文件。
电子签名服务SDK-techSDK(JAVA语言调用的JAR版):
可查看techSDK接口列表中的[PDF模板填充]等接口。
电子签名服务SDK-techWrapper(非JAVA语言调用的HTTP版):
可查看techWrapper接口列表中的[PDF模板填充]等接口。
PDF模板文件如何制作请点击查看PDF模板文件制作说明
6.平台用户签署
平台的个人客户或企业客户可以采用短信验证码的方式进行签署意愿认证来证明文件由本人签署。
1.使用签署短信验证码方式流程为:
e签宝服务端发送验证码 -> 签署人接收验证码短信 -> 签署人回填验证码并签署文件
电子签名服务SDK-techSDK(JAVA语言调用的JAR版):
可查看techSDK接口列表中的[平台用户PDF意愿认证签署服务]等接口。
电子签名服务SDK-techWrapper(非JAVA语言调用的HTTP版):
可查看techWrapper接口列表中的[平台用户PDF意愿认证签署服务]等接口。
2.不使用签署短信验证码方式流程为:
如果不使用e签宝的签署短信服务,则由企业开发者来负责校验签署人的意愿动作并妥善留存意愿过程后直接调用电子签名服务SDK中的平台用户签署接口即可完成PDF文件签字盖章。
电子签名服务SDK-techSDK(JAVA语言调用的JAR版):
可查看techSDK接口列表中的[平台用户PDF无意愿认证签署服务]等接口。
电子签名服务SDK-techWrapper(非JAVA语言调用的HTTP版):
可查看techWrapper接口列表中的[平台用户PDF无意愿认证签署服务]等接口。
附注:每次成功调用签署接口后都会获取到一个不同的SignServiceId(签署记录ID),企业开发者请妥善保存该SignServiceId。点击查看签署记录ID与电子文件关联表示例
如后期单独使用e签宝的电子存证服务则需要将该SignServiceId连同签署后PDF文件一起传递给e签宝服务端。
平台用户和平台自身的签署顺序可根据实际业务自行调整,需要注意的是下一位签署人需要在上一位签署人已签署过的PDF文件上签署。点击查看PDF文件签署顺序说明
7.平台自身签署
平台方自己需要签字盖章时可以直接调用平台自身签署接口完成电子文件的签字盖章。
电子签名服务SDK-techSDK(JAVA语言调用的JAR版):
可查看techSDK接口列表中的[平台自身PDF无意愿认证签署服务]等接口。
电子签名服务SDK-techWrapper(非JAVA语言调用的HTTP版):
可查看techWrapper接口列表中的[平台自身PDF无意愿认证签署服务]等接口。
附注:每次成功调用签署接口后都会获取到一个不同的SignServiceId(签署记录ID),企业开发者请妥善保存该SignServiceId。点击查看签署记录ID与电子文件关联表示例
如后期单独使用e签宝的电子存证服务则需要将该SignServiceId连同签署后PDF文件一起传递给e签宝服务端。签署的顺序可以自定义,平台自身签署和平台用户签署的顺序根据实际业务需求调用。
平台用户和平台自身的签署顺序可根据实际业务自行调整,需要注意的是下一位签署人需要在上一位签署人已签署过的PDF文件上签署。点击查看PDF文件签署顺序说明
点击查看平台方的子公司或合作伙伴如何签署
8.签署后PDF文件保存和查看
电子签名服务SDK整个签署过程中不会将电子文件上传给e签宝服务端,所以签署后的电子文件是直接保存在企业开发者服务器磁盘中,企业开发者需要妥善保管签署后电子文件,以便日后为客户提供下载和预览。
由于部分浏览器(如火狐、IE等)不支持PDF文件的签名域显示(即无法看到印章图片),所以无法在PC端或移动端通过浏览器查看签署后的PDF文件。解决方法如下:
1.用户下载并安装Adobe Reader PDF阅读器软件或福昕PDF阅读软件来查看签署后PDF文件;
2.企业开发者将签署后的PDF文件转为图片,浏览器中加载图片即可看到印章;
3.企业开发者在业务系统中集成PDF.JS开源插件,通过PDF.JS插件实现浏览器中查看签署后PDF文件。
9.签署后的存证(可选)
电子签名服务SDK整个签署过程中不会将电子文件上传给e签宝服务端,所以签署后的电子文件是直接保存在企业开发者服务器磁盘中,如果想把签署的文件存在E签宝,还需要对接我们的数据存证API
存证的优势:
1.可以获取一份含有电子签名的PDF文件;
2.出现纠纷时可以出具签署人电子签名的服务证明和电子存证报告;
10.验签
必要性:
1、在文件签署后调用这个接口验签一下,如果验签失败可以说明签署文件异常需要重新签署;
2、客户移动签署后文件后调用这个接口验签一下,如果验签失败可以说明文件移动后出现破损;
3、文件签署后调用这个接口验签一下,可以供客户自己判断文件中指定的签署人和实际签署人的数字证书是否一致;
Tips:
注意:沙箱环境下签署的合同文件属于测试文件,无法作为正式环境使用,开发者沙箱环境测试结束后,需要转入正式环境验收,正式环境下签署的合同文件为有效文件。
需要对接集成的基本接口列表
电子签名服务SDK-techSDK(JAVA语言调用的JAR版)需要对接集成的基本接口列表
电子签名服务SDK-techWrapper(非JAVA语言调用的HTTP版)需要对接集成的基本接口列表
电子签名服务SDK涉及的域名列表
环境 | 服务名称 | 域名 | 公网IP | 端口 |
正式环境 | 接口权限管理服务 | openapi.tsign.cn | 101.37.189.192 | 8080,443 |
电子签名服务(新网关) | sdkapi.esign.cn | 116.62.8.203 | 80,443 | |
电子签名服务(旧网关) | openapi.tsign.cn | 101.37.189.192 | 8080,443 | |
ZJCA时间戳(新域名) | openapi.tsign.cn | 101.37.189.192 | 8080 | |
ZJCA时间戳(旧域名) | tsa.tsign.cn | 121.40.200.175 | 80 | |
CFCA时间戳 | cfcatsa.tsign.cn | 210.74.41.195 | 80 | |
模拟环境 | 接口权限管理服务 | smlitsm.tsign.cn | 114.55.17.44 | 8080,8083 |
电子签名服务(新网关) | smlsdkapi.esign.cn | 47.96.159.78 | 80,443 | |
电子签名服务(旧网关) | smltech.tsign.cn | 47.96.189.127 | 8080,443 | |
ZJCA时间戳 | tsa.tsign.cn | 121.40.200.175 | 80 | |
CFCA时间戳 | cfcatesttsa.tsign.cn | 210.74.42.17 | 80 |
注:电子签名SDK 2.1.5及以上版本时间戳在服务端调用,本地网络可以不用放行时间戳相关域名。