MiniContractPro
    • 简介
    • 开放平台接入文档
    • 移动端 - 签署任务
      • 验证短链接(返回签署模式)
        GET
      • 获取预览短链接
        GET
      • 执行签署(对外)
        POST
      • 获取已签署文件下载链接
        GET
      • 获取签署任务列表(分页)
        GET
      • 获取签署任务详情
        GET
      • 获取签署任务统计
        GET
      • 获取签署任务参与人列表
        GET
      • 撤销签署任务
        DELETE
      • 删除签署任务
        DELETE
      • 催签
        POST
      • 基于模板创建签署任务
        POST
      • 基于文件创建签署任务
        POST
      • 基于图片创建签署任务
        POST
      • 验证当前用户的签署权限
        GET
      • 获取参与人已填写的表单数据
        GET
      • 获取签署任务的表单字段定义
        GET
      • 提交表单数据(H5端)
        POST
      • 更新表单数据(H5端)
        POST
      • 生成签署链接
        POST
      • 更新表单数据(H5端)
        PUT
    • 移动端 - 签署方联系人
      • 获取签署方联系人列表(分页)
        GET
      • 删除签署方联系人
        DELETE
    • 移动端 - 印章授权管理
      • 创建印章授权
        POST
      • 删除印章授权
        DELETE
      • 获取印章的授权列表
        GET
      • 获取当前用户的授权列表
        GET
    • 移动端 - AI起草推荐话术
      • 获取推荐话术列表
      • 根据合同类型获取推荐话术
      • 增加话术使用次数
    • 移动端 - AI起草消息
      • 发送消息
      • 获取对话消息列表
    • 移动端 - AI起草合同
      • 生成合同
      • 更新合同内容
      • 获取合同详情
    • 移动端 - AI起草合同 - PDF和签署
      • 导出合同为PDF
      • 创建签署任务
    • 移动端 - AI起草对话
      • 创建对话
      • 获取对话分页列表
      • 获取对话详情
      • 获取对话详情(包含所有消息)
      • 删除对话
    • 移动端 - 合同AI审查
      • 发起AI审查
      • 查询审查任务状态
      • 获取审查报告
      • 获取审查任务的风险点列表
      • 获取单个风险点详情
      • 获取合同的审查历史
      • 获取当前用户的所有审查历史
      • 重试失败的审查任务
    • 移动端 - 合同模板管理
      • 获取合同模板列表(分页)
      • 获取合同模板详情
      • 获取模板分类列表
      • 获取常用模板
      • 获取热门模板
      • 搜索模板
      • 记录模板使用
    • 移动端 - 印章管理
      • 生成 Seal-Token(支持续期)
      • 获取个人印章列表
      • 创建印章(个人/企业)
      • 获取印章详情
      • 更新印章
      • 删除印章
      • 设置默认印章(开放接口)
      • 获取个人印章列表(分页,开放接口)
      • 检查企业印章唯一性
      • 上传文件(印章图片)
    • 移动端 - 签署配置
      • 获取签署安全配置
      • 获取平台访问地址
    • 移动端 - 短链接
      • 获取小程序信息
    • 移动端 - 配额查询
      • 获取当前用户配额余额
    • 移动端 - 合同验证
      • 验证合同签署
      • 获取验证结果详情
      • 获取剩余验证次数
    • 移动端 - Seal 认证
      • 兑换 Seal-Token(移动端)
      • 刷新 Seal-Token(移动端)
      • 验证 Seal-Token(移动端)
    • 移动端 - 意愿验证
      • 发送验证码
      • 验证身份
      • 获取验证状态
    • PC端门户 - 文件存储
      • 上传文件
      • 获取文件预签名地址(上传)
      • 创建文件
    • PC端门户 - 合同验证
      • 验证合同签署
      • 获取验证结果详情
      • 获取剩余验证次数
    • PC端门户 - 签署任务
      • 创建签署任务(基于模板)
      • 基于文件创建签署任务
      • 基于图片创建签署任务
      • 用户签署任务
      • 拒绝签署任务
      • 撤销签署任务
      • 删除签署任务
      • 批量签署任务
      • 批量获取签署任务状态
      • 获得签署任务详情
      • 获取签署任务参与人列表
      • 获取签署任务的印章放置信息
      • 获得签署任务分页(带权限过滤)
      • 获取签署任务统计信息
      • 获取待我处理的签署任务分页
      • 获取我发起的签署任务分页
      • 获取我已处理的签署任务分页
      • 提交表单数据
      • 修改表单数据
      • 获取字段默认值
      • 验证签署权限
      • 上传签署后的PDF文件
      • 同步纯前端签署状态
      • 保存签署草稿
      • 获取签署草稿
      • 删除签署草稿
      • 获取任务版本历史
      • 比较PDF版本差异
      • 验证PDF文件完整性
      • 生成签署链接
      • 获取印章图片
      • 获取任务参与人的表单字段定义
      • 获取参与人已填写的表单数据
      • 下载合同文件
    • PC端门户 - 意愿验证
      • 发送验证码
      • 验证身份
      • 获取验证状态
    • PC端门户 - 扫码签名
      • 创建签名Token
      • 检查签名状态
      • 上传签名图片
      • 保存签名
    • PC端门户 - 印章管理
      • 创建印章(个人/企业)
      • 更新印章
      • 更新印章状态
      • 删除印章
      • 获得印章详情
      • 获得印章分页
      • 获取当前用户可用的印章列表
      • 设置默认印章
      • 取消默认印章
      • 作废印章
      • 模板生成印章
      • 获取指定类型的默认印章
      • 检查企业印章唯一性
    • PC端门户 - 批量任务
      • 创建批量发起任务
      • 创建批量签署任务
      • 获得批量任务详情
      • 获得批量任务分页(带权限过滤)
      • 批量获取任务状态
      • 获取批量任务子项列表
      • 下载批量发起导入模板
      • 上传文件并解析预览
      • 创建批量发起任务(结构化数据)
      • 重试失败子项
    • PC端门户 - 签署方联系人
      • 获取签署方联系人列表(分页)
      • 删除签署方联系人
    • PC端门户 - 印章授权
      • 创建印章授权
      • 更新印章授权
      • 删除印章授权
      • 获得印章授权分页
      • 获取可授权的企业成员列表
    • PC端门户 - Seal 认证
      • 兑换 Seal-Token(PC端)
      • 刷新 Seal-Token
      • 验证 Seal-Token
    • PC端门户 - 模板分类
      • 创建模板分类
      • 更新模板分类
      • 删除模板分类
      • 获得模板分类
      • 获得模板分类分页
      • 获得所有启用的模板分类列表
    • PC端门户 - 合同模板
      • 创建合同模板
      • 更新合同模板
      • 删除合同模板
      • 获得合同模板
      • 获得合同模板分页(带权限过滤)
      • 获得合同模板列表(启用状态)
      • 批量保存合同模板表单字段(并创建新版本)
      • 批量保存模板签署方
      • 更新模板二维码启用状态
      • 更新模板状态
      • 获取模板的所有历史版本
      • 获取模板的最新版本
      • 恢复到指定版本
      • 保存签署方验证配置
      • 获取签署方验证配置
    • PC端门户 - 分享
      • 获取分享摘要信息(公开接口)
    • PC端门户 - 配额查询
      • 获取当前用户配额余额
    • 管理后台 - 菜单
      • 创建菜单
      • 修改菜单
      • 删除菜单
      • 批量删除菜单
      • 获取菜单列表
      • 获取菜单精简信息列表
      • 获取菜单精简信息列表
      • 获取菜单信息
    • 管理后台 - 角色
      • 创建角色
      • 删除角色
      • 修改角色
      • 批量删除角色
      • 获得角色信息
      • 获得角色分页
      • 获取角色精简信息列表
      • 获取角色精简信息列表
      • 导出角色 Excel
    • 管理后台 - 权限
      • 获得角色拥有的菜单编号
      • 赋予角色菜单
      • 赋予角色数据权限
      • 获得管理员拥有的角色编号列表
      • 赋予用户角色
    • 管理后台 - 验证码
      • 获得验证码
      • 校验验证码
    • 管理后台 - 租户
      • 使用租户名,获得租户编号
      • 获取租户精简信息列表
      • 使用域名,获得租户信息
      • 创建租户
      • 更新租户
      • 删除租户
      • 批量删除租户
      • 获得租户
      • 获得租户分页
      • 导出租户 Excel
    • 管理后台 - 租户套餐
      • 创建租户套餐
      • 更新租户套餐
      • 删除租户套餐
      • 批量删除租户套餐
      • 获得租户套餐
      • 获得租户套餐分页
      • 获取租户套餐精简信息列表
      • 获取租户套餐精简信息列表
    • 管理后台 - 社交用户
      • 社交绑定,使用 code 授权码
      • 取消社交绑定
      • 获得绑定社交用户列表
      • 获得社交用户
      • 获得社交用户分页
    • 管理后台 - 社交客户端
      • 创建社交客户端
      • 更新社交客户端
      • 删除社交客户端
      • 批量删除社交客户端
      • 获得社交客户端
      • 获得社交客户端分页
      • 发送订阅消息
    • 管理后台 - OAuth2.0 授权
      • 获得访问令牌
      • 删除访问令牌
      • 校验访问令牌
      • 获得授权信息
      • 申请授权
    • 管理后台 - OAuth2.0 用户
      • 获得用户基本信息
      • 更新用户基本信息
    • 管理后台 - OAuth2.0 令牌
      • 获得访问令牌分页
      • 删除访问令牌
      • 批量删除访问令牌
    • 管理后台 - OAuth2 客户端
      • 创建 OAuth2 客户端
      • 更新 OAuth2 客户端
      • 删除 OAuth2 客户端
      • 批量删除 OAuth2 客户端
      • 获得 OAuth2 客户端
      • 获得 OAuth2 客户端分页
    • 管理后台 - 我的站内信
      • 获得站内信
      • 获得站内信分页
      • 获得我的站内信分页
      • 标记站内信为已读
      • 标记所有站内信为已读
      • 获取当前用户的最新站内信列表,默认 10 条
      • 获得当前用户的未读站内信数量
    • 管理后台 - 站内信模版
      • 创建站内信模版
      • 更新站内信模版
      • 删除站内信模版
      • 批量删除站内信模版
      • 获得站内信模版
      • 获得站内信模版分页
      • 获得站内信模版精简列表
      • 获得站内信模版精简列表
      • 发送站内信
    • 管理后台 - 通知公告
      • 创建通知公告
      • 修改通知公告
      • 删除通知公告
      • 批量删除通知公告
      • 获取通知公告列表
      • 获得通知公告
      • 推送通知公告
    • 管理后台 - 登录日志
      • 获得登录日志
      • 获得登录日志分页列表
      • 导出登录日志 Excel
    • 管理后台 - 操作日志
      • 查看操作日志
      • 查看操作日志分页列表
      • 导出操作日志
    • 管理后台 - 用户
      • 新增用户
      • 修改用户
      • 删除用户
      • 批量删除用户
      • 重置用户密码
      • 修改用户状态
      • 获得用户分页列表
      • 获得用户详情列表
      • 获取用户精简信息列表
      • 获取用户精简信息列表
      • 获得用户详情
      • 导出用户
      • 获得导入用户模板
      • 导入用户
      • 获得用户精简信息
      • 按昵称模糊搜索用户精简信息
    • 管理后台 - 用户个人中心
      • 获得登录用户信息
      • 修改用户个人信息
      • 修改用户个人密码
    • 管理后台 - 邮件日志
      • 获得邮箱日志分页
      • 获得邮箱日志
    • 管理后台 - 邮箱账号
      • 创建邮箱账号
      • 修改邮箱账号
      • 删除邮箱账号
      • 批量删除邮箱账号
      • 获得邮箱账号
      • 获得邮箱账号分页
      • 获得邮箱账号精简列表
      • 获得邮箱账号精简列表
    • 管理后台 - 邮件模版
      • 创建邮件模版
      • 修改邮件模版
      • 删除邮件模版
      • 批量删除邮件模版
      • 获得邮件模版
      • 获得邮件模版分页
      • 获得邮件模版精简列表
      • 获得邮件模版精简列表
      • 发送短信
    • 管理后台 - 字典数据
      • 新增字典数据
      • 修改字典数据
      • 删除字典数据
      • 批量删除字典数据
      • 获得全部字典数据列表
      • 获得全部字典数据列表
      • 获得字典类型的分页
      • /查询字典数据详细
      • 导出字典数据
    • 管理后台 - 字典类型
      • 创建字典类型
      • 修改字典类型
      • 删除字典类型
      • 批量删除字典类型
      • 获得字典类型的分页列表
      • /查询字典类型详细
      • 获得全部字典类型列表
      • 获得全部字典类型列表
      • 导出数据类型
    • 管理后台 - 部门
      • 创建部门
      • 更新部门
      • 删除部门
      • 批量删除部门
      • 获取部门列表
      • 获取部门精简信息列表
      • 获取部门精简信息列表
      • 获得部门信息
    • 管理后台 - 岗位
      • 创建岗位
      • 修改岗位
      • 删除岗位
      • 批量删除岗位
      • 获得岗位信息
      • 获取岗位全列表
      • 获取岗位全列表
      • 获得岗位分页列表
      • 岗位管理
    • 管理后台 - 认证
      • 使用账号密码登录
      • 登出系统
      • 刷新令牌
      • 获取登录用户的权限信息
      • 注册用户
      • 使用短信验证码登录
      • 发送手机验证码
      • 重置密码
      • 社交授权的跳转
      • 社交快捷登录,使用 code 授权码
    • 管理后台 - 短信日志
      • 获得短信日志分页
      • 获得短信日志
      • 导出短信日志 Excel
    • 管理后台 - 短信渠道
      • 创建短信渠道
      • 更新短信渠道
      • 删除短信渠道
      • 批量删除短信渠道
      • 获得短信渠道
      • 获得短信渠道分页
      • 获得短信渠道精简列表
      • 获得短信渠道精简列表
    • 管理后台 - 短信回调
      • 阿里云短信的回调
      • 腾讯云短信的回调
      • 华为云短信的回调
      • 七牛云短信的回调
    • 管理后台 - 短信模板
      • 创建短信模板
      • 更新短信模板
      • 删除短信模板
      • 批量删除短信模板
      • 获得短信模板
      • 获得短信模板分页
      • 获得短信模板精简列表
      • 获得短信模板精简列表
      • 导出短信模板 Excel
      • 发送短信
    • 管理后台 - 地区
      • 获得地区树
      • 获得 IP 对应的地区名
    • 用户 App - 租户
      • 使用域名,获得租户信息
    • 用户 App - 字典数据
      • 根据字典类型查询字典数据信息
    • 用户 App - 地区
      • 获得地区树
    • PC端门户 - 企业管理
      • 创建企业认证
      • 获得企业信息
      • 获得企业分页
      • 切换当前企业
      • 切换到个人身份
      • 获得企业精简列表
      • 获得企业成员分页
      • 添加企业成员
      • 删除企业成员
    • PC端门户 - 企业成员
      • 创建企业成员
      • 更新企业成员
      • 删除企业成员
      • 获得企业成员分页
      • 获得企业成员(自己)
    • PC端门户 - 个人实名认证
      • 提交个人实名认证
      • 身份证OCR识别
      • 获取当前用户的认证信息
    • PC端门户 - 企业实名认证
      • 提交企业认证
    • PC端门户 - 配额管理
      • 获取当前用户配额余额
      • 获取配额变动记录分页
      • 获取上架的套餐列表
      • 创建配额订单
      • 取消配额订单
      • 获取订单详情
      • 获取我的订单列表
      • 更新配额订单为已支付
      • 同步订单支付状态
    • PC端门户 - 用户个人中心
      • 获得用户信息
      • 修改用户信息
      • 修改用户手机
      • 基于微信小程序的授权码,修改用户手机
      • 修改用户密码
      • 重置密码
    • PC端门户 - 认证
      • 使用手机 + 密码登录
      • 登出系统
      • 刷新令牌
      • 使用手机 + 验证码登录
      • 发送手机验证码
      • 校验手机验证码
      • 社交授权的跳转
      • 社交快捷登录,使用 code 授权码
      • 微信小程序的一键登录
      • 创建微信 JS SDK 初始化所需的签名
    • 管理后台 - 企业认证
      • 获得企业认证分页
      • 获得企业认证详情
      • 更新企业认证状态
    • 管理后台 - 用户收件地址
      • 获得用户收件地址列表
    • 管理后台 - 实名认证
      • 获得实名认证分页
      • 审核实名认证
      • 获得实名认证
    • 管理后台 - 企业认证记录
      • 获得企业认证记录分页
      • 获得企业认证记录详情
      • 获得企业认证记录详情(包含企业和用户信息)
      • 获得企业认证记录列表
    • 管理后台 - 签到规则
      • 创建签到规则
      • 更新签到规则
      • 删除签到规则
      • 获得签到规则
      • 获得签到规则列表
    • 管理后台 - 签到记录
      • 获得签到记录分页
      • 获得用户积分记录分页
    • 管理后台 - 会员设置
      • 保存会员配置
      • 获得会员配置
    • 管理后台 - 配额订单管理
      • 获取配额订单分页
      • 获取配额订单详情
    • 管理后台 - 配额账户管理
      • 获取配额账户分页
      • 获取配额账户详情
      • 调整配额
      • 获取配额变动记录列表
      • 获取配额统计数据
    • 管理后台 - 配额套餐管理
      • 创建配额套餐
      • 更新配额套餐
      • 更新套餐状态(上架/下架)
      • 删除配额套餐
      • 获取配额套餐详情
      • 获取配额套餐分页
      • 获取上架的套餐列表
    • 管理后台 - 会员等级
      • 创建会员等级
      • 更新会员等级
      • 删除会员等级
      • 获得会员等级
      • 获取会员等级精简信息列表
      • 获得会员等级列表
    • 管理后台 - 会员等级记录
      • 获得会员等级记录
      • 获得会员等级记录分页
    • 管理后台 - 会员经验记录
      • 获得会员经验记录
      • 获得会员经验记录分页
    • 管理后台 - 用户分组
      • 创建用户分组
      • 更新用户分组
      • 删除用户分组
      • 获得用户分组
      • 获取会员分组精简信息列表
      • 获得用户分组分页
    • 管理后台 - 会员用户
      • 更新会员用户
      • 更新会员用户等级
      • 更新会员用户积分
      • 获得会员用户
      • 获得会员用户分页
    • 管理后台 - 会员标签
      • 创建会员标签
      • 更新会员标签
      • 删除会员标签
      • 获得会员标签
      • 获取会员标签精简信息列表
      • 获得会员标签列表
      • 获得会员标签分页
    • 用户 App - 企业管理
      • 创建企业认证
      • 获得企业信息
      • 获得企业分页
      • 获得企业精简列表
      • 切换当前企业
      • 切换到个人身份
    • 用户 App - 企业成员
      • 创建企业成员
      • 更新企业成员
      • 删除企业成员
      • 获得企业成员分页
      • 获得企业成员(自己)
    • 用户 APP - 企业加入申请
      • 提交加入企业申请
      • 同意加入申请
      • 拒绝加入申请
      • 获得企业加入申请分页
      • 获得我的企业加入申请分页
      • 按名称搜索企业分页
    • 用户 APP - 用户收件地址
      • 创建用户收件地址
      • 更新用户收件地址
      • 删除用户收件地址
      • 获得用户收件地址
      • 获得默认的用户收件地址
      • 获得用户收件地址列表
    • 用户APP - 实名认证
      • 提交实名认证
      • 身份证OCR识别
      • 获取当前用户的认证信息
    • 用户APP - 企业认证
      • 提交企业认证
    • 用户 App - 社交用户
      • 社交绑定,使用 code 授权码
      • 取消社交绑定
      • 获得社交用户
      • 获得微信小程序码(base64 image)
      • 获得微信小程订阅模板列表
    • 用户 App - 签到规则
      • 获得签到规则列表
    • 用户 App - 签到记录
      • 获得个人签到统计
      • 签到
      • 获得签到记录分页
      • 获得用户积分记录分页
    • App 端 - 配额管理
      • 获取当前用户配额余额
      • 获取配额变动记录分页
      • 获取上架的套餐列表
      • 创建配额订单
      • 取消配额订单
      • 获取订单详情
      • 获取我的订单列表
      • 更新配额订单为已支付
      • 同步订单支付状态
    • 用户 App - 会员等级
      • 获得会员等级列表
    • 用户 App - 会员经验记录
      • 获得会员经验记录分页
    • 用户 App - 个人印章(已废弃)
      • 创建个人印章
      • 更新个人印章
      • 删除个人印章
      • 获得个人印章
      • 获得个人印章分页
    • 用户 APP - 用户个人中心
      • 获得基本信息
      • 修改基本信息
      • 修改用户手机
      • 基于微信小程序的授权码,修改用户手机
      • 修改用户密码
      • 重置密码
    • 用户 APP - 认证
      • 使用手机 + 密码登录
      • 登出系统
      • 刷新令牌
      • 使用手机 + 验证码登录
      • 发送手机验证码
      • 校验手机验证码
      • 社交授权的跳转
      • 社交快捷登录,使用 code 授权码
      • 微信小程序的一键登录
      • 创建微信 JS SDK 初始化所需的签名
    • 管理后台 - 代码生成器
      • 获得数据库自带的表定义列表
      • 获得表定义列表
      • 获得表定义分页
      • 获得表和字段的明细
      • 基于数据库的表结构,创建代码生成器的表和字段定义
      • 更新数据库的表和字段定义
      • 基于数据库的表结构,同步数据库的表和字段定义
      • 删除数据库的表和字段定义
      • 批量删除数据库的表和字段定义
      • 预览生成代码
      • 下载生成代码
    • 管理后台 - API 错误日志
      • 更新 API 错误日志的状态
      • 获得 API 错误日志
      • 获得 API 错误日志分页
      • 导出 API 错误日志 Excel
    • 管理后台 - API 访问日志
      • 获得 API 访问日志
      • 获得API 访问日志分页
      • 导出API 访问日志 Excel
    • 管理后台 - 参数配置
      • 创建参数配置
      • 修改参数配置
      • 删除参数配置
      • 批量删除参数配置
      • 获得参数配置
      • 根据参数键名查询参数值
      • 获取参数配置分页
      • 导出参数配置
    • 管理后台 - Redis 监控
      • 获得 Redis 监控信息
    • 管理后台 - 文件存储
      • 上传文件
      • 获取文件预签名地址(上传)
      • 创建文件
      • 获得文件
      • 删除文件
      • 批量删除文件
      • 下载文件
      • 获得文件分页
    • 管理后台 - 文件配置
      • 创建文件配置
      • 更新文件配置
      • 更新文件配置为 Master
      • 删除文件配置
      • 批量删除文件配置
      • 获得文件配置
      • 获得文件配置分页
      • 测试文件配置是否正确
    • 管理后台 - 学生
      • 创建学生
      • 更新学生
      • 删除学生
      • 批量删除学生
      • 获得学生
      • 获得学生分页
      • 导出学生 Excel
      • 获得学生课程列表
      • 获得学生班级
      • 创建学生
      • 更新学生
      • 删除学生
      • 批量删除学生
      • 获得学生
      • 获得学生分页
      • 导出学生 Excel
      • 获得学生课程列表
      • 获得学生班级
      • 创建学生
      • 更新学生
      • 删除学生
      • 批量删除学生
      • 获得学生
      • 获得学生分页
      • 导出学生 Excel
      • 获得学生课程分页
      • 创建学生课程
      • 更新学生课程
      • 删除学生课程
      • 批量删除学生课程
      • 获得学生课程
      • 获得学生班级分页
      • 创建学生班级
      • 更新学生班级
      • 删除学生班级
      • 批量删除学生班级
      • 获得学生班级
    • 管理后台 - 示例分类
      • 创建示例分类
      • 更新示例分类
      • 删除示例分类
      • 获得示例分类
      • 获得示例分类列表
      • 导出示例分类 Excel
    • 管理后台 - 示例联系人
      • 创建示例联系人
      • 更新示例联系人
      • 删除示例联系人
      • 批量删除示例联系人
      • 获得示例联系人
      • 获得示例联系人分页
      • 导出示例联系人 Excel
    • 管理后台 - 定时任务
      • 创建定时任务
      • 更新定时任务
      • 更新定时任务的状态
      • 删除定时任务
      • 批量删除定时任务
      • 触发定时任务
      • 同步定时任务
      • 获得定时任务
      • 获得定时任务分页
      • 导出定时任务 Excel
      • 获得定时任务的下 n 次执行时间
    • 管理后台 - 定时任务日志
      • 获得定时任务日志
      • 获得定时任务日志分页
      • 导出定时任务日志 Excel
    • 管理后台 - 数据源配置
      • 创建数据源配置
      • 更新数据源配置
      • 删除数据源配置
      • 批量删除数据源配置
      • 获得数据源配置
      • 获得数据源配置列表
    • PC端门户 - 平台配置
      • 获取 seal-core 签署页地址
    • 管理后台 - 印章授权
      • 创建印章授权
      • 更新印章授权
      • 删除印章授权
      • 获得印章授权
      • 获得印章授权分页
    • 管理后台 - 电子签名任务
      • 从模板创建签署任务
      • 创建签署任务
      • 用户签署任务
      • 拒绝签署任务
      • 撤销签署任务
      • 删除签署任务
      • 批量签署任务
      • 批量获取签署任务状态
      • 获得电子签名任务
      • 获取签署任务参与人列表
      • 获取签署任务的印章放置信息
      • 获得电子签名任务分页
      • 获取签署任务统计信息
      • 提交表单数据(智能流程 - 两阶段模式)
      • 修改表单数据(智能流程 - 两阶段模式)
      • 获取字段默认值(解析动态值)
      • 验证签署权限
      • 上传签署后的PDF文件
      • 同步纯前端签署状态
      • 保存签署草稿
      • 获取签署草稿
      • 删除签署草稿
      • 获取任务版本历史
      • 比较PDF版本差异
      • 验证PDF文件完整性
      • 生成签署链接
      • 获取印章图片
      • 获取任务参与人的表单字段定义
      • 获取参与人已填写的表单数据
    • 管理后台 - IP白名单
      • 创建IP白名单
      • 删除IP白名单
      • 获得IP白名单列表
    • 管理后台 - PDF签名验证
      • 验证PDF签名(兼容两种模式)
      • 读取PDF元数据和签名信息
    • 管理后台 - 电子印章
      • 签名使用日志
        • 获得印章/签名使用日志分页
    • 管理后台 - 合同模板
      • 创建合同模板
      • 更新合同模板
      • 删除合同模板
      • 获得合同模板
      • 获得合同模板分页
      • 批量保存合同模板表单字段(并创建新版本)
      • 批量保存模板签署方
      • 更新模板状态
      • 获得模板版本历史
      • 恢复到指定版本
      • 获取模板的最新版本
    • 管理后台 - 模板分类
      • 创建模板分类
      • 更新模板分类
      • 删除模板分类
      • 获得模板分类
      • 获得模板分类分页
      • 获得所有启用的模板分类列表
    • 管理后台 - License 授权
      • 获取 License 授权状态
      • 获取当前服务器机器码
    • 管理后台 - API密钥
      • 创建API密钥
      • 更新API密钥
      • 删除API密钥
      • 获得API密钥
      • 获得API密钥分页
      • 修改API密钥状态
    • 管理后台 - Token 黑名单
      • 将 Token 加入黑名单
      • 将用户加入黑名单(强制下线)
      • 检查 Token 是否在黑名单中
      • 检查用户是否在黑名单中
      • 获取黑名单功能状态
    • 管理后台 - 批量任务
      • 创建批量发起任务
      • 创建批量签署任务
      • 获得批量任务详情
      • 获得批量任务分页
      • 批量获取任务状态
      • 获取批量任务子项列表
    • 管理后台 - 印章
      • 签名信息
        • 创建印章/签名信息
        • 更新印章/签名信息
        • 更新印章/签名信息状态
        • 废止印章/签名信息
        • 获得印章/签名信息
        • 获得印章/签名信息分页
        • 获取当前用户可用的印章列表
        • 设置默认印章
        • 取消默认印章
        • 作废印章
        • 模板生成印章
        • 获取指定类型的默认印章
        • 检查企业印章唯一性
    • 管理后台 - API认证授权
      • 获取访问令牌
      • 验证访问令牌
      • 注销访问令牌
    • 开放 API - Webhook 回调配置
      • 配置 Webhook
      • 查询 Webhook 配置
      • 删除 Webhook 配置
    • 开放 API - Seal 认证
      • 获取访问令牌(AppKey/Secret)
    • 开放 API - 签署任务
      • 创建签署任务
      • 查询签署任务详情
      • 撤销签署任务
      • 获取签署链接
      • 下载签署文档
    • 开放 API - 合同模板
      • 查询模板详情
      • 获得合同模板分页(带权限过滤)
    • App 端 - 批量任务
      • 创建批量发起任务(仅手动填写模式)
      • 获得批量任务详情
      • 获得批量任务分页
      • 获取批量任务子项列表
    • 移动端 APP - 文件存储
      • 上传文件
      • 获取文件预签名地址(上传)
      • 创建文件
    • PC端门户 - 支付渠道
      • 获得指定应用的开启的支付渠道编码列表
    • PC端门户 - 支付订单
      • 获得支付订单
      • 提交支付订单
    • 管理后台 - 转账单
      • 获得转账订单
      • 获得转账订单分页
      • 导出转账订单 Excel
    • 管理后台 - 支付渠道
      • 创建支付渠道
      • 更新支付渠道
      • 删除支付渠道
      • 获得支付渠道
      • 获得指定应用的支付渠道列表
      • 获得指定应用的开启的支付渠道编码列表
    • 管理后台 - 用户钱包
      • 获得用户钱包明细
      • 获得会员钱包分页
      • 更新会员用户余额
    • 管理后台 - 钱包充值
      • 更新钱包充值为已充值
      • 发起钱包充值退款
      • 更新钱包充值为已退款
    • 管理后台 - 钱包余额明细
      • 获得钱包流水分页
    • 管理后台 - 钱包充值套餐
      • 创建钱包充值套餐
      • 更新钱包充值套餐
      • 删除钱包充值套餐
      • 获得钱包充值套餐
      • 获得钱包充值套餐分页
    • 管理后台 - 退款订单
      • 获得退款订单
      • 获得退款订单分页
      • 导出退款订单 Excel
    • 管理后台 - 回调通知
      • 支付渠道的统一【支付】回调
      • 支付渠道的统一【退款】回调
      • 支付渠道的统一【转账】回调
      • 获得回调通知的明细
      • 获得回调通知分页
    • 管理后台 - 支付订单
      • 获得支付订单
      • 获得支付订单详情
      • 提交支付订单
      • 获得支付订单分页
      • 导出支付订单 Excel
    • 管理后台 - 示例订单
      • 创建示例订单
      • 获得示例订单分页
      • 更新示例订单为已支付
      • 发起示例订单的退款
      • 更新示例订单为已退款
    • 管理后台 - 示例提现订单
      • 创建示例提现单
      • 提现单转账
      • 获得示例提现单分页
      • 更新示例提现单的转账状态
    • 管理后台 - 支付应用信息
      • 创建支付应用信息
      • 更新支付应用信息
      • 更新支付应用状态
      • 删除支付应用信息
      • 获得支付应用信息
      • 获得支付应用信息分页
      • 获得应用列表
    • 用户 APP - 转账单
      • 同步转账单
    • 用户 App - 支付渠道
      • 获得指定应用的开启的支付渠道编码列表
    • 用户 APP - 钱包
      • 获取钱包
    • 用户 APP - 钱包充值
      • 创建钱包充值记录(发起充值)
      • 获得钱包充值记录分页
    • 用户 APP - 钱包余额明细
      • 获得钱包流水分页
      • 获得钱包流水统计
    • 用户 APP - 钱包充值套餐
      • 获得钱包充值套餐列表
    • 用户 APP - 支付订单
      • 获得支付订单
      • 提交支付订单
    • 默认 Controller,解决部分 module 未开启时的 404 提示。
      • bpm404
      • mp404
      • mall404
      • mall404
      • mall404
      • erp404
      • wms404
      • crm404
      • mes404
      • im404
      • report404
      • pay404
      • ai404
      • iot404
      • 测试接口:打印 query、header、body
    • 数据模型
      • MenuSaveVO
      • CommonResultOpenSignTaskRespVO
      • SignPosition
      • ParticipantInfo
      • key
      • MenuRespVO
      • OpenSignTaskRespVO
      • CommonResultListMenuRespVO
      • MenuSimpleRespVO
      • CommonResultListMenuSimpleRespVO
      • MapObject
      • CommonResultBoolean
      • CommonResultMenuRespVO
      • Participant
      • RoleSaveReqVO
      • OpenSignTaskCreateReqVO
      • CommonResultString
      • RoleRespVO
      • SealAuthTokenRespVO
      • CommonResultRoleRespVO
      • CommonResultListParticipantInfo
      • PageResultRoleRespVO
      • OpenWebhookConfigRespVO
      • CommonResultPageResultRoleRespVO
      • CommonResultOpenWebhookConfigRespVO
      • CommonResultListRoleRespVO
      • OpenWebhookConfigVO
      • CommonResultSetLong
      • CommonResultLong
      • PermissionAssignRoleMenuReqVO
      • PerforationSegment
      • PermissionAssignRoleDataScopeReqVO
      • PerforationData
      • PermissionAssignUserRoleReqVO
      • ResponseModel
      • PointVO
      • Point
      • CaptchaVO
      • TenantRespVO
      • CommonResultListTenantRespVO
      • CommonResultTenantRespVO
      • Participant
      • FormFieldData
      • TenantSaveReqVO
      • SealSignTaskCreateReqVO
      • PageInfo
      • PageResultTenantRespVO
      • ParticipantInfo
      • CommonResultPageResultTenantRespVO
      • AppSignTaskCreateFromFileReqVO
      • MapBoolean
      • TenantPackageSaveReqVO
      • ParticipantInfo
      • CommonResultMapBoolean
      • TenantPackageRespVO
      • AppSignTaskCreateFromImagesReqVO
      • CommonResultTenantPackageRespVO
      • PageResultTenantPackageRespVO
      • CommonResultPageResultTenantPackageRespVO
      • SealSignTaskSignReqVO
      • TenantPackageSimpleRespVO
      • SealSignTaskStatusReqVO
      • CommonResultListTenantPackageSimpleRespVO
      • SocialUserBindReqVO
      • SealSignTaskBatchSignReqVO
      • CommonResultSealSignTaskRespVO
      • SocialUserUnbindReqVO
      • ParticipantInfo
      • SocialUserRespVO
      • SealSignTaskStatusRespVO
      • SealPlacementRespVO
      • CommonResultListSocialUserRespVO
      • CommonResultListSealSignTaskStatusRespVO
      • CommonResultSocialUserRespVO
      • PageResultSocialUserRespVO
      • SealSignTaskRespVO
      • CommonResultPageResultSealSignTaskRespVO
      • CommonResultPageResultSocialUserRespVO
      • SealSignTaskStatisticsRespVO
      • SocialClientSaveReqVO
      • CommonResultListParticipantInfo
      • CommonResultSealSignTaskStatisticsRespVO
      • SocialClientRespVO
      • SealSignTaskFormSubmitReqVO
      • CommonResultSocialClientRespVO
      • CommonResultListSealPlacementRespVO
      • PageResultSocialClientRespVO
      • PageResultSealSignTaskRespVO
      • SealSignTaskFieldDefaultsRespVO
      • CommonResultPageResultSocialClientRespVO
      • CommonResultSealSignTaskFieldDefaultsRespVO
      • ValidateSignPermissionRespVO
      • SocialWxaSubscribeMessageSendReqDTO
      • CommonResultValidateSignPermissionRespVO
      • OAuth2OpenAccessTokenRespVO
      • SealInstance
      • CommonResultOAuth2OpenAccessTokenRespVO
      • MapString
      • key
      • OAuth2OpenCheckTokenRespVO
      • CommonResultOAuth2OpenCheckTokenRespVO
      • key
      • Client
      • SavePureFrontendDraftReqVO
      • KeyValueBoolean
      • key
      • OAuth2OpenAuthorizeInfoRespVO
      • PureFrontendDraftRespVO
      • CommonResultOAuth2OpenAuthorizeInfoRespVO
      • CommonResultPureFrontendDraftRespVO
      • SyncPureFrontendSignStatusReqVO
      • TaskVersionHistoryRespVO
      • Dept
      • Post
      • key
      • OAuth2UserInfoRespVO
      • ComparePdfVersionsRespVO
      • CommonResultOAuth2UserInfoRespVO
      • CommonResultComparePdfVersionsRespVO
      • OAuth2UserUpdateReqVO
      • ComparePdfVersionsReqVO
      • OAuth2AccessTokenRespVO
      • key
      • PageResultOAuth2AccessTokenRespVO
      • CommonResultListTaskVersionHistoryRespVO
      • VerifyPdfIntegrityRespVO
      • CommonResultPageResultOAuth2AccessTokenRespVO
      • CommonResultVerifyPdfIntegrityRespVO
      • OAuth2ClientSaveReqVO
      • key
      • OAuth2ClientRespVO
      • VerifyPdfIntegrityReqVO
      • CommonResultOAuth2ClientRespVO
      • GenerateSignLinkRespVO
      • PageResultOAuth2ClientRespVO
      • CommonResultGenerateSignLinkRespVO
      • CommonResultPageResultOAuth2ClientRespVO
      • key
      • CommonResultListMapObject
      • NotifyMessageRespVO
      • key
      • CommonResultNotifyMessageRespVO
      • SignatureTokenRespVO
      • PageResultNotifyMessageRespVO
      • GenerateSignLinkReqVO
      • CommonResultSignatureTokenRespVO
      • CommonResultPageResultNotifyMessageRespVO
      • SignatureTokenReqVO
      • SignatureStatusRespVO
      • CommonResultListNotifyMessageRespVO
      • CommonResultSignatureStatusRespVO
      • NotifyTemplateSaveReqVO
      • SealAuthorizationCreateReqVO
      • NotifyTemplateRespVO
      • SealAuthorizationUpdateReqVO
      • CommonResultNotifyTemplateRespVO
      • SealAuthorizationRespVO
      • PageResultNotifyTemplateRespVO
      • CommonResultPageResultNotifyTemplateRespVO
      • CommonResultPageResultSealAuthorizationRespVO
      • NotifyTemplateSimpleRespVO
      • CommonResultListNotifyTemplateSimpleRespVO
      • NotifyTemplateSendReqVO
      • CommonResultSealTemplateRespVO
      • NoticeSaveReqVO
      • NoticeRespVO
      • CommonResultPageResultSealTemplateRespVO
      • PageResultNoticeRespVO
      • CommonResultPageResultNoticeRespVO
      • CommonResultNoticeRespVO
      • MapLong
      • LoginLogRespVO
      • SealTemplateFormFieldBatchSaveReqVO
      • CommonResultLoginLogRespVO
      • CommonResultMapLong
      • PageResultLoginLogRespVO
      • CommonResultPageResultLoginLogRespVO
      • SignatoryVerificationConfigVO
      • OperateLogRespVO
      • SaveSignatoryConfigReqVO
      • PageResultSealRespVO
      • CommonResultOperateLogRespVO
      • SignatoryConfigRespVO
      • PageResultOperateLogRespVO
      • CommonResultSignatoryConfigRespVO
      • CommonResultListSealRespVO
      • CommonResultPageResultOperateLogRespVO
      • SignatoryContactRespVO
      • UserSaveReqVO
      • PageResultSignatoryContactRespVO
      • UserUpdatePasswordReqVO
      • CommonResultPageResultSignatoryContactRespVO
      • UserUpdateStatusReqVO
      • ShareSummaryRespVO
      • UserRespVO
      • CommonResultShareSummaryRespVO
      • PageResultUserRespVO
      • QuotaBalanceRespVO
      • SealBatchTaskRespVO
      • CommonResultPageResultUserRespVO
      • CommonResultQuotaBalanceRespVO
      • CommonResultListUserRespVO
      • SendCodeRespVO
      • PageResultSealBatchTaskRespVO
      • UserSimpleRespVO
      • CommonResultSendCodeRespVO
      • CommonResultListUserSimpleRespVO
      • SendCodeReqVO
      • CommonResultListSealBatchTaskRespVO
      • CommonResultUserRespVO
      • VerifyResultVO
      • UserImportRespVO
      • CommonResultVerifyResultVO
      • CommonResultListSealBatchTaskItemRespVO
      • CommonResultUserImportRespVO
      • VerifyReqVO
      • CommonResultUserSimpleRespVO
      • VerificationStatusVO
      • RoleSimpleRespVO
      • CommonResultVerificationStatusVO
      • DeptSimpleRespVO
      • BatchItemData
      • PostSimpleRespVO
      • SealBatchTaskCreateReqVO
      • UserProfileRespVO
      • SealBatchTaskItemRespVO
      • CommonResultUserProfileRespVO
      • BatchLaunchItem
      • UserProfileUpdateReqVO
      • CommonResultSealBatchTaskRespVO
      • UserProfileUpdatePasswordReqVO
      • MailLogRespVO
      • CommonResultPageResultSealBatchTaskRespVO
      • PageResultMailLogRespVO
      • CommonResultPageResultMailLogRespVO
      • SealBatchTaskStatusReqVO
      • CommonResultMailLogRespVO
      • MailAccountSaveReqVO
      • MailAccountRespVO
      • PageResultSealAuthorizationRespVO
      • CommonResultMailAccountRespVO
      • PageResultMailAccountRespVO
      • CommonResultSealRespVO
      • CommonResultPageResultMailAccountRespVO
      • MailAccountSimpleRespVO
      • CommonResultPageResultSealRespVO
      • CommonResultListMailAccountSimpleRespVO
      • MailTemplateSaveReqVO
      • SealRevokeReqVO
      • MailTemplateRespVO
      • SealTemplateGenerateReqVO
      • CommonResultMailTemplateRespVO
      • TemplateCategorySaveReqVO
      • PageResultMailTemplateRespVO
      • TemplateCategoryRespVO
      • CommonResultPageResultMailTemplateRespVO
      • CommonResultTemplateCategoryRespVO
      • MailTemplateSimpleRespVO
      • PageResultTemplateCategoryRespVO
      • CommonResultListMailTemplateSimpleRespVO
      • CommonResultPageResultTemplateCategoryRespVO
      • MailTemplateSendReqVO
      • CommonResultListTemplateCategoryRespVO
      • DictDataSaveReqVO
      • SendCodeRespVO
      • DictDataSimpleRespVO
      • CommonResultSendCodeRespVO
      • CommonResultListDictDataSimpleRespVO
      • SendCodeReqVO
      • DictDataRespVO
      • VerifyResultVO
      • PageResultDictDataRespVO
      • PageResultSealTemplateRespVO
      • CommonResultVerifyResultVO
      • CommonResultPageResultDictDataRespVO
      • VerifyReqVO
      • CommonResultDictDataRespVO
      • CommonResultListSealTemplateRespVO
      • VerificationStatusVO
      • DictTypeSaveReqVO
      • CommonResultVerificationStatusVO
      • DictTypeRespVO
      • CommonResultInteger
      • PageResultDictTypeRespVO
      • SealIpWhitelistCreateReqVO
      • CommonResultPageResultDictTypeRespVO
      • SealIpWhitelistRespVO
      • CommonResultDictTypeRespVO
      • CommonResultListSealIpWhitelistRespVO
      • DictTypeSimpleRespVO
      • SealTemplateCreateReqVO
      • CommonResultListDictTypeSimpleRespVO
      • CommonResultSealAuthorizationRespVO
      • DeptSaveReqVO
      • VerificationItemResult
      • DeptRespVO
      • ContractInfoVO
      • CommonResultListDeptRespVO
      • SignerVO
      • CommonResultListDeptSimpleRespVO
      • TimelineEventVO
      • CommonResultDeptRespVO
      • VerificationResultVO
      • PostSaveReqVO
      • CommonResultVerificationResultVO
      • PostRespVO
      • FilePresignedUrlRespVO
      • CommonResultPostRespVO
      • CommonResultFilePresignedUrlRespVO
      • CommonResultListPostSimpleRespVO
      • PageResultPostRespVO
      • MiniprogramConfig
      • CommonResultPageResultPostRespVO
      • AuthLoginRespVO
      • AuthByRefRespVO
      • CommonResultAuthLoginRespVO
      • CommonResultAuthByRefRespVO
      • AuthLoginReqVO
      • SignTaskCreateResultVO
      • UserVO
      • CommonResultSignTaskCreateResultVO
      • MenuVO
      • AppSealGrantCreateReqVO
      • AuthPermissionInfoRespVO
      • AppSealGrantRespVO
      • CommonResultAuthPermissionInfoRespVO
      • CommonResultListAppSealGrantRespVO
      • AuthRegisterReqVO
      • TemplateRespVO
      • AuthSmsLoginReqVO
      • CommonResultListTemplateRespVO
      • AuthSmsSendReqVO
      • MessageRespVO
      • AuthResetPasswordReqVO
      • CommonResultMessageRespVO
      • AuthSocialLoginReqVO
      • MessageSendReqVO
      • SmsLogRespVO
      • CommonResultListMessageRespVO
      • PageResultSmsLogRespVO
      • ContractGenerateReqVO
      • CommonResultPageResultSmsLogRespVO
      • ContractUpdateReqVO
      • CommonResultSmsLogRespVO
      • ContractRespVO
      • SmsChannelSaveReqVO
      • CommonResultContractRespVO
      • SmsChannelRespVO
      • PdfExportRespVO
      • CommonResultSmsChannelRespVO
      • CommonResultPdfExportRespVO
      • PageResultSmsChannelRespVO
      • PdfExportReqVO
      • CommonResultPageResultSmsChannelRespVO
      • ParticipantInfo
      • SmsChannelSimpleRespVO
      • SigningCreateReqVO
      • CommonResultListSmsChannelSimpleRespVO
      • ConversationCreateReqVO
      • SmsTemplateSaveReqVO
      • ConversationRespVO
      • SmsTemplateRespVO
      • PageResultConversationRespVO
      • CommonResultSmsTemplateRespVO
      • CommonResultPageResultConversationRespVO
      • PageResultSmsTemplateRespVO
      • CommonResultConversationRespVO
      • CommonResultPageResultSmsTemplateRespVO
      • ConversationDetailRespVO
      • SmsTemplateSimpleRespVO
      • CommonResultConversationDetailRespVO
      • CommonResultListSmsTemplateSimpleRespVO
      • AuditStartReqVO
      • SmsTemplateSendReqVO
      • AuditTaskRespVO
      • AreaNodeRespVO
      • CommonResultAuditTaskRespVO
      • CommonResultListAreaNodeRespVO
      • AuditRiskRespVO
      • AppTenantRespVO
      • CommonResultListAuditRiskRespVO
      • CommonResultAppTenantRespVO
      • CommonResultAuditRiskRespVO
      • AppDictDataRespVO
      • CommonResultListAuditTaskRespVO
      • CommonResultListAppDictDataRespVO
      • AuditRetryReqVO
      • AppAreaNodeRespVO
      • VariableOptionVO
      • CommonResultListAppAreaNodeRespVO
      • AppEnterpriseCreateReqVO
      • TemplateSignatoryFieldVO
      • AppEnterpriseRespVO
      • TemplateSignatoryVO
      • CommonResultAppEnterpriseRespVO
      • PageResultAppEnterpriseRespVO
      • CommonResultPageResultAppEnterpriseRespVO
      • CommonResultAppTemplateDetailRespVO
      • AppEnterpriseSwitchReqVO
      • TemplateCategoryRespVO
      • Enterprise
      • CommonResultListTemplateCategoryRespVO
      • AppEnterpriseSimpleRespVO
      • AppTemplateRespVO
      • CommonResultAppEnterpriseSimpleRespVO
      • CommonResultListAppTemplateRespVO
      • AppEnterpriseUserRespVO
      • PageResultAppTemplateRespVO
      • PageResultAppEnterpriseUserRespVO
      • CommonResultPageResultAppTemplateRespVO
      • CommonResultPageResultAppEnterpriseUserRespVO
      • GenerateTokenReqDTO
      • AppEnterpriseUserAddReqVO
      • SignSecurityLevelOption
      • AppEnterpriseUserCreateReqVO
      • SignSecurityConfigRespVO
      • AppEnterpriseUserUpdateReqVO
      • CommonResultSignSecurityConfigRespVO
      • CommonResultAppEnterpriseUserRespVO
      • MiniprogramInfoVO
      • AppMemberVerifyRespVO
      • CommonResultMiniprogramInfoVO
      • CommonResultAppMemberVerifyRespVO
      • QuotaBalanceRespVO
      • AppMemberVerifySubmitReqVO
      • CommonResultQuotaBalanceRespVO
      • AppIdCardOcrRespVO
      • SealSignTaskParticipantReqVO
      • CommonResultAppIdCardOcrRespVO
      • SealSignTaskCreateFromTemplateReqVO
      • AppIdCardOcrReqVO
      • VerificationResultVO
      • AppEnterpriseVerifyRespVO
      • CommonResultVerificationResultVO
      • CommonResultAppEnterpriseVerifyRespVO
      • CommonResultMapString
      • AppEnterpriseVerifySubmitReqVO
      • SealUsageLogRespVO
      • AppQuotaBalanceRespVO
      • CommonResultAppQuotaBalanceRespVO
      • CommonResultPageResultSealUsageLogRespVO
      • AppQuotaLogRespVO
      • SealApiKeyCreateReqVO
      • PageResultAppQuotaLogRespVO
      • SealApiKeyUpdateReqVO
      • CommonResultPageResultAppQuotaLogRespVO
      • AppQuotaPackageRespVO
      • CommonResultSealApiKeyRespVO
      • CommonResultListAppQuotaPackageRespVO
      • AppQuotaOrderCreateRespVO
      • CommonResultPageResultSealApiKeyRespVO
      • CommonResultAppQuotaOrderCreateRespVO
      • AppQuotaOrderCreateReqVO
      • AppQuotaOrderRespVO
      • CommonResultAppQuotaOrderRespVO
      • PageResultAppQuotaOrderRespVO
      • CommonResultPageResultAppQuotaOrderRespVO
      • PayOrderNotifyReqDTO
      • Level
      • AppMemberUserInfoRespVO
      • PageResultSealApiKeyRespVO
      • CommonResultAppMemberUserInfoRespVO
      • AppMemberUserUpdateReqVO
      • AppMemberUserUpdateMobileReqVO
      • PageResultSealUsageLogRespVO
      • AppMemberUserUpdateMobileByWeixinReqVO
      • AppMemberUserUpdatePasswordReqVO
      • AppMemberUserResetPasswordReqVO
      • AppAuthLoginRespVO
      • CommonResultAppAuthLoginRespVO
      • AppAuthLoginReqVO
      • AppAuthSmsLoginReqVO
      • AppAuthSmsSendReqVO
      • AppAuthSmsValidateReqVO
      • AppAuthSocialLoginReqVO
      • AppAuthWeixinMiniAppLoginReqVO
      • SocialWxJsapiSignatureRespDTO
      • CommonResultSocialWxJsapiSignatureRespDTO
      • MemberEnterpriseRespVO
      • PageResultMemberEnterpriseRespVO
      • CommonResultPageResultMemberEnterpriseRespVO
      • CommonResultMemberEnterpriseRespVO
      • MemberEnterpriseUpdateReqVO
      • AddressRespVO
      • CommonResultListAddressRespVO
      • MemberVerifyRespVO
      • PageResultMemberVerifyRespVO
      • CommonResultPageResultMemberVerifyRespVO
      • MemberVerifyAuditReqVO
      • CommonResultMemberVerifyRespVO
      • MemberEnterpriseVerifyRespVO
      • PageResultMemberEnterpriseVerifyRespVO
      • CommonResultPageResultMemberEnterpriseVerifyRespVO
      • CommonResultMemberEnterpriseVerifyRespVO
      • MemberEnterpriseVerifyDetailRespVO
      • CommonResultMemberEnterpriseVerifyDetailRespVO
      • CommonResultListMemberEnterpriseVerifyRespVO
      • MemberSignInConfigCreateReqVO
      • MemberSignInConfigUpdateReqVO
      • MemberSignInConfigRespVO
      • CommonResultMemberSignInConfigRespVO
      • CommonResultListMemberSignInConfigRespVO
      • MemberSignInRecordRespVO
      • PageResultMemberSignInRecordRespVO
      • CommonResultPageResultMemberSignInRecordRespVO
      • MemberPointRecordRespVO
      • PageResultMemberPointRecordRespVO
      • CommonResultPageResultMemberPointRecordRespVO
      • MemberConfigSaveReqVO
      • MemberConfigRespVO
      • CommonResultMemberConfigRespVO
      • MemberQuotaOrderRespVO
      • PageResultMemberQuotaOrderRespVO
      • CommonResultPageResultMemberQuotaOrderRespVO
      • CommonResultMemberQuotaOrderRespVO
      • MemberQuotaAccountRespVO
      • PageResultMemberQuotaAccountRespVO
      • CommonResultPageResultMemberQuotaAccountRespVO
      • CommonResultMemberQuotaAccountRespVO
      • MemberQuotaAccountAdjustReqVO
      • MemberQuotaLogRespVO
      • CommonResultListMemberQuotaLogRespVO
      • QuotaStatisticsDTO
      • CommonResultQuotaStatisticsDTO
      • MemberQuotaPackageSaveReqVO
      • MemberQuotaPackageRespVO
      • CommonResultMemberQuotaPackageRespVO
      • PageResultMemberQuotaPackageRespVO
      • CommonResultPageResultMemberQuotaPackageRespVO
      • CommonResultListMemberQuotaPackageRespVO
      • MemberLevelCreateReqVO
      • MemberLevelUpdateReqVO
      • MemberLevelRespVO
      • CommonResultMemberLevelRespVO
      • MemberLevelSimpleRespVO
      • CommonResultListMemberLevelSimpleRespVO
      • CommonResultListMemberLevelRespVO
      • MemberLevelRecordRespVO
      • CommonResultMemberLevelRecordRespVO
      • PageResultMemberLevelRecordRespVO
      • CommonResultPageResultMemberLevelRecordRespVO
      • MemberExperienceRecordRespVO
      • CommonResultMemberExperienceRecordRespVO
      • PageResultMemberExperienceRecordRespVO
      • CommonResultPageResultMemberExperienceRecordRespVO
      • MemberGroupCreateReqVO
      • MemberGroupUpdateReqVO
      • MemberGroupRespVO
      • CommonResultMemberGroupRespVO
      • MemberGroupSimpleRespVO
      • CommonResultListMemberGroupSimpleRespVO
      • PageResultMemberGroupRespVO
      • CommonResultPageResultMemberGroupRespVO
      • MemberUserUpdateReqVO
      • MemberUserUpdateLevelReqVO
      • MemberUserUpdatePointReqVO
      • MemberUserRespVO
      • CommonResultMemberUserRespVO
      • PageResultMemberUserRespVO
      • CommonResultPageResultMemberUserRespVO
      • MemberTagCreateReqVO
      • MemberTagUpdateReqVO
      • MemberTagRespVO
      • CommonResultMemberTagRespVO
      • CommonResultListMemberTagRespVO
      • PageResultMemberTagRespVO
      • CommonResultPageResultMemberTagRespVO
      • AppEnterpriseJoinSubmitReqVO
      • AppEnterpriseJoinHandleReqVO
      • AppEnterpriseJoinRespVO
      • PageResultAppEnterpriseJoinRespVO
      • CommonResultPageResultAppEnterpriseJoinRespVO
      • MemberEnterpriseDO
      • PageResultMemberEnterpriseDO
      • CommonResultPageResultMemberEnterpriseDO
      • AppAddressCreateReqVO
      • AppAddressUpdateReqVO
      • AppAddressRespVO
      • CommonResultAppAddressRespVO
      • CommonResultListAppAddressRespVO
      • AppSocialUserBindReqVO
      • AppSocialUserUnbindReqVO
      • AppSocialUserRespVO
      • CommonResultAppSocialUserRespVO
      • AppSocialWxaQrcodeReqVO
      • AppSocialWxaSubscribeTemplateRespVO
      • CommonResultListAppSocialWxaSubscribeTemplateRespVO
      • AppMemberSignInConfigRespVO
      • CommonResultListAppMemberSignInConfigRespVO
      • AppMemberSignInRecordSummaryRespVO
      • CommonResultAppMemberSignInRecordSummaryRespVO
      • AppMemberSignInRecordRespVO
      • CommonResultAppMemberSignInRecordRespVO
      • PageResultAppMemberSignInRecordRespVO
      • CommonResultPageResultAppMemberSignInRecordRespVO
      • AppMemberPointRecordRespVO
      • PageResultAppMemberPointRecordRespVO
      • CommonResultPageResultAppMemberPointRecordRespVO
      • AppMemberLevelRespVO
      • CommonResultListAppMemberLevelRespVO
      • AppMemberExperienceRecordRespVO
      • PageResultAppMemberExperienceRecordRespVO
      • CommonResultPageResultAppMemberExperienceRecordRespVO
      • AppUserSealCreateReqVO
      • AppUserSealUpdateReqVO
      • AppUserSealRespVO
      • CommonResultAppUserSealRespVO
      • PageResultAppUserSealRespVO
      • CommonResultPageResultAppUserSealRespVO
      • DatabaseTableRespVO
      • CommonResultListDatabaseTableRespVO
      • CodegenTableRespVO
      • CommonResultListCodegenTableRespVO
      • PageResultCodegenTableRespVO
      • CommonResultPageResultCodegenTableRespVO
      • CodegenColumnRespVO
      • CodegenDetailRespVO
      • CommonResultCodegenDetailRespVO
      • CommonResultListLong
      • CodegenCreateListReqVO
      • CodegenTableSaveReqVO
      • CodegenColumnSaveReqVO
      • CodegenUpdateReqVO
      • CodegenPreviewRespVO
      • CommonResultListCodegenPreviewRespVO
      • ApiErrorLogRespVO
      • CommonResultApiErrorLogRespVO
      • PageResultApiErrorLogRespVO
      • CommonResultPageResultApiErrorLogRespVO
      • ApiAccessLogRespVO
      • CommonResultApiAccessLogRespVO
      • PageResultApiAccessLogRespVO
      • CommonResultPageResultApiAccessLogRespVO
      • ConfigSaveReqVO
      • ConfigRespVO
      • CommonResultConfigRespVO
      • PageResultConfigRespVO
      • CommonResultPageResultConfigRespVO
      • {}
      • Properties
      • CommandStat
      • RedisMonitorRespVO
      • CommonResultRedisMonitorRespVO
      • FileCreateReqVO
      • FileRespVO
      • CommonResultFileRespVO
      • PageResultFileRespVO
      • CommonResultPageResultFileRespVO
      • FileConfigSaveReqVO
      • FileClientConfig
      • FileConfigRespVO
      • CommonResultFileConfigRespVO
      • PageResultFileConfigRespVO
      • CommonResultPageResultFileConfigRespVO
      • Demo03CourseDO
      • Demo03GradeDO
      • Demo03StudentNormalSaveReqVO
      • Demo03StudentNormalRespVO
      • CommonResultDemo03StudentNormalRespVO
      • PageResultDemo03StudentNormalRespVO
      • CommonResultPageResultDemo03StudentNormalRespVO
      • CommonResultListDemo03CourseDO
      • CommonResultDemo03GradeDO
      • Demo03StudentInnerSaveReqVO
      • Demo03StudentInnerRespVO
      • CommonResultDemo03StudentInnerRespVO
      • PageResultDemo03StudentInnerRespVO
      • CommonResultPageResultDemo03StudentInnerRespVO
      • Demo03StudentErpSaveReqVO
      • Demo03StudentErpRespVO
      • CommonResultDemo03StudentErpRespVO
      • PageResultDemo03StudentErpRespVO
      • CommonResultPageResultDemo03StudentErpRespVO
      • PageResultDemo03CourseDO
      • CommonResultPageResultDemo03CourseDO
      • CommonResultDemo03CourseDO
      • PageResultDemo03GradeDO
      • CommonResultPageResultDemo03GradeDO
      • Demo02CategorySaveReqVO
      • Demo02CategoryRespVO
      • CommonResultDemo02CategoryRespVO
      • CommonResultListDemo02CategoryRespVO
      • Demo01ContactSaveReqVO
      • Demo01ContactRespVO
      • CommonResultDemo01ContactRespVO
      • PageResultDemo01ContactRespVO
      • CommonResultPageResultDemo01ContactRespVO
      • JobSaveReqVO
      • JobRespVO
      • CommonResultJobRespVO
      • PageResultJobRespVO
      • CommonResultPageResultJobRespVO
      • CommonResultListLocalDateTime
      • JobLogRespVO
      • CommonResultJobLogRespVO
      • PageResultJobLogRespVO
      • CommonResultPageResultJobLogRespVO
      • DataSourceConfigSaveReqVO
      • DataSourceConfigRespVO
      • CommonResultDataSourceConfigRespVO
      • CommonResultListDataSourceConfigRespVO
      • SealTemplateFormFieldRespVO
      • SealTemplateSignatoryRespVO
      • SealTemplateRespVO
      • SealTemplateFormFieldSaveReqVO
      • SealTemplateSignatorySaveReqVO
      • key
      • key
      • key
      • key
      • key
      • CommonResultMapObject
      • PlatformRoutingRespVO
      • CommonResultPlatformRoutingRespVO
      • FieldError
      • ParsedRow
      • BatchFileParseRespVO
      • CommonResultBatchFileParseRespVO
      • key
      • SealBatchLaunchCreateReqVO
      • SealCreateReqVO
      • SealUpdateReqVO
      • SealRespVO
      • SealApiKeyCreateRespVO
      • CommonResultSealApiKeyCreateRespVO
      • SealApiKeyRespVO
      • CommonResultSealAuthTokenRespVO
      • SignatoryInfo
      • FormFieldInfo
      • OpenTemplateRespVO
      • PageResultOpenTemplateRespVO
      • CommonResultPageResultOpenTemplateRespVO
      • CommonResultOpenTemplateRespVO
      • TemplateVariableVO
      • FormFieldVO
      • AppTemplateDetailRespVO
      • PlatformRouting
      • PlatformRoutingRespVO
      • CommonResultPlatformRoutingRespVO
      • CommonResultSetString
      • PayOrderRespVO
      • CommonResultPayOrderRespVO
      • AppPayOrderSubmitRespVO
      • CommonResultAppPayOrderSubmitRespVO
      • AppPayOrderSubmitReqVO
      • PayTransferRespVO
      • CommonResultPayTransferRespVO
      • PageResultPayTransferRespVO
      • CommonResultPageResultPayTransferRespVO
      • PayChannelCreateReqVO
      • PayChannelUpdateReqVO
      • PayChannelRespVO
      • CommonResultPayChannelRespVO
      • CommonResultListPayChannelRespVO
      • PayWalletRespVO
      • CommonResultPayWalletRespVO
      • PageResultPayWalletRespVO
      • CommonResultPageResultPayWalletRespVO
      • PayWalletUpdateBalanceReqVO
      • PayRefundNotifyReqDTO
      • PayWalletTransactionRespVO
      • PageResultPayWalletTransactionRespVO
      • CommonResultPageResultPayWalletTransactionRespVO
      • WalletRechargePackageCreateReqVO
      • WalletRechargePackageUpdateReqVO
      • WalletRechargePackageRespVO
      • CommonResultWalletRechargePackageRespVO
      • PageResultWalletRechargePackageRespVO
      • CommonResultPageResultWalletRechargePackageRespVO
      • Order
      • PayRefundDetailsRespVO
      • CommonResultPayRefundDetailsRespVO
      • PayRefundPageItemRespVO
      • PageResultPayRefundPageItemRespVO
      • CommonResultPageResultPayRefundPageItemRespVO
      • Log
      • PayNotifyTaskDetailRespVO
      • CommonResultPayNotifyTaskDetailRespVO
      • PayNotifyTaskRespVO
      • PageResultPayNotifyTaskRespVO
      • CommonResultPageResultPayNotifyTaskRespVO
      • PayOrderExtension
      • PayOrderDetailsRespVO
      • CommonResultPayOrderDetailsRespVO
      • PayOrderSubmitRespVO
      • CommonResultPayOrderSubmitRespVO
      • PayOrderSubmitReqVO
      • PayOrderPageItemRespVO
      • PageResultPayOrderPageItemRespVO
      • CommonResultPageResultPayOrderPageItemRespVO
      • PayDemoOrderCreateReqVO
      • PayDemoOrderRespVO
      • PageResultPayDemoOrderRespVO
      • CommonResultPageResultPayDemoOrderRespVO
      • PayDemoWithdrawCreateReqVO
      • PayDemoWithdrawRespVO
      • PageResultPayDemoWithdrawRespVO
      • CommonResultPageResultPayDemoWithdrawRespVO
      • PayTransferNotifyReqDTO
      • PayAppCreateReqVO
      • PayAppUpdateReqVO
      • PayAppUpdateStatusReqVO
      • PayAppRespVO
      • CommonResultPayAppRespVO
      • PayAppPageItemRespVO
      • PageResultPayAppPageItemRespVO
      • CommonResultPageResultPayAppPageItemRespVO
      • CommonResultListPayAppRespVO
      • AppPayWalletRespVO
      • CommonResultAppPayWalletRespVO
      • AppPayWalletRechargeCreateRespVO
      • CommonResultAppPayWalletRechargeCreateRespVO
      • AppPayWalletRechargeCreateReqVO
      • AppPayWalletRechargeRespVO
      • PageResultAppPayWalletRechargeRespVO
      • CommonResultPageResultAppPayWalletRechargeRespVO
      • AppPayWalletTransactionRespVO
      • PageResultAppPayWalletTransactionRespVO
      • CommonResultPageResultAppPayWalletTransactionRespVO
      • AppPayWalletTransactionSummaryRespVO
      • CommonResultAppPayWalletTransactionSummaryRespVO
      • AppPayWalletPackageRespVO
      • CommonResultListAppPayWalletPackageRespVO

    开放平台接入文档

      ____             _   ____            _ 
     / ___|  ___  __ _| | / ___| _   _ ___| |_ ___ _ __ ___  
     \___ \ / _ \/ _` | | \___ \| | | / __| __/ _ \ '_ ` _ \ 
      ___) |  __/ (_| | |  ___) | |_| \__ \ ||  __/ | | | | |
     |____/ \___|\__,_|_| |____/ \__, |___/\__\___|_| |_| |_|
                                 |___/                        
    企业级电子印章管理与合同签署系统
    Version License Spring Boot Java

    作者: 小华同学 ai
    官网: https://s.leepm.com
    版本: v1.6.0

    目录#

    概述
    接入方式选择
    前置条件
    接入检查清单
    认证机制
    通知策略
    签署任务 API
    Webhook 回调
    签署页面嵌入
    安全机制
    状态码与错误处理
    完整集成示例
    FAQ

    概述#

    Contract.Pro 开放平台为第三方系统提供电子合同签署能力的集成方案。无论你是想通过 API 快速对接、使用 SDK 简化开发,还是将整套系统私有化部署到自己的服务器,Contract.Pro 都能满足。
    开放平台提供的核心能力:
    能力说明
    合同签署基于模板创建签署任务,支持多方签署
    签署页面提供开箱即用的签署页面(seal-core),支持 iframe / WebView 嵌入
    状态通知通过 Webhook 实时推送签署状态变更
    文件管理合同 PDF 生成、签章合成、已签署文件下载
    安全保障多种认证模式、数据隔离、IP 白名单、请求限流
    你不需要自己开发签署页面。 Contract.Pro 提供完整的签署页面(seal-core),包含 PDF 预览、签名绘制、印章盖章等全部签署交互。你只需要将签署链接嵌入到自己的系统中即可。
    整体架构:
    ┌─────────────────────────────────────────────────────────────────────┐
    │                                                                     │
    │  你的系统                          Contract.Pro 开放平台              │
    │                                                                     │
    │  ┌──────────────┐                 ┌──────────────────────────────┐  │
    │  │  业务系统     │  API / SDK      │  Open API 服务               │  │
    │  │  (你开发)     │ ──────────────→ │  - 签署任务管理               │  │
    │  │              │ ←────────────── │  - Webhook 回调               │  │
    │  └──────┬───────┘                 │  - 文件下载                   │  │
    │         │                         └──────────┬───────────────────┘  │
    │         │ 嵌入 signUrl                        │                      │
    │         ▼                                    ▼                      │
    │  ┌──────────────┐                 ┌──────────────────────────────┐  │
    │  │  你的前端页面  │   iframe /      │  签署页面 (seal-core)         │  │
    │  │  (你开发)     │   WebView       │  (Contract.Pro 提供,开箱即用) │  │
    │  └──────────────┘                 └──────────────────────────────┘  │
    │                                                                     │
    └─────────────────────────────────────────────────────────────────────┘
    API 对接基本信息(当前已支持的接入方式):
    项目说明
    Base URLhttps://your-domain.com/open-api
    协议HTTPS
    数据格式JSON
    字符编码UTF-8

    接入方式选择#

    Contract.Pro 提供三种接入方式,适用于不同的业务场景和技术能力。请根据你的需求选择合适的方式。

    方式总览#

    接入方式接入难度开发周期适用场景签署页面当前状态
    API 对接★★☆1-3 天已有业务系统,需要嵌入签署能力使用 Contract.Pro 提供的签署页面(seal-core)✅ 已支持
    SDK 对接(Spring Boot Starter)★☆☆0.5-1 天Spring Boot 项目深度集成,将签署能力嵌入自己的系统使用 Contract.Pro 提供的签署页面(seal-core)✅ 已支持
    私有化部署★★★★1-2 周数据安全要求极高,需完全自主可控全部自有📋 企业版

    方式一:API 对接(本文档重点)#

    通过 HTTP RESTful API 直接调用 Contract.Pro 的签署服务。这是当前推荐的标准接入方式。
    工作原理:
    ┌─────────────────────────────────────────────────────────────────┐
    │  你需要开发的部分                                                  │
    │                                                                 │
    │  ┌──────────────┐    HTTP API    ┌──────────────────────────┐   │
    │  │  你的业务系统  │ ─────────────→ │  Contract.Pro Open API   │   │
    │  │              │ ←───────────── │  (后端服务)               │   │
    │  │  - 调用 API   │               └──────────┬───────────────┘   │
    │  │  - 处理回调   │                           │                   │
    │  │  - 业务页面   │                           │                   │
    │  └──────┬───────┘                           │                   │
    │         │                                   │                   │
    │         │ 嵌入 signUrl                       │                   │
    │         ▼                                   ▼                   │
    │  ┌──────────────┐               ┌──────────────────────────┐   │
    │  │  你的前端页面  │    iframe /   │  签署页面 (seal-core)     │   │
    │  │  (合同列表等) │    WebView    │  ← Contract.Pro 提供     │   │
    │  └──────────────┘               │  ← 你不需要开发这部分     │   │
    │                                 └──────────────────────────┘   │
    └─────────────────────────────────────────────────────────────────┘
    你需要开发:
    调用 Open API 的后端逻辑(创建任务、查询状态、处理 Webhook 回调)
    你自己系统内的业务页面(合同列表、状态展示、操作入口等)
    将签署链接(signUrl)嵌入到你的页面中(iframe / WebView / 直接跳转)
    你不需要开发:
    签署页面(seal-core 提供,包含 PDF 预览、签名绘制、印章盖章等全部签署交互)
    PDF 处理逻辑(合同生成、签章合成、文件存储等由 Contract.Pro 后端处理)
    短信通知(notifyChannel: "platform" 模式下由平台自动发送)
    适用场景:
    HR 系统集成合同签署功能
    CRM 系统嵌入合同签约流程
    ERP 系统对接采购/销售合同签署
    任何已有业务系统需要增加电子签署能力

    方式二:SDK 对接(Spring Boot Starter)#

    通过 Maven 依赖引入 yudao-module-seal-spring-boot-starter,将完整的电子签署能力嵌入你的 Spring Boot 项目。Seal 模块的 Controller、Service、数据访问层全部通过 Spring Boot 自动配置注册到你的应用中,数据存储在你自己的数据库里。
    本质上,SDK 对接 = 把 Seal 模块跑在你自己的 JVM 里,用你自己的数据库和存储。与 API 对接的区别是:API 对接调用的是远程服务,SDK 对接是本地方法调用。
    工作原理:
    ┌─────────────────────────────────────────────────────────────────┐
    │  你的 Spring Boot 项目                                           │
    │                                                                 │
    │  ┌──────────────────────────────────────────────────────────┐   │
    │  │  1. 添加 Maven 依赖                                       │   │
    │  │     yudao-module-seal-spring-boot-starter                │   │
    │  │     (自动传递依赖 seal-api + seal-biz)                    │   │
    │  └──────────────────────────────────────────────────────────┘   │
    │                          ↓                                      │
    │  ┌──────────────────────────────────────────────────────────┐   │
    │  │  2. 配置 application.yml(可选,Starter 已内置默认配置)    │   │
    │  │     yudao.seal.auth.type=jwt / oauth2 / custom            │   │
    │  │     yudao.seal.storage.type=local / oss / minio           │   │
    │  │                                                           │   │
    │  │     ℹ️ mode=starter 由 Starter JAR 内置配置自动设置,      │   │
    │  │        你不需要手动配置这个值                                │   │
    │  └──────────────────────────────────────────────────────────┘   │
    │                          ↓                                      │
    │  ┌──────────────────────────────────────────────────────────┐   │
    │  │  3. (可选) 实现自定义 SPI 接口                              │   │
    │  │     @Component                                            │   │
    │  │     class MyAuthProvider implements SealAuthProvider {...} │   │
    │  └──────────────────────────────────────────────────────────┘   │
    │                          ↓                                      │
    │  ┌──────────────────────────────────────────────────────────┐   │
    │  │  自动装配流程(引入 Starter 后自动完成)                     │   │
    │  │                                                           │   │
    │  │  Starter JAR 内置 mode=starter                            │   │
    │  │       ↓ 触发                                              │   │
    │  │  SealAutoConfiguration 生效                                │   │
    │  │       ↓ 扫描并注册                                         │   │
    │  │  ┌────────────┐  ┌────────────┐  ┌────────────────────┐  │   │
    │  │  │ 认证适配器  │→ │ Controller │→ │ Service + 数据层    │  │   │
    │  │  │ 存储适配器  │  │ 自动暴露   │  │ 自动注册            │  │   │
    │  │  │ 用户验证器  │  │            │  │                    │  │   │
    │  │  └────────────┘  └────────────┘  └────────────────────┘  │   │
    │  │                                                           │   │
    │  │  同时,seal-biz 通过 SealConfigurationLoader 自动加载      │   │
    │  │  application-seal.yaml(模块默认配置)                      │   │
    │  └──────────────────────────────────────────────────────────┘   │
    │                                                                 │
    │  你的数据库 (MySQL)  │  你的缓存 (Redis)  │  你的存储 (本地/OSS) │
    └─────────────────────────────────────────────────────────────────┘
    双模式架构说明:
    Seal 模块采用「双模式」设计,同一套代码支持两种运行方式:
    内部模式(direct)Starter 模式(starter)
    使用者Contract.Pro 自身(yudao-seal-server)第三方客户
    依赖方式直接依赖 seal-biz依赖 seal-spring-boot-starter
    模式值mode=direct(默认值,不设置即生效)mode=starter(Starter JAR 内置,自动生效)
    自动配置SealAutoConfiguration 不生效SealAutoConfiguration 生效
    认证方式Ruoyi Security 框架Starter 提供的适配器(JWT/OAuth2/自定义)
    配置加载application-seal.yaml(通过 SealConfigurationLoader)application-seal.yaml + Starter 内置 application.yml
    mode 的切换是自动的:引入 Starter 依赖 → Starter JAR 里的 application.yml 设置了 mode: starter → SealAutoConfiguration 的 @ConditionalOnProperty 条件满足 → 自动配置生效。你不需要手动设置 mode。
    前置条件:
    Java 1.8+ 的 Spring Boot 2.7.x 项目
    MySQL 5.7+ / 8.0+(需要导入 Seal 模块的数据表,SQL 脚本在 sql/ 目录)
    Redis 6.0+(用于缓存和分布式锁)
    Step 1:添加 Maven 依赖
    只需引入一个 Starter 依赖(它会自动传递依赖 seal-api 和 seal-biz):
    <dependency>
        <groupId>cn.iocoder.boot</groupId>
        <artifactId>yudao-module-seal-spring-boot-starter</artifactId>
        <version>${seal.version}</version>
    </dependency>
    seal-api 模块是开源的,包含所有 SPI 接口定义和标准 DTO。seal-biz 和 seal-spring-boot-starter 是闭源的商业模块。
    Step 2:配置 application.yml
    引入 Starter 依赖后,mode: starter 由 Starter JAR 内置配置自动设置,你不需要手动配置。你只需要根据自己的需求配置认证方式和存储方式:
    配置优先级:你的 application.yml > Starter 内置 application.yml > application-seal.yaml(模块默认配置)。你在自己的配置文件中设置的值会覆盖 Starter 和模块的默认值。
    Step 3(按需):实现自定义认证
    如果内置的 JWT / OAuth2 适配器不满足需求,实现 SealAuthProvider 接口:
    Step 4:导入数据库表结构,启动项目。
    启动成功后会看到 Seal 模块的 Banner 和配置信息日志:
      ____             _   ____            _
     / ___|  ___  __ _| | / ___| _   _ ___| |_ ___ _ __ ___
     \___ \ / _ \/ _` | | \___ \| | | / __| __/ _ \ '_ ` _ \
      ___) |  __/ (_| | |  ___) | |_| \__ \ ||  __/ | | | | |
     |____/ \___|\__,_|_| |____/ \__, |___/\__\___|_| |_| |_|
                                   |___/
     :: Seal电子印章系统 ::        (v2.0.0)
    
    Seal 模块配置信息:
      - 集成模式: starter (Starter自动配置已启用)
      - 认证方式: jwt
      - 存储方式: local
    核心 SPI 接口(全部定义在 seal-api 模块,开源):
    接口说明内置实现
    SealAuthProvider认证提供者,从 SealAuthContext 中提取用户信息JwtAuthAdapter、OAuth2AuthAdapter、RuoyiAuthAdapter
    SealStorageProvider文件存储,管理合同 PDF / 印章图片等文件LocalStorageAdapter、OssStorageAdapter、MinioStorageAdapter、RuoyiFileClientAdapter
    SealUserValidator用户验证器,校验 userId 是否存在且可用RuoyiUserValidator、NoOpUserValidator
    SealQuotaValidator配额验证器,校验签署配额是否充足RuoyiQuotaValidator、NoOpQuotaValidator
    SealSignTaskApi签署任务 API,可在代码中直接调用(创建任务、查询状态、下载文件)框架内置实现
    内置认证适配器及装配条件:
    适配器装配条件适用场景
    JwtAuthAdapteryudao.seal.auth.type=jwt标准 JWT Token 认证,从 Authorization: Bearer {jwt} 提取,JWT Payload 需包含 userId、tenantId
    OAuth2AuthAdapteryudao.seal.auth.type=oauth2Spring Security OAuth2 项目,从 SecurityContextHolder 获取认证信息
    RuoyiAuthAdapterclasspath 中存在 SecurityFrameworkUtils 类时自动启用Ruoyi-Vue-Pro 框架项目,直接从 Ruoyi 的 SecurityContext 获取 LoginUser
    自定义实现 SealAuthProvider 接口并注册为 @Component以上都不满足时,自行实现认证逻辑
    注意:RuoyiAuthAdapter 的装配条件是 @ConditionalOnClass(检测 classpath),不是配置项。如果你的项目引入了 Ruoyi Security 模块,它会自动生效,优先级高于配置的 type。
    内置存储适配器:
    适配器装配条件说明
    LocalStorageAdapteryudao.seal.storage.type=local本地磁盘存储,适合开发测试
    OssStorageAdapteryudao.seal.storage.type=oss阿里云 OSS,需配置 endpoint / accessKeyId / accessKeySecret / bucketName
    MinioStorageAdapteryudao.seal.storage.type=minioMinIO 对象存储,支持私有化部署,自动创建 Bucket
    RuoyiFileClientAdapter手动注入(需要 Ruoyi 的 FileClient Bean)复用 Ruoyi 框架的文件存储体系(支持 S3、FTP、SFTP、DB 等)
    完整配置参考(所有可配置项):
    SDK 对接与 API 对接的区别:
    对比项API 对接SDK 对接(Spring Boot Starter)
    集成方式HTTP RESTful 调用远程服务Maven 依赖,嵌入你的应用进程
    认证处理自行管理 AppKey/SecretKey/TokenSPI 接口自动适配你的认证体系
    数据存储数据在 Contract.Pro 平台数据在你自己的数据库
    文件存储由平台管理你自己选择存储方式(本地/OSS/MinIO)
    签署页面使用 seal-core(不变)使用 seal-core(不变)
    适用语言任何语言(HTTP 调用)仅 Java(Spring Boot 2.7.x)
    扩展性受限于 API 能力可深度定制(5 个 SPI 接口可扩展)
    数据隔离按 AppKey 隔离按你的租户体系隔离(tenantId)
    运维无需运维签署服务需要自行运维(数据库、Redis、存储)
    在代码中直接调用签署能力(SealSignTaskApi):
    SDK 模式下,你可以在代码中直接注入 SealSignTaskApi 调用签署能力,无需走 HTTP:
    附加能力:
    健康检查:集成 Spring Boot Actuator 后,访问 GET /actuator/health/seal 可查看 Seal 模块状态
    Bean 加载日志:启动时自动打印已加载的认证适配器和存储适配器
    License 验证:支持试用版(限时限量)和正式版(License 文件授权)
    示例项目:
    examples/ 目录下提供了 5 个开箱即用的示例项目:
    示例难度认证方式文件存储适用场景
    example-minimal⭐JWT本地快速验证,3 分钟启动
    example-springboot⭐⭐JWT阿里云 OSS标准 Spring Boot 生产项目
    example-ruoyi⭐⭐Ruoyi(自动检测)Ruoyi FileClientRuoyi-Vue-Pro 项目无缝集成
    example-microservice⭐⭐⭐OAuth2OSSSpring Cloud 微服务架构
    example-docker⭐⭐JWT本地/OSSDocker Compose 一键部署
    详细的 SDK 集成指南请参考 COMMERCIAL_INTEGRATION_GUIDE.md,示例项目说明请参考 examples/README.md。

    方式三:私有化部署(企业版)#

    将 Contract.Pro 整套系统部署到你自己的服务器,包括后端服务、签署页面、管理后台。适合对数据安全有极高要求的企业。
    包含内容:
    Contract.Pro 后端服务(ruoyi-vue-pro + yudao-module-seal)
    签署页面(seal-core)
    管理后台前端
    移动端应用(mini-contract,可选)
    部署文档和技术支持
    你需要准备:
    服务器环境(Linux + Docker / K8s)
    MySQL 5.7+ / 8.0+
    Redis 6.0+
    域名和 HTTPS 证书
    对象存储(OSS / MinIO,用于合同文件存储)
    快速体验: 可以先通过 examples/example-docker/ 中的 Docker Compose 示例快速搭建一套完整环境进行评估。
    私有化部署方案请联系商务团队:shawn@leepm.com

    如何选择?#

    你有自己的业务系统,想嵌入签署能力?
      └─ 是 → 你的项目是 Spring Boot 吗?
      │        └─ 是 → 方式二:SDK 对接(Spring Boot Starter,最省事)
      │        └─ 否 → 方式一:API 对接(通用方案,支持任何语言)
      └─ 否 → 你需要完全自主可控?
               └─ 是 → 方式三:私有化部署
               └─ 否 → 直接使用 Contract.Pro 平台即可,无需对接
    本文档后续内容以「方式一:API 对接」为主。SDK 对接的详细指南请参考 COMMERCIAL_INTEGRATION_GUIDE.md 和 examples/README.md。

    前置条件#

    在调用 Open API 之前,你需要在 Contract.Pro 管理后台完成以下准备工作。每一步都是必须的,缺少任何一步都会导致接口调用失败。

    前置条件一:拥有管理后台账号#

    你需要一个 Contract.Pro 管理后台的管理员账号。
    管理后台地址: https://your-domain.com/admin
    登录方式: 管理员账号密码登录
    所需权限: 需要拥有 seal:api-key:create、seal:template:create 等权限
    如果你是第三方开发者,请联系 Contract.Pro 的运营方为你开通管理后台账号并分配相应权限。

    前置条件二:创建 API 密钥(获取 AppKey / SecretKey)#

    API 密钥是调用 Open API 的身份凭证,所有接口都需要通过 AppKey + SecretKey 进行认证。
    操作路径: 管理后台 → API 密钥管理 → 创建密钥
    操作步骤:
    1.
    登录管理后台
    2.
    进入左侧菜单「API 密钥管理」
    3.
    点击「新增」按钮
    4.
    填写应用名称(如:HR系统对接、CRM集成),用于标识这组密钥的用途
    5.
    点击「确定」,系统自动生成 AppKey 和 SecretKey
    创建成功后你会得到:
    字段格式示例说明
    AppKeyak_xxxxxxxxxxxxxxxxAPI 密钥标识,可多次查看
    SecretKeysk_xxxxxxxxxxxxxxxxAPI 密钥密码,仅创建时展示一次
    ⚠️ 重要提醒: SecretKey 仅在创建时展示一次,之后无法再次查看。请在创建后立即复制并妥善保存到安全的地方(如密钥管理系统、加密配置文件)。如果遗失,只能删除后重新创建。
    密钥状态管理:
    状态值说明影响
    0启用(默认)正常调用 API
    1禁用所有使用该密钥的请求将返回 API_KEY_DISABLED 错误
    管理员可以随时在后台启用/禁用密钥,无需删除重建。

    前置条件三:创建合同模板(获取 templateId)#

    Open API 创建签署任务时必须指定一个合同模板。模板定义了合同的 PDF 内容、表单字段和签署位。
    操作路径: 管理后台 → 合同模板管理 → 创建模板
    操作步骤:
    1.
    进入左侧菜单「合同模板管理」
    2.
    点击「新增模板」
    3.
    上传合同 PDF 文件(或使用在线编辑器创建)
    4.
    配置表单字段(如:姓名、金额、日期等可填充字段)
    5.
    配置签署方(如:甲方、乙方)及签署位置
    6.
    发布模板
    创建成功后你会得到:
    字段说明
    templateId模板 ID(数字),创建签署任务时需要传入
    表单字段名列表模板中定义的可填充字段名,用于 formData 参数
    签署方列表模板中定义的签署方角色名(如「甲方」「乙方」),用于 participants.signatoryName 参数
    模板中的表单字段名和签署方角色名,在调用 API 创建签署任务时需要精确匹配。建议在模板创建完成后,记录这些信息供开发时使用。

    前置条件四(可选):配置 IP 白名单#

    为了提高安全性,可以为 API 密钥配置 IP 白名单。配置后,只有白名单内的 IP 地址才能调用 API。
    操作路径: 管理后台 → IP 白名单管理
    操作步骤:
    1.
    进入「IP 白名单管理」
    2.
    选择要配置的 API 密钥
    3.
    添加允许访问的 IP 地址
    支持的 IP 格式:
    格式示例说明
    单个 IP203.0.113.50精确匹配一个 IP
    CIDR 网段203.0.113.0/24匹配一个网段内的所有 IP
    如果不配置 IP 白名单,则不限制来源 IP(所有 IP 均可访问)。生产环境强烈建议配置。

    前置条件五(可选):准备 Webhook 回调地址#

    如果你希望实时接收签署状态变更通知(推荐),需要在你的系统中准备一个 HTTP(S) 回调接口。
    回调接口要求:
    要求说明
    协议建议 HTTPS,支持 HTTP
    方法POST
    响应时间必须在 10 秒内返回 HTTP 2xx
    公网可达回调地址必须能被 Contract.Pro 服务器访问到
    Webhook 配置可以在创建签署任务时通过 callbackUrl 参数指定(任务级别),也可以通过 API 配置全局 Webhook。详见 Webhook 回调 章节。

    接入检查清单#

    在开始编码之前,请确认以下事项全部就绪:
    ✅ 拥有管理后台账号,且有 API 密钥管理权限
    ✅ 已创建 API 密钥,拿到 AppKey(ak_xxx)和 SecretKey(sk_xxx)
    ✅ 已创建合同模板,拿到 templateId
    ✅ 已记录模板中的表单字段名和签署方角色名
    ✅ (可选)已配置 IP 白名单
    ✅ (可选)已准备好 Webhook 回调接口
    ✅ 确认你的服务器能访问 Contract.Pro 的 Open API 地址
    全部就绪后,按以下步骤接入:
    Step 1. 选择认证方式  →  简单模式 / Token 模式 / 签名模式(三选一)
    Step 2. 创建签署任务  →  POST /api/v1/seal/sign-tasks
    Step 3. 嵌入签署页面  →  将响应中的 signUrl 嵌入 iframe / WebView
    Step 4. 接收签署结果  →  Webhook 回调 或 主动轮询
    Step 5. 下载签署文件  →  GET /api/v1/seal/sign-tasks/{taskId}/download

    5 分钟跑通(简单模式)#

    最快的接入方式,每次请求直接带 AppKey + SecretKey:
    注意:templateId 和 signatoryName 必须与管理后台创建的模板一致,否则会报错。

    认证机制#

    Open API 提供三种认证方式,根据安全需求选择:
    模式安全级别适用场景前置条件
    简单模式★★☆测试、内网系统AppKey + SecretKey
    Token 模式★★★生产环境推荐AppKey + SecretKey
    签名模式★★★★高安全要求(金融等)AppKey + SecretKey + 签名算法实现
    三种模式都需要先在管理后台创建 API 密钥(见 前置条件二)。

    模式一:简单模式#

    每次请求在 Header 中同时携带 AppKey 和 SecretKey。
    请求头:
    Header 名必填示例值说明
    Seal-Api-Key是ak_xxxxxxxxxxxxxxxx管理后台创建的 AppKey
    Seal-Secret-Key是sk_xxxxxxxxxxxxxxxx管理后台创建的 SecretKey
    示例:
    优点: 接入最简单,无需额外逻辑
    缺点: SecretKey 每次传输,安全性相对较低
    适用: 测试环境、内网系统、快速验证

    模式二:Token 模式(推荐)#

    先用 AppKey + SecretKey 换取短期 Token(5 分钟有效),后续请求只带 Token。SecretKey 只在获取 Token 时传输一次。
    Step 1:获取 Token
    POST /api/v1/seal/auth/token
    Content-Type: application/x-www-form-urlencoded
    请求参数(form 表单):
    参数类型必填说明
    apiKeystring是管理后台创建的 AppKey(ak_xxx 格式)
    secretKeystring是管理后台创建的 SecretKey(sk_xxx 格式)
    noncestring是随机字符串(如 UUID),防重放攻击,10 分钟内不可重复
    请求示例:
    成功响应:
    {
      "code": 0,
      "data": {
        "accessToken": "eyJhbGciOiJIUzI1NiJ9...",
        "tokenType": "Bearer",
        "expiresIn": 300
      }
    }
    响应字段说明
    accessToken访问令牌,后续请求使用
    tokenType令牌类型,固定为 Bearer
    expiresIn有效期(秒),默认 300 秒(5 分钟)
    Step 2:使用 Token 调用业务接口
    后续所有业务接口在 Header 中携带:
    Header 名必填示例值说明
    Seal-Token是eyJhbGciOiJIUzI1NiJ9...Step 1 获取的 accessToken
    注意事项:
    Token 有效期 5 分钟,过期后需重新获取
    同一 AppKey 同时只有一个活跃 Token,获取新 Token 会使旧 Token 失效
    nonce 在 10 分钟内不可重复使用(防重放)
    建议在 Token 过期前 1 分钟刷新

    模式三:签名模式#

    对请求参数进行 MD5 签名,防止参数被篡改。适合对安全性要求最高的场景。
    请求头:
    Header 名必填示例值说明
    Seal-Api-Key是ak_xxxxxxxxxxxxxxxx管理后台创建的 AppKey
    Seal-Sign是5A8F3D2E1B4C7A9F...请求参数签名(大写 MD5)
    Seal-Timestamp是1708000000当前时间戳(秒),签名有效期 5 分钟
    签名算法(4 步):
    1. 收集所有请求参数(Query 参数 + Seal- 开头的请求头)
    2. 按参数名 ASCII 字典序排序
    3. 拼接为 key1=value1&key2=value2&...&key=sk_xxx(末尾拼接 SecretKey)
    4. 对拼接字符串计算 MD5,转大写 → 即为签名值
    Java 签名示例:
    注意事项:
    签名有效期 5 分钟(基于 Seal-Timestamp),超时返回签名无效
    签名模式下不需要 Token,每次请求独立签名
    需要你的系统实现签名算法

    通知策略#

    创建签署任务时,可以通过 notifyChannel 字段控制平台是否自动发送短信通知给签署人。
    值说明行为
    platform(默认)由平台通知创建任务后,平台自动发送短信给所有签署人,短信中包含签署短链接
    caller由调用方通知平台不发送任何短信,调用方通过 GET /sign-tasks/{taskId}/sign-links 获取签署链接后自行通知
    如何选择:
    场景推荐值原因
    快速集成,不想处理通知逻辑platform开箱即用,签署人自动收到短信
    有自己的通知渠道(企业微信、钉钉、邮件等)caller完全控制通知体验和内容
    需要自定义短信内容caller平台短信模板固定,自行发送可自定义
    内部系统,签署人通过系统内跳转caller无需短信,直接在系统内嵌入签署页面
    使用 caller 模式的完整流程:
    1. 创建签署任务时设置 notifyChannel: "caller"
    2. 从创建响应中获取各参与人的 signUrl
    3. 通过你自己的渠道将 signUrl 发送给签署人
    4. 签署人点击链接完成签署
    示例:
    {
      "name": "劳动合同",
      "templateId": 1,
      "notifyChannel": "caller",
      "participants": [
        {
          "signatoryName": "甲方",
          "userName": "张三",
          "userMobile": "13800138000"
        }
      ]
    }
    注意:即使设置 notifyChannel: "caller",签署过程中的状态变更通知(如签署完成)仍由平台发送。notifyChannel 仅控制创建任务时的初始邀请通知。

    签署任务 API#

    创建签署任务#

    基于合同模板创建签署任务,返回各参与人的签署链接。
    POST /api/v1/seal/sign-tasks
    前置条件:
    已完成认证(三种模式任选其一)
    已在管理后台创建合同模板,拿到 templateId
    已知模板中的签署方角色名(如「甲方」「乙方」)
    已知模板中的表单字段名(如果需要填充表单数据)
    请求体:
    {
      "name": "XX公司劳动合同",
      "templateId": 1024,
      "deadline": "2026-03-01 00:00:00",
      "formData": {
        "employeeName": "李四",
        "salary": "15000",
        "startDate": "2026-03-01"
      },
      "participants": [
        {
          "signatoryName": "甲方(公司)",
          "type": "enterprise",
          "companyName": "XX科技有限公司",
          "userName": "王总",
          "userMobile": "13900139000"
        },
        {
          "signatoryName": "乙方(员工)",
          "type": "personal",
          "userName": "李四",
          "userMobile": "13800138000"
        }
      ],
      "signSecurityLevel": 0,
      "notifyChannel": "platform",
      "callbackUrl": "https://your-system.com/webhook/sign"
    }
    请求体字段说明:
    字段类型必填默认值说明
    namestring是-任务名称,用于展示和检索
    templateIdlong是-合同模板 ID(管理后台创建模板后获得)
    deadlinestring否无截止时间,格式 yyyy-MM-dd HH:mm:ss,超时自动过期
    formDataobject否无模板表单填充数据,key 必须与模板中定义的字段名一致
    participantsarray是-签署参与人列表,至少 1 人
    signSecurityLevelint否00-快捷签署(点链接直接签),1-登录签署(需登录后签)
    notifyChannelstring否platform通知策略,详见 通知策略
    callbackUrlstring否无单任务回调地址(优先级高于全局 Webhook)
    participants 字段说明:
    字段类型必填说明
    signatoryNamestring是签署方角色名称,必须与模板中定义的签署方名称一致(如「甲方」「乙方」)
    typestring否personal(个人,默认)或 enterprise(企业)
    companyNamestring条件必填企业名称,type=enterprise 时必须填写
    userNamestring是签署人真实姓名
    userMobilestring是签署人手机号(用于身份匹配和通知)
    signatoryIdlong否模板签署方 ID,用于精确匹配模板中的签署位(不传则按 signatoryName 匹配)
    成功响应:
    {
      "code": 0,
      "data": {
        "taskId": 1024,
        "name": "XX公司劳动合同",
        "status": 2,
        "statusName": "签署中",
        "needFormFilling": false,
        "deadline": "2026-03-01 00:00:00",
        "createTime": "2026-02-12 10:30:00",
        "participants": [
          {
            "participantId": 1,
            "signatoryName": "甲方(公司)",
            "type": "enterprise",
            "userName": "王总",
            "userMobile": "139****9000",
            "status": 0,
            "signUrl": "https://seal.example.com/s/abc123"
          },
          {
            "participantId": 2,
            "signatoryName": "乙方(员工)",
            "type": "personal",
            "userName": "李四",
            "userMobile": "138****8000",
            "status": 0,
            "signUrl": "https://seal.example.com/s/def456"
          }
        ]
      }
    }
    手机号在响应中自动脱敏(中间 4 位替换为 ****)。signUrl 可直接嵌入 iframe 或在 WebView 中打开。
    常见错误:
    错误原因解决方案
    合同模板ID不能为空未传 templateId检查请求体
    模板不存在templateId 不正确在管理后台确认模板 ID
    签署方角色名称不匹配signatoryName 与模板不一致在管理后台查看模板的签署方配置
    签署参与人列表不能为空participants 为空至少传入 1 个参与人

    查询签署任务#

    GET /api/v1/seal/sign-tasks/{taskId}
    前置条件: 已完成认证;taskId 必须是当前 AppKey 创建的任务(数据隔离)
    路径参数:
    参数类型说明
    taskIdlong签署任务 ID(创建任务时返回的 taskId)
    成功响应:
    {
      "code": 0,
      "data": {
        "taskId": 1024,
        "name": "XX公司劳动合同",
        "status": 3,
        "statusName": "已完成",
        "createTime": "2026-02-12 10:30:00",
        "signedFileUrl": "https://oss.example.com/signed/contract-1024.pdf",
        "participants": [
          {
            "participantId": 1,
            "signatoryName": "甲方(公司)",
            "userName": "王总",
            "status": 1,
            "signTime": "2026-02-12 11:00:00"
          }
        ]
      }
    }
    任务状态码:
    status说明可执行操作
    2签署中可撤销、可获取签署链接
    3已完成(所有人签署完毕)可下载签署文件
    4已撤销无
    5已拒签无
    6已过期无
    7表单填写中等待表单填写完成
    参与人状态码:
    status说明
    0待签署
    1已签署
    2已拒签

    撤销签署任务#

    撤销进行中的签署任务。已完成的任务无法撤销。
    POST /api/v1/seal/sign-tasks/{taskId}/cancel
    前置条件: 已完成认证;任务状态必须为「签署中」(status=2)
    成功响应:
    { "code": 0, "data": true }

    获取签署链接#

    签署链接过期后可重新获取。仅返回待签署参与人的链接。
    GET /api/v1/seal/sign-tasks/{taskId}/sign-links
    前置条件: 已完成认证;任务状态必须为「签署中」(status=2)
    使用场景:
    notifyChannel: "caller" 模式下,获取链接后通过自己的渠道发送
    签署链接过期后重新获取
    签署人反馈链接无法打开时重新生成
    成功响应:
    {
      "code": 0,
      "data": [
        {
          "participantId": 2,
          "signatoryName": "乙方(员工)",
          "userName": "李四",
          "status": 0,
          "signUrl": "https://seal.example.com/s/new-link-789"
        }
      ]
    }
    已签署的参与人不会出现在响应中。

    下载已签署文件#

    获取签署完成后的合同 PDF 文件下载地址。
    GET /api/v1/seal/sign-tasks/{taskId}/download
    前置条件: 已完成认证;任务状态必须为「已完成」(status=3)
    成功响应:
    {
      "code": 0,
      "data": "https://oss.example.com/signed/contract-1024.pdf"
    }
    返回的 URL 为 OSS 预签名地址,有一定有效期。建议获取后尽快下载或转存。

    Webhook 回调#

    前置条件#

    使用 Webhook 前,你需要:
    1.
    在你的系统中实现一个 HTTP(S) POST 接口,用于接收回调通知
    2.
    该接口必须公网可达(Contract.Pro 服务器需要能访问到)
    3.
    该接口必须在 10 秒内返回 HTTP 2xx 状态码

    配置方式#

    有两种方式配置 Webhook,可以同时使用:
    方式配置方法生效范围优先级
    任务级别创建签署任务时传入 callbackUrl 参数仅对该任务生效高
    全局级别调用 Webhook 配置 API对该 AppKey 下所有任务生效低
    如果同时配置了两种,任务级别的 callbackUrl 优先。

    配置全局 Webhook#

    前置条件: 已完成认证(Token 模式或简单模式)
    创建/更新:
    POST /api/v1/seal/webhooks
    Content-Type: application/json
    {
      "callbackUrl": "https://your-system.com/webhook/seal",
      "secret": "your-hmac-secret",
      "subscribedEvents": "sign_completed,sign_rejected,sign_cancelled"
    }
    字段类型必填说明
    callbackUrlstring是回调地址,建议 HTTPS
    secretstring否HMAC-SHA256 签名密钥,为空则系统自动生成(建议自行指定)
    subscribedEventsstring否订阅事件(逗号分隔),为空则订阅全部事件
    查询配置:
    GET /api/v1/seal/webhooks
    删除配置:
    DELETE /api/v1/seal/webhooks

    回调事件类型#

    事件说明触发时机
    sign_completed签署完成所有参与人完成签署
    sign_rejected签署拒绝任一参与人拒签
    sign_cancelled签署撤销发起人撤销任务

    回调请求格式#

    Contract.Pro 会向你的回调地址发送如下 POST 请求:
    请求头:
    Header说明
    Content-Typeapplication/json
    X-Seal-SignatureHMAC-SHA256 签名(用于验证请求来源)
    X-Seal-Event事件类型(如 sign_completed)
    X-Seal-Timestamp时间戳(毫秒)
    请求体:
    {
      "eventType": "sign_completed",
      "taskId": 1024,
      "taskName": "XX公司劳动合同",
      "status": 3,
      "timestamp": 1707724800000,
      "signedFileUrl": "https://oss.example.com/signed/contract-1024.pdf"
    }
    signedFileUrl 仅在 sign_completed 事件中返回。

    验证回调签名#

    为了确保回调请求确实来自 Contract.Pro(而非伪造),你应该验证 X-Seal-Signature。
    验证逻辑: 使用你配置的 secret 对请求体(原始 JSON 字符串)进行 HMAC-SHA256 计算,与 X-Seal-Signature 比对。
    Java:
    Python:
    Node.js:

    回调响应要求#

    你的回调接口必须:
    在 10 秒内 返回 HTTP 2xx 状态码(如 200)
    响应体内容不限(Contract.Pro 不解析响应体)
    非 2xx 或超时视为失败,触发重试

    重试策略#

    次数延迟说明
    第 1 次重试1 分钟后首次失败后
    第 2 次重试5 分钟后指数退避
    第 3 次重试30 分钟后最后一次
    超过 3 次仍失败则放弃。你可以通过 GET /api/v1/seal/sign-tasks/{taskId} 主动轮询最终状态作为兜底方案。

    签署页面嵌入#

    创建签署任务后,响应中每个参与人会返回 signUrl,将此 URL 嵌入你的系统即可。

    前置条件#

    已通过 API 创建签署任务并获得 signUrl
    你的页面支持 iframe(Web)或 WebView(移动端)
    签署页面域名已在浏览器/WebView 的安全策略中放行

    iframe 嵌入(Web)#

    allow="camera; microphone" 用于支持人脸识别等高级验证场景。

    WebView 嵌入(移动端)#

    Android:
    iOS (WKWebView):
    uni-app:

    签署安全级别#

    创建任务时通过 signSecurityLevel 控制签署人的验证方式:
    级别值用户体验适用场景
    快捷签署0点击链接直接进入签署页,无需登录内部合同、低风险场景
    登录签署1需要登录 + 实名认证后才能签署外部合同、高安全要求

    安全机制#

    数据隔离#

    每个 AppKey 创建的签署任务相互隔离:
    只能查询、操作自己创建的任务
    无法访问其他 AppKey 或平台用户创建的任务
    Webhook 配置也按 AppKey 隔离

    IP 白名单#

    管理员可在后台为每个 AppKey 配置 IP 白名单(见 前置条件四)。
    未配置白名单时,不限制来源 IP
    配置后,只有白名单内的 IP 才能调用 API
    不在白名单内的请求返回 AUTH_IP_NOT_ALLOWED 错误

    请求限流#

    维度限制说明
    单接口10 req/s每个 AppKey 对单个接口的请求频率
    全局50 req/s每个 AppKey 的总请求频率
    超过限流阈值返回 AUTH_RATE_LIMIT_EXCEEDED 错误(HTTP 429)。建议客户端实现指数退避重试。

    Nonce 防重放#

    Token 模式下,获取 Token 时的 nonce 参数在 10 分钟内不可重复使用,防止请求被截获后重放。

    状态码与错误处理#

    统一响应格式#

    所有接口返回统一的 JSON 格式:
    {
      "code": 0,
      "msg": "",
      "data": {}
    }
    code = 0:成功
    code != 0:失败,msg 包含错误描述

    常见错误码#

    code说明常见原因处理建议
    0成功--
    400请求参数错误缺少必填字段、格式不正确检查请求体字段
    401认证失败Token 无效/过期、AppKey/SecretKey 错误检查凭证,重新获取 Token
    403无权限任务不属于当前 AppKey、IP 不在白名单检查数据归属和 IP 配置
    404资源不存在taskId 不存在或已被删除检查 taskId
    429请求频率超限超过限流阈值降低请求频率,实现退避重试
    500服务器内部错误系统异常联系技术支持

    认证相关错误码#

    错误标识说明处理建议
    API_KEY_NOT_EXISTSAppKey 不存在检查 Seal-Api-Key header 值是否正确
    API_KEY_DISABLEDAppKey 已被禁用联系管理员在后台启用
    AUTH_TOKEN_INVALIDToken 无效或已过期重新调用 /auth/token 获取新 Token
    AUTH_SIGNATURE_INVALID签名验证失败检查签名算法实现和 SecretKey
    AUTH_IP_NOT_ALLOWEDIP 不在白名单联系管理员添加你的服务器 IP
    AUTH_RATE_LIMIT_EXCEEDED请求频率超限降低请求频率
    AUTH_PARAM_MISSING缺少认证参数检查是否携带了认证 Header

    完整集成示例#

    Java (OkHttp)#

    前置条件: 已获取 AppKey、SecretKey、templateId

    Python (requests)#

    前置条件: pip install requests,已获取 AppKey、SecretKey、templateId

    cURL 完整流程#


    FAQ#

    Q1: AppKey / SecretKey 在哪里获取?
    管理后台 → API 密钥管理 → 点击「新增」→ 填写应用名称 → 确定。系统自动生成 AppKey 和 SecretKey。SecretKey 仅在创建时展示一次,请立即复制保存。详见 前置条件二。
    Q2: templateId 在哪里获取?
    管理后台 → 合同模板管理 → 找到你要使用的模板 → 模板 ID 即为 templateId。如果还没有模板,需要先创建。详见 前置条件三。
    Q3: 三种认证模式该选哪个?
    场景推荐模式
    测试阶段、快速验证简单模式
    生产环境Token 模式(推荐)
    金融、法律等高安全场景签名模式
    Q4: Token 过期了怎么办?
    重新调用 POST /api/v1/seal/auth/token 获取新 Token。建议在过期前 1 分钟刷新。Token 有效期 5 分钟(300 秒)。
    Q5: 创建任务后签署人没收到短信?
    检查 notifyChannel 参数:
    如果设置为 caller,平台不会发短信,需要你自己获取签署链接并通知签署人
    如果设置为 platform(或不传),平台会自动发短信
    如果是 platform 模式仍未收到,请检查手机号是否正确
    Q6: 如何知道签署完成了?
    两种方式:
    1.
    配置 Webhook 接收 sign_completed 事件(推荐,实时性好)
    2.
    定时轮询 GET /sign-tasks/{taskId} 查看 status 是否变为 3
    Q7: 签署链接有效期多久?
    签署链接基于 JWT Token,默认有效期 7 天。过期后可通过 GET /sign-tasks/{taskId}/sign-links 重新获取。
    Q8: 能否在创建任务时不指定模板,直接上传 PDF?
    当前版本需要先在管理后台创建模板,再通过 templateId 引用。后续版本将支持直接上传 PDF。
    Q9: 一个 AppKey 能创建多少任务?
    无数量限制。请求频率限制为单接口 10 req/s,全局 50 req/s。
    Q10: 报错「签署方角色名称不匹配」怎么办?
    participants 中的 signatoryName 必须与模板中定义的签署方名称完全一致。请在管理后台查看模板的签署方配置,确认角色名称(如「甲方」「乙方」)是否匹配。
    Q11: 报错「API_KEY_NOT_EXISTS」怎么办?
    检查 Seal-Api-Key header 的值是否正确。确认:
    1.
    AppKey 格式为 ak_xxx
    2.
    在管理后台确认该密钥存在且状态为「启用」
    3.
    Header 名称是 Seal-Api-Key(注意大小写和连字符)
    Q12: 报错「AUTH_IP_NOT_ALLOWED」怎么办?
    你的服务器 IP 不在白名单中。联系管理员在后台「IP 白名单管理」中添加你的服务器出口 IP。如果不确定出口 IP,可以先让管理员清空白名单(不配置白名单 = 不限制 IP)。

    技术支持#

    邮件:shawn@leepm.com
    API 文档(Swagger):https://your-domain.com/doc.html
    GitHub Issues:https://github.com/YunaiV/ruoyi-vue-pro/issues
    修改于 2026-02-14 04:13:02
    上一页
    简介
    下一页
    验证短链接(返回签署模式)
    Built with