提供合同模板的创建、查询、修改、删除、控件设置及嵌入式管理页面的功能。
管理合同模板,包括上传模板文件、定义参与方和控件、管理模板状态和获取嵌入式操作链接。
重要提示: 调用本分类下所有接口时,请务必在 HTTP 请求 Header 中携带有效的 appId, accessToken, userId (操作人ID), 和 source (来源标识) 作为通用认证参数。关于 source 参数的详细说明和取值,请参考快速开始章节。文档中的请求示例将仅展示放入 Body 中的业务参数。
上传用于创建模板的合同源文件(通常是 PDF 或 Word 文档)。成功后返回文件的基本信息,用于后续创建或更新模板。
注意: 此接口使用 multipart/form-data 格式提交。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
| 参数名 | 位置 | 类型 | 必填 | 描述 |
|---|---|---|---|---|
| file | FormData | file | 是 | 要上传的合同文件(PDF, Word等) |
curl -X POST 'https://your-api-host.com/template/uploadContractFile' \ -H 'appId: YOUR_APP_ID' \ -H 'accessToken: YOUR_ACCESS_TOKEN' \ -H 'userId: OPERATOR_USER_ID' \ -F 'file=@/path/to/your/contract_template.pdf'
{
"code": "200",
"msg": "成功",
"data": { // 合同文件上传结果
"fileName": "contract_template.pdf",
"fileUrl": "group1/M00/00/02/...", // 实际存储路径
"totalPage": 5, // 文件总页数
"width": 595, // 文件页宽 (A4)
"height": 842 // 文件页高 (A4)
}
}
{
"code": "FILE_UPLOAD_ERROR", // 示例
"msg": "文件上传失败",
"data": null
}
| 参数名 | 类型 | 描述 |
|---|---|---|
| fileName | string | 上传的源文件名称 |
| fileUrl | string | 实际保存的文件名/路径 |
| totalPage | integer (int32) | 文件总页数 |
| width | integer (int32) | 文件页宽 (像素) |
| height | integer (int32) | 文件页高 (像素) |
上传模板的附件文件。附件文件不会被签署,仅作为合同的补充材料。
注意: 此接口使用 multipart/form-data 格式提交。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
| 参数名 | 位置 | 类型 | 必填 | 描述 |
|---|---|---|---|---|
| file | FormData | file | 是 | 要上传的附件文件 |
curl -X POST 'https://your-api-host.com/template/uploadAttachmentFile' \ -H 'appId: YOUR_APP_ID' \ -H 'accessToken: YOUR_ACCESS_TOKEN' \ -H 'userId: OPERATOR_USER_ID' \ -F 'file=@/path/to/your/attachment.zip'
{
"code": "200",
"msg": "成功",
"data": { // 附件文件上传结果
"fileName": "attachment.zip",
"fileUrl": "group1/M00/00/03/...", // 实际存储路径
"totalPage": 0 // 附件文件通常不计页数
}
}
{
"code": "FILE_UPLOAD_ERROR", // 示例
"msg": "附件上传失败",
"data": null
}
| 参数名 | 类型 | 描述 |
|---|---|---|
| fileName | string | 上传的源文件名称 |
| fileUrl | string | 实际保存的文件名/路径 |
| totalPage | integer (int32) | 文件总页数 (附件通常为0) |
创建一个新的合同模板,需要提供模板名称、参与方信息、合同文件信息(来自上传接口)以及可选的抄送方和附件信息。
注意: 参与方和合同文件的信息需要预先通过 上传合同文件 等接口获取。控件信息在此步骤不设置,需后续调用 保存新增模板控件设置。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| templateName | string | 是 | 模板名称 |
| encryptFlag | integer (int32) | 否 | 是否加密 (0:普通, 1:加密) |
| participantList | array | 是 | 参与方列表 (见下方结构) |
| contractFileList | array | 是 | 合同文件列表 (见下方结构) |
| copierList | array | 否 | 抄送方列表 (可选, 见下方结构) |
| attachmentList | array | 否 | 附件列表 (可选, 见下方结构) |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| participantFlag | string | 是 | 参与方标识 (如 "甲方", "乙方", 需唯一) |
| participantType | integer (int32) | 是 | 类型 (1:企业, 2:个人) |
| participateBizType | array of string | 是 | 参与方式 ("1":填写, "2":签署) |
| participantSetMode | integer (int32) | 是 | 取值方式 (0:模板指定, 1:固定成员, 3:发起人) |
| psnAccount | string | 是 | 经办人手机 (mode=1时) |
| psnName | string | 是 | 经办人名称 (mode=1时) |
| draftSort | integer (int32) | 是 | 填写顺序 (1-255, 唯一) |
| signOrder | integer (int32) | 是 | 签署顺序 (1-255, 可重复) |
| participantCorpName | string | 否 | 企业名称 (type=1时) |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| fileName | string | 是 | 文件名 (来自上传接口) |
| fileUrl | string | 是 | 文件路径 (来自上传接口) |
| totalPage | integer (int32) | 是 | 文件页数 (来自上传接口) |
| width | integer (int32) | 是 | 文件页宽 (来自上传接口) |
| height | integer (int32) | 是 | 文件页高 (来自上传接口) |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| copierType | integer(int32) | 是 | 类型(1:个人, 2:企业) |
| psnAccount | string | 否 | 抄送人手机(个人类型) |
| corpName | string | 否 | 抄送企业名称(企业类型) |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| fileName | string | 是 | 文件名 (来自上传接口) |
| fileUrl | string | 是 | 文件路径 (来自上传接口) |
curl -X POST 'https://your-api-host.com/template/addTemplate' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{
"templateName": "标准租赁合同模板",
"encryptFlag": 1,
"participantList": [
{
"participantFlag": "出租方(甲方)",
"participantType": 1,
"participateBizType": ["2"],
"participantSetMode": 3, // 发起人本人
"psnAccount": null,
"psnName": null,
"draftSort": 1,
"signOrder": 1,
"participantCorpName": "我的公司" // 假设发起方是企业
},
{
"participantFlag": "承租方(乙方)",
"participantType": 2,
"participateBizType": ["1", "2"], // 需要填写和签署
"participantSetMode": 0, // 模板指定 (发起时传入)
"psnAccount": null,
"psnName": null,
"draftSort": 2,
"signOrder": 2
}
],
"contractFileList": [
{
"fileName": "contract_template.pdf",
"fileUrl": "group1/M00/00/02/...",
"totalPage": 5,
"width": 595,
"height": 842
}
],
"attachmentList": [
{
"fileName": "attachment.zip",
"fileUrl": "group1/M00/00/03/..."
}
]
}'
{
"code": "200",
"msg": "成功",
"data": { // 模板实体类 (返回创建的模板信息)
"templateId": 1001,
"corpName": "示例有限公司",
"templateCode": "TPL20240125001",
"templateName": "标准租赁合同模板",
"templateStatus": 1, // 默认启用
// ... 其他模板信息
"contractFileList": [ // 包含文件信息
{ "fileId": 2001, "fileName": "contract_template.pdf", ... }
],
"participantList": [ // 包含参与方信息
{ "participantId": 3001, "participantFlag": "出租方(甲方)", ... },
{ "participantId": 3002, "participantFlag": "承租方(乙方)", ... }
],
"componentList": [], // 控件列表此时为空
"copierList": [],
"attachmentList": [ // 包含附件信息
{ "attachmentId": 4001, "fileName": "attachment.zip", ... }
]
}
}
{
"code": "TEMPLATE_NAME_EXIST", // 示例
"msg": "模板名称已存在",
"data": null
}
更新现有模板的基本信息,如模板名称、参与方、合同文件、抄送方和附件等。需要提供完整的模板信息进行覆盖更新。
注意: 此接口不用于更新控件信息,控件更新请使用 保存编辑模板控件设置。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
参数结构同 新增模板 接口,但必须包含要修改的 templateId,并且对应的 participantId, fileId, copierId, attachmentId 等也需要正确传入以标识更新。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| templateId | integer (int64) | 是 | 要更新的模板ID |
| templateName | string | 是 | 模板名称 |
| encryptFlag | integer (int32) | 否 | 是否加密 |
| participantList | array | 是 | 参与方列表 (需包含 participantId) |
| contractFileList | array | 是 | 合同文件列表 (需包含 fileId) |
| copierList | array | 否 | 抄送方列表 (需包含 copierId) |
| attachmentList | array | 否 | 附件列表 (需包含 attachmentId) |
curl -X POST 'https://your-api-host.com/template/modifyTemplate' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{
"templateId": 1001,
"templateName": "标准租赁合同模板 V2.0", // 修改名称
"encryptFlag": 1,
"participantList": [ // 需要传入完整的列表,包含 ID
{
"participantId": 3001,
"participantFlag": "出租方(甲方)",
"participantType": 1,
"participateBizType": ["2"],
"participantSetMode": 3,
"psnAccount": null,
"psnName": null,
"draftSort": 1,
"signOrder": 1,
"participantCorpName": "我的公司"
},
{
"participantId": 3002,
"participantFlag": "承租方(乙方)",
"participantType": 2,
"participateBizType": ["1", "2"],
"participantSetMode": 0,
"psnAccount": null,
"psnName": null,
"draftSort": 2,
"signOrder": 2
}
],
"contractFileList": [ // 需要传入完整的列表,包含 ID
{
"fileId": 2001,
"fileName": "contract_template.pdf",
"fileUrl": "group1/M00/00/02/...",
"totalPage": 5,
"width": 595,
"height": 842
}
],
"attachmentList": [] // 假设移除了附件
}'
{
"code": "200",
"msg": "成功",
"data": { // 返回更新后的模板实体类
"templateId": 1001,
"templateName": "标准租赁合同模板 V2.0",
// ... 其他更新后的信息
}
}
{
"code": "TEMPLATE_NOT_FOUND", // 示例
"msg": "模板不存在或无权限修改",
"data": null
}
为指定模板添加新的控件(如文本框、签章区等)。需要提供模板ID以及要添加的控件列表信息。
注意: 此接口用于批量添加新的控件,控件 ID (componentId) 不需要传递。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| templateId | integer (int64) | 是 | 要添加控件的模板ID |
| components | array | 是 | 要新增的控件列表 (见下方结构) |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| participantId | integer (int64) | 是 | 控件所属的参与方ID |
| contractFileId | integer (int64) | 是 | 控件所在的文件ID |
| componentKey | string | 否 | 控件 Key (建议唯一) |
| componentName | string | 是 | 控件名称 |
| componentType | integer (int32) | 是 | 控件类型 (1:单行文本, 2:数字, 3:日期, 6:签章区, 8:多行文本, ...) |
| value | string | 否 | 控件默认值 |
| required | integer (int32) | 是 | 是否必填 (1:必填, 0:非必填) |
| positionX | number | 是 | X 坐标 |
| positionY | number | 是 | Y 坐标 |
| pageNum | integer (int32) | 是 | 控件所在页码 |
| specialAttribute | object | 是 | 控件特有属性 (见下方结构) |
| 参数名 | 类型 | 描述 |
|---|---|---|
| dateFormat | string | 日期格式 (type=3) |
| numberFormat | string | 数字格式 (type=2) |
| fractionDigits | string | 小数位数 (type=2) |
| maxLength | string | 最大长度 (文本类) |
| font | string | 字体 (SimSun, ...) |
| fontSize | integer(int32) | 字体大小 |
| textColor | string | 字体颜色 (#RRGGBB) |
| bold, italic, underLine, lineThrough | boolean | 字体样式 |
| alignment | integer(int32) | 对齐方式 (0:左, 1:中, 3:右) |
| width, height | integer(int32) | 控件宽高 |
| order | integer(int32) | 顺序 (前端用) |
| sealSpecs | integer(int32) | 落章规则 (type=6, 1:实际, 2:适应) |
| showSignDate | integer(int32) | 显示签署日期 (type=6, 0:否, 1:是) |
| signStyle | integer(int32) | 签章区样式 (type=6, 1:单页, 2:骑缝) |
curl -X POST 'https://your-api-host.com/template/addComponent' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{
"templateId": 1001,
"components": [
{
"participantId": 3002, // 承租方
"contractFileId": 2001, // 合同文件ID
"componentName": "承租方姓名",
"componentType": 1, // 单行文本
"required": 1,
"positionX": 100.5,
"positionY": 200.0,
"pageNum": 1,
"specialAttribute": { "maxLength": "10", "font": "SimSun", "fontSize": 12 }
},
{
"participantId": 3001, // 出租方
"contractFileId": 2001,
"componentName": "出租方签章区",
"componentType": 6, // 签章区
"required": 1,
"positionX": 400.0,
"positionY": 700.0,
"pageNum": 5,
"specialAttribute": { "width": 150, "height": 60, "showSignDate": 1, "signStyle": 1 }
}
]
}'
{
"code": "200",
"msg": "成功",
"data": {} // 通常不返回特定数据
}
{
"code": "COMPONENT_ADD_FAILED", // 示例
"msg": "添加控件失败,请检查参数",
"data": null
}
更新指定模板的现有控件信息。需要提供模板ID以及包含 componentId 的控件列表。
注意: 此接口用于批量更新现有控件,需要传入正确的 componentId。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
参数结构同 保存新增模板控件设置,但 components 数组中的每个元素都需要包含正确的 componentId。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| templateId | integer (int64) | 是 | 要更新控件的模板ID |
| components | array | 是 | 要更新的控件列表 (见下方结构) |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| componentId | integer (int64) | 是 | 要编辑的控件ID |
| participantId | integer (int64) | 是 | 控件所属的参与方ID |
| contractFileId | integer (int64) | 是 | 控件所在的文件ID |
| componentKey | string | 否 | 控件 Key |
| componentName | string | 是 | 控件名称 |
| componentType | integer (int32) | 是 | 控件类型 |
| value | string | 否 | 控件默认值 |
| required | integer (int32) | 是 | 是否必填 |
| positionX | number | 是 | X 坐标 |
| positionY | number | 是 | Y 坐标 |
| pageNum | integer (int32) | 是 | 控件所在页码 |
| specialAttribute | object | 是 | 控件特有属性 |
curl -X POST 'https://your-api-host.com/template/modifyComponent' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{
"templateId": 1001,
"components": [
{
"componentId": 5001, // 假设这是 "承租方姓名" 控件的 ID
"participantId": 3002,
"contractFileId": 2001,
"componentName": "承租方姓名(必填)", // 修改名称
"componentType": 1,
"required": 1,
"positionX": 100.5,
"positionY": 200.0, // 假设位置不变
"pageNum": 1,
"specialAttribute": { "maxLength": "10", "font": "SimHei", "fontSize": 12 } // 修改字体
},
{
"componentId": 5002, // 假设这是 "出租方签章区" 控件的 ID
"participantId": 3001,
"contractFileId": 2001,
"componentName": "出租方盖章处", // 修改名称
"componentType": 6,
"required": 1,
"positionX": 400.0,
"positionY": 700.0,
"pageNum": 5,
"specialAttribute": { "width": 160, "height": 60, "showSignDate": 0, "signStyle": 1 } // 修改宽度和日期显示
}
// 如果有控件要删除,则不在此列表中包含
]
}'
{
"code": "200",
"msg": "成功",
"data": {}
}
{
"code": "COMPONENT_UPDATE_FAILED", // 示例
"msg": "更新控件失败,请检查控件ID是否存在",
"data": null
}
查询指定模板下的所有控件详细信息,包括控件的位置、类型、属性以及关联的参与方等。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| templateId | integer (int64) | 是 | 需要查询控件的模板ID |
curl -X POST 'https://your-api-host.com/template/componentInfoList' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{
"templateId": 1001
}'
{
"code": "200",
"msg": "成功",
"data": [ // 合同文件查询参数类列表 (每个文件及其控件)
{
"corpId": 12345,
"templateId": 1001,
"fileId": 2001,
"fileName": "contract_template.pdf",
"totalPage": 5,
"width": 595,
"height": 842,
"jpgUrlList": ["url1.jpg", "url2.jpg", ...], // 文件预览图
"participantList": [ // 模板定义的参与方信息
{ "participantId": 3001, "participantFlag": "出租方(甲方)", ... },
{ "participantId": 3002, "participantFlag": "承租方(乙方)", ... }
],
"componentList": [ // 该文件上的控件列表
{
"componentId": 5001,
"templateId": 1001,
"participantId": 3002,
"contractFileId": 2001,
"componentKey": null,
"componentName": "承租方姓名(必填)",
"componentType": 1,
"value": null, // 默认值
"required": 1,
"positionX": 100.5,
"positionY": 200.0,
"pageNum": 1,
"specialAttribute": { "maxLength": "10", "font": "SimHei", "fontSize": 12, ... }
},
{
"componentId": 5002,
"templateId": 1001,
"participantId": 3001,
"contractFileId": 2001,
"componentKey": null,
"componentName": "出租方盖章处",
"componentType": 6,
"value": null,
"required": 1,
"positionX": 400.0,
"positionY": 700.0,
"pageNum": 5,
"specialAttribute": { "width": 160, "height": 60, "showSignDate": 0, "signStyle": 1, ... }
}
// ... 其他控件
]
}
// 如果模板有多个文件,这里会有多个对象
]
}
{
"code": "TEMPLATE_NOT_FOUND", // 示例
"msg": "模板不存在",
"data": null
}
| 参数名 | 类型 | 描述 |
|---|---|---|
| corpId | integer (int64) | 企业ID |
| templateId | integer (int64) | 模板ID |
| fileId | integer (int64) | 文件ID |
| fileName | string | 文件名称 |
| totalPage | integer (int32) | 总页数 |
| width, height | integer (int32) | 页宽/高 |
| jpgUrlList | array of string | 文件预览图URL列表 |
| participantList | array | 参与方信息列表 (见下方参与方信息结构) |
| componentList | array | 控件列表 (见下方控件信息结构) |
| 参数名 | 类型 | 描述 |
|---|---|---|
| participantId | integer (int64) | 参与方ID |
| participantFlag | string | 参与方标识 |
| participantType | integer (int32) | 类型 (1:企业, 2:个人) |
| participateBizType | array of string | 参与方式 ("1":填写, "2":签署) |
| psnName, psnAccount | string | 经办人名称/手机 |
| participantCorpName | string | 企业名称 |
| 参数名 | 类型 | 描述 |
|---|---|---|
| componentId | integer (int64) | 控件ID |
| templateId, participantId, contractFileId | integer (int64) | 关联的模板/参与方/文件ID |
| componentKey, componentName | string | 控件Key/名称 |
| componentType | integer (int32) | 控件类型 (1, 2, 3, 6, ...) |
| value | string | 默认值 |
| required | integer (int32) | 是否必填 (0/1) |
| positionX, positionY | number | 坐标 |
| pageNum | integer (int32) | 页码 |
| specialAttribute | object | 控件特有属性 (结构见addComponent) |
根据条件查询企业下的模板列表,支持分页。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| templateId | integer (int64) | 否 | 模板ID (精确查询) |
| templateName | string | 否 | 模板名称 (模糊查询) |
| templateStatus | integer (int32) | 否 | 模板状态 (0:停用, 1:启用) |
| listPageNo | integer (int32) | 否 | 当前页码 (默认1) |
| listPageSize | integer (int32) | 否 | 每页数量 (默认10或20) |
curl -X POST 'https://your-api-host.com/template/list' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{
"templateStatus": 1,
"listPageNo": 1,
"listPageSize": 5
}'
{
"code": "200",
"msg": "成功",
"listPageNo": 1,
"countInPage": 1,
"listPageCount": 1,
"totalCount": 1,
"data": [ // 模板实体类列表
{
"templateId": 1001,
"templateCode": "TPL20240125001",
"templateName": "标准租赁合同模板 V2.0",
"templateStatus": 1,
"corpName": "示例有限公司",
"encryptFlag": 1,
"createTime": "2024-01-25T10:00:00.000+0800",
"updateTime": "2024-01-25T11:30:00.000+0800",
"createName": "张三",
"updateName": "李四"
}
// ... 其他模板
]
}
{
"code": "QUERY_ERROR", // 示例
"msg": "查询模板列表失败",
"data": null
}
| 参数名 | 类型 | 描述 |
|---|---|---|
| templateId | integer (int64) | 模板ID |
| templateCode | string | 模板编码 |
| templateName | string | 模板名称 |
| templateStatus | integer (int32) | 状态 (0:停用, 1:启用) |
| corpName | string | 企业名称 |
| encryptFlag | integer (int32) | 是否加密 (0/1) |
| createTime, updateTime | string (date-time) | 创建/更新时间 |
| createName, updateName | string | 创建/更新人 |
查询单个模板的详细信息,包括基本信息、参与方、文件、抄送方和附件等。可以通过 `templateType` 参数区分查询目的(编辑时/使用时)。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| templateId | integer (int64) | 是 | 需要查询详情的模板ID |
| templateType | string | 是 | 查询类型 ("1":编辑时, "2":使用时) |
curl -X POST 'https://your-api-host.com/template/info' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{
"templateId": 1001,
"templateType": "2"
}'
{
"code": "200",
"msg": "成功",
"data": { // 模板详细信息实体类
"templateId": 1001,
"corpName": "示例有限公司",
"templateCode": "TPL20240125001",
"templateName": "标准租赁合同模板 V2.0",
"templateStatus": 1,
"encryptFlag": 1,
"createTime": "2024-01-25T10:00:00.000+0800",
"updateTime": "2024-01-25T11:30:00.000+0800",
"createName": "张三",
"updateName": "李四",
"contractFileList": [ // 合同文件列表
{
"fileId": 2001,
"templateId": 1001,
"fileName": "contract_template.pdf",
"fileUrl": "group1/M00/00/02/...",
"totalPage": 5,
"width": 595,
"height": 842
}
],
"participantList": [ // 参与方列表
{
"participantId": 3001,
"templateId": 1001,
"participantFlag": "出租方(甲方)",
"participantType": 1,
"participateBizType": ["2"],
"participantSetMode": 3,
// ... 其他参与方信息
},
{
"participantId": 3002,
"templateId": 1001,
"participantFlag": "承租方(乙方)",
"participantType": 2,
"participateBizType": ["1", "2"],
"participantSetMode": 0,
// ... 其他参与方信息
}
],
"copierList": [], // 抄送方列表
"attachmentList": [] // 附件列表
}
}
{
"code": "TEMPLATE_NOT_FOUND", // 示例
"msg": "模板不存在",
"data": null
}
| 参数名 | 类型 | 描述 |
|---|---|---|
| templateId | integer (int64) | 模板ID |
| corpName | string | 企业名称 |
| templateCode | string | 模板编码 |
| templateName | string | 模板名称 |
| templateStatus | integer (int32) | 状态 (0:停用, 1:启用) |
| encryptFlag | integer (int32) | 是否加密 (0/1) |
| createTime, updateTime | string (date-time) | 创建/更新时间 |
| createName, updateName | string | 创建/更新人 |
| contractFileList | array | 合同文件列表 (结构见下方) |
| participantList | array | 参与方列表 (结构见下方) |
| copierList | array | 抄送方列表 (结构见下方) |
| attachmentList | array | 附件列表 (结构见下方) |
| 参数名 | 类型 | 描述 |
|---|---|---|
| fileId, templateId | integer (int64) | 文件/模板ID |
| fileName, fileUrl | string | 文件名/路径 |
| totalPage, width, height | integer (int32) | 页数/宽高 |
| 参数名 | 类型 | 描述 |
|---|---|---|
| participantId, templateId | integer (int64) | 参与方/模板ID |
| participantFlag | string | 参与方标识 |
| participantType | integer (int32) | 类型 (1:企业, 2:个人) |
| participateBizType | array of string | 参与方式 ("1","2") |
| participantSetMode | integer (int32) | 取值方式 (0,1,3) |
| participantCorpId, participantCorpName | integer(int64)/string | 企业ID/名称 |
| psnId, psnAccount, psnName | integer(int64)/string | 经办人ID/手机/名称 |
| 参数名 | 类型 | 描述 |
|---|---|---|
| copierId, templateId | integer (int64) | 抄送方/模板ID |
| copierType | integer (int32) | 类型 (1:个人, 2:企业) |
| psnAccount, corpName | string | 抄送个人账号/企业名称 |
| 参数名 | 类型 | 描述 |
|---|---|---|
| attachmentId, templateId | integer (int64) | 附件/模板ID |
| fileName, fileUrl | string | 文件名/路径 |
修改指定模板的状态(启用或停用)。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| templateId | integer (int64) | 是 | 需要修改状态的模板ID |
| templateStatus | integer (int32) | 是 | 目标状态 (0:停用, 1:启用) |
curl -X POST 'https://your-api-host.com/template/updateStatus' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{
"templateId": 1001,
"templateStatus": 0 // 停用模板
}'
{
"code": "200",
"msg": "成功",
"data": {}
}
{
"code": "TEMPLATE_NOT_FOUND", // 示例
"msg": "模板不存在",
"data": null
}
逻辑删除指定的模板。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| templateId | integer (int64) | 是 | 需要删除的模板ID |
curl -X POST 'https://your-api-host.com/template/del' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{
"templateId": 1001
}'
{
"code": "200",
"msg": "成功",
"data": {}
}
{
"code": "TEMPLATE_DELETE_FAILED", // 示例
"msg": "模板正在使用中,无法删除",
"data": null
}
获取一个用于嵌入或跳转的模板管理页面链接,用户可以在此页面进行模板的查看、筛选等操作。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
此接口请求 Body 为空。
curl -X POST 'https://your-api-host.com/template/getTemplateManageUrl' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{}'
{
"code": "200",
"msg": "成功",
"data": "https://your-system-url.com/embed/template/manage?session=temp_token" // 返回的管理页面URL
}
{
"code": "URL_GEN_FAILED", // 示例
"msg": "生成管理链接失败",
"data": null
}
获取指定模板的设置页面链接,用于嵌入或跳转,允许用户在此页面配置模板的控件、参与方等。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| templateId | integer (int64) | 是 | 需要获取设置链接的模板ID |
| templateType | integer (int32) | 否 | 模板类型 (可选) |
curl -X POST 'https://your-api-host.com/template/getTemplateSettingUrl' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{
"templateId": 1001
}'
{
"code": "200",
"msg": "成功",
"data": "https://your-system-url.com/embed/template/setting/1001?session=temp_token" // 返回的设置页面URL
}
{
"code": "TEMPLATE_NOT_FOUND", // 示例
"msg": "模板不存在",
"data": null
}
获取指定模板的编辑页面链接(区别于设置链接,可能侧重于模板基础信息编辑),用于嵌入或跳转。
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| appId | string | 是 | 您的应用ID |
| accessToken | string | 是 | 有效访问令牌 |
| userId | integer (int64) | 是 | 操作人用户ID |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| templateId | integer (int64) | 是 | 需要获取编辑链接的模板ID |
| templateType | integer (int32) | 否 | 模板类型 (可选) |
curl -X POST 'https://your-api-host.com/template/getTemplateEditeUrl' \
-H 'Content-Type: application/json' \
-H 'appId: YOUR_APP_ID' \
-H 'accessToken: YOUR_ACCESS_TOKEN' \
-H 'userId: OPERATOR_USER_ID' \
-d '{
"templateId": 1001
}'
{
"code": "200",
"msg": "成功",
"data": "https://your-system-url.com/embed/template/edit/1001?session=temp_token" // 返回的编辑页面URL
}
{
"code": "TEMPLATE_NOT_FOUND", // 示例
"msg": "模板不存在",
"data": null
}