文档变更说明
原接口的中文名称由“通过模板创建文件”变更为“填充内容生成PDF”,其接口功能未做调整。
接口描述
通过动态传入数据的方式填充模板文件内容并生成PDF文件。
注意:
(1)文件名 fileName 参数值不可以含有以下特殊字符:
/ \ : * " < > | ?以及所有emoji表情
(2)内容填充前必须已完成模板文件内填写控件的设置。
接口地址
/v1/files/createByTemplate
请求方法
POST
请求头
提供两种安全接入方式,开发者可选择其中一种方式进行对接,对应参数如何获取,参考文档【请点击】。
方式一:请求签名鉴权(优先推荐)
请求头入参示例如下:
参数名称 | 类型 | 必选 | 参数说明 |
X-Tsign-Open-App-Id | string | 是 | 应用ID |
Content-Type | string | 是 | application/json;charset=UTF-8 |
X-Tsign-Open-Ca-Timestamp | string | 是 | API 调用者传递时间戳,值为当前时间的毫秒数,也就是从1970年1月1日起至今的时间转换为毫秒,时间戳有效时间为15分钟,为了防重放攻击 |
Accept | string | 是 | 建议统一填写 */* |
X-Tsign-Open-Ca-Signature | string | 是 | 签名字符串 |
Content-MD5 | string | 是 | 当请求 Body 非 Form 表单时,可以计算 Body 的 MD5 值传递给云网关进行 Body MD5 校验。建议当请求 Body 非 Form 表单时,加上此请求头。 |
X-Tsign-Open-Auth-Mode | string | 是 | 选择请求方式进行鉴权,固定值,Signature |
方式二:OAuth2.0鉴权(不推荐使用)
当安全接入选择OAuth2.0鉴权方式,请点击查阅详情,请求头入参示例如下:
参数名称 | 类型 | 必选 | 参数说明 |
X-Tsign-Open-App-Id | string | 是 | 应用ID |
X-Tsign-Open-Token | string | 是 | 通过获取鉴权Token接口返回 |
Content-Type | string | 是 | application/json; charset=UTF-8 |
请求参数
参数名称 | 类型 | 必选 | 参数类型 | 参数说明 | |
name | string | 是 | body | 文件名称(带文件扩展名) 注意:文件名称不支持以下9个字符:/ \ : * " < > | ?以及所有emoji表情 | |
templateId | string | 是 | body | 模板编号 (1)正式环境可通过e签宝网站->企业模板下创建和查询 (2)通过上传方式方式创建模板接口获取模板id和上传链接,文件流上传文件成功之后,模板id可用于这里 | |
simpleFormFields | object | 是 | body | 输入项填充内容,key:value 传入;可使用输入项组件id+填充内容,也可使用输入项组件key+填充内容方式填充 如何进行图片控件填充【请点击】 | |
strictCheck | boolbean | 否 | body | 开启simpleFormFields为空校验,默认false, 传 false:允许simpleFormFields为空,此时模板中所有待填写字段均为空值; 传 true: 当模板中存在必填字段时,不允许simpleFormFields为空,否则会报错 "创建合同失败: 'null'填充内容缺失"; 注:使用此参数可以实现拦截必填字段传null或不传值的情况。 |
公共响应参数
参数名称 | 类型 | 必选 | 参数说明 |
code | int | 是 | 业务码,0表示成功 |
message | string | 否 | 信息 |
data | object | 否 | 业务信息 |
响应参数
展开全部参数参数名称 | 类型 | 必选 | 参数说明 | |
code | int | 是 | 业务码,0表示成功 | |
message | string | 否 | 信息 | |
data | object | 否 | 业务信息 | |
fileId | string | 否 | 文件ID | |
fileName | string | 否 | 文件名称 | |
downloadUrl | string | 否 | PDF文件下载链接,有效期60分钟。 |
请求示例
POST https://openapi.esign.cn/v1/files/createByTemplate
{ "name":"模板文件ten", "simpleFormFields":{ "name":"测试甲方", "yifang":"测试乙方" }, "templateId":"bd4f8b3fc02047a9be661d164eceb288" }
响应示例
{ "code":0, "data":{ "downloadUrl":"https://esignoss.oss-cn-hangzhou.aliyuncs.com/1111563786/677c0013-5f2f-4306-a0d6-78ae96b6acd4/three_page.pdf?Expires=1561465463&OSSAccessKeyId=LTAIdvHfiVrzDKbE&Signature=SJPYKClVxXbvJUOjwnvhYUXS15A%3D", "fileId":"b1a149a2968a466984864cc222a02e9c", "fileName":"模板文件" }, "message":"成功" }
错误码
错误码 | 错误描述 | 解决方案 |
401 | 1.token过期了 2.header请求头不正确 3.apiurl和应用ID环境不对应,例如apiurl是模拟环境,应用ID是正式环境的 | |
1430601 | 创建合同失败: 'xxx'的内容超出区域 | 检查添加输入项组件/v1/docTemplates/{templateId}/components接口调用的时候,设置的输入项组件宽度和高度是不是太小了 |
1430601 | 创建合同失败: 填充内容缺失 | 问题原因: (1)E签宝官网获取的模板id,在通过模板创建文件的时候只支持输入项组件id+填充内容 (2)如果是接口(上传方式创建模板)获取的模板id,这个是模板中有一项或者几项没有填,可以用查询模板详情查出来,然后比照一下填充内容,看看缺了哪一个 解决办法: (1)E签宝官网获取的模板id,在通过模板创建文件的时候只支持输入项组件id+填充内容 (2)先调用接口/v1/docTemplates/{templateId}(查询模板详情)接口,或者通过Adobe Reader软件看下文档的输入项组件一共有几个,在调用通过模板创建文件接口的时候这些输入项组件必须都填充上 |