第三方集成概述

概述

通过 OAuth 授权与 WebView 内嵌方式,将 Tencent eSign 电子签署能力集成到第三方应用。本指南面向集成方研发团队,覆盖从凭证准备到内嵌页集成的完整流程。

集成场景

集成方应用在工具栏或推广入口处嵌入两个功能入口:

  • 发起签署 — 集成方应用完成 OAuth 授权后,调用 上传文件 拿到 FileId,再调用 获取内嵌页 URLFileId 绑定到内嵌页 URL,最后用 WebView 打开内嵌页完成创建签署流程(设置接收人 → 放置签名区域 → 发送)
  • 签署状态 — 换取内嵌页 URL,WebView 直接显示当前账号在选定 Space 下的合同列表

内嵌页面由 Tencent eSign 提供,支持集成方品牌定制(详见 内嵌页交互 - 品牌定制),通过 webview token 与 Tencent eSign 服务端交互。

接入模式

模式当前支持说明
WebView 内嵌已支持集成方提供入口与文件,UI 由 Tencent eSign 内嵌页承载
纯 API(Headless)规划中集成方自行实现发起人 UI;当前不在本指南覆盖范围
仅签署嵌入(接收方 UI)规划中仅在收件人侧使用 Tencent eSign 内嵌签署页
ℹ️

当本指南流程不能满足业务需求时,请联系 Tencent eSign 商务或技术对接同学评估其他接入模式。

OAuth 授权模式

本指南支持两种授权模式,适用于不同集成场景:

  • 开放模式(默认) — 面向 C 端用户,每个邮箱可独立发起授权,Space 由用户在 Consent 页自行选择或系统自动创建,授权 URL 无需传 space_id
  • 指定 Space 模式 — 面向企业/组织场景,授权对象限定在集成方预先指定的 Space,需配合 预添加成员 接口预添加成员,授权 URL 同时传入 space_id + login_hint,详见 OAuth 授权流程 - 指定 Space 模式

核心概念

术语说明
集成方接入 Tencent eSign 的第三方厂商;本指南中默认指代集成方研发团队/工程主体
集成方应用集成方提供给最终用户使用的应用程序(含其前端与后端,不区分进程边界)。本指南统一以”集成方应用”指代调用 Open API 的一方
集成应用 / 应用安装Tencent eSign 侧的 OAuth 应用注册条目;“安装”指 Space 同意接入该 OAuth 应用,与”集成方应用”不同——前者是 Tencent eSign 侧的资源记录,后者是集成方自己的程序
SpaceTencent eSign 多租户空间,有两种语义:(a) 集成方 Space — 集成方在控制台注册账户时创建,用于发布 OAuth App 与绑定计费资源包;(b) 用户 Space — 终端签署用户用于发起/接收签署、安装第三方 App。两者数据相互独立。后文如未特别标注,“Space” 默认指 (b) 用户 Space
集成方 Space集成方注册控制台账户后创建的 Space,仅用于 App 发布与计费;不参与 OAuth 授权流程中”用户选择 Space”步骤
管理员 / 普通成员(用户)Space 内的两类角色。仅管理员有权为 Space 安装第三方集成应用;普通成员可使用已安装的应用发起签署
OAuth 客户端OAuth 协议术语,指持有 client_id / client_secret 的一方,本接入中即集成方应用
client_id / client_secretOAuth 客户端凭证,由集成方在控制台集成方 Space 下创建 OAuth App 时生成
PKCEOAuth 2.1 防中间人扩展(code_verifier / code_challenge)。OAuth 客户端生成随机 code_verifier,对其取 SHA-256 后 base64url 编码得到 code_challenge。授权时传 code_challenge,换 token 时传 code_verifier 验证一致性
access_tokenOAuth 访问令牌,用于调用 Tencent eSign Open API(如换取 webview URL)。有效期 1 小时
refresh_token用于在 access_token 过期后换取新 access_token,永久有效,刷新后新值替换旧值(滚动刷新,详见 OAuth 授权流程 - Token 生命周期
webview token一次性签发的内嵌页会话令牌,绑定 user_id + space_id + app_id + 页面类型 + OperateParam,有效期由服务端定义。仅用于内嵌页与 Tencent eSign 服务端的交互
WebView集成方应用内嵌的浏览器组件,用于加载 Tencent eSign Consent 页与内嵌页
Consent 页用户授权同意页面,由 Tencent eSign 提供
内嵌页集成方在 WebView 中加载的 Tencent eSign 业务页(发起签署 / 签署状态)
ℹ️

信封(Envelope)、接收人(Recipient)、签署控件(Tab)等签署流程核心概念详见 信封签署 - 场景说明

关键约束

  1. 集成方走**第三方应用模式(third_party app)**接入
  2. 集成方先在 Tencent eSign 控制台自助注册账户(创建集成方 Space),由该 Space 管理员在控制台创建 OAuth App,控制台直接生成 client_id / client_secret多地域场景下集成方需在每个地域分别注册并各自创建 App,凭证按地域隔离不通用(计费资源包同样按地域闭环)
  3. 用户首次接入(双模式)
    • 开放模式 — 集成方可在打开授权页时传入 login_hint(用户邮箱)供授权页预填;若该邮箱尚未在 Tencent eSign 注册,系统自动静默完成注册并创建默认 Space(该用户为管理员)。不需传 space_id,由用户在授权页自行选择 Space
    • 指定 Space 模式 — 集成方同时传入 space_id + login_hint,系统不自动创建 Space;用户必须已通过 预添加成员 接口被预添加为该 Space 的待激活成员,授权时点「同意」即视为接受邀请并完成激活。详见 OAuth 授权流程 - 指定 Space 模式
  4. 应用自动安装 — 用户在 Consent 页完成授权时,若当前 Space 尚未安装该集成应用且用户是管理员,Tencent eSign 自动完成安装,对用户无感
  5. 文件由集成方应用调用 上传文件 接口拿到 FileId 后,通过 获取内嵌页 URL 接口的 OperateParam.FileIds 绑定到 webview token,内嵌页加载即可使用

职责分工

集成方负责

阶段功能说明
接入前控制台账户与 App 管理注册集成方 Space、创建 OAuth App、获取 / 重置 client_secret、绑定计费资源包;多地域逐一注册
运行时应用 UI 入口在工具栏 / 推广位添加发起签署 / 签署状态按钮
运行时PKCE 生成集成方应用生成 code_verifier / code_challenge
运行时OAuth 授权发起WebView 打开授权 URL,拦截自定义协议回调拿 auth code
运行时成员预添加(指定 Space 模式)调用 预添加成员 接口预添加目标用户为待激活成员
运行时token 换取与持久化调用 令牌端点 换 access_token + refresh_token,按自身安全要求保管
运行时token 刷新access_token 过期前主动刷新
运行时内嵌页 URL 获取调用 获取内嵌页 URL 接口
运行时WebView 弹窗容器加载 Tencent eSign 内嵌页
运行时文件上传与传入集成方应用调用 上传文件FileId,再通过 OperateParam.FileIds 绑定到 webview token
运行时自定义协议处理签署完成深链接跳转与未安装回退(详见 内嵌页交互 - 签署完成后跳转

Tencent eSign 负责

功能说明
OAuth 授权页支持 login_hint / lang 预填;展示 Space 列表与角色
应用自动安装管理员首次授权时自动完成应用安装
内嵌页 URL 下发验证 access_token,签发 webview token
webview token 验证解出 user_id / space_id / 页面类型
信封创建与发送内嵌页完成接收人/控件配置后发送
品牌定制按集成方提交的品牌定制信息渲染内嵌页(详见 内嵌页交互 - 品牌定制

涉及接口