订阅流程
复制页面
智书合同API
智书开放平台概述
开发对接流程
基本概念
应用鉴权
用户身份体系
对接方式
选择对接方式
【识别用户身份】选择自建应用的方式快速对接
智书开平与飞书开平对接差异
智书合同新用户流程差异
从飞书合同迁移到智书合同流程差异
API调用指南
API列表
频控策略
调用流程
流程概述
获取访问凭证
调用API
事件订阅
事件概述
事件列表
订阅流程
获取 Encrypt Key
获取 Verification Token
添加事件
接收并处理事件
配置订阅方式
认证及授权
获取访问凭证
获取 tenant_access_token
智书合同
合同类型
查询合同类型目录
模版管理
查看模板列表
创建模版实例
查看模版详情
文件管理
上传合同相关文件
下载合同相关文件
合同管理
事件
协商事件
合同信息变更
合同状态变更
合同分享事件
取消合同分享事件
form表单、币种、国家说明
合同创建Form组件说明
币种说明
国家地区编码
创建合同
删除草稿合同
提交合同
重新提交合同
更新合同
更新合同字段信息
查看合同详情
搜索合同
搜索合同-V2
根据合同编号查询
合同协商操作记录信息查询
合同电子签转纸质签
查询合同分享记录
获取合同流程字段
开平接口获取签署链接
付款
事件
合同新建付款
创建付款申请
更新付款信息
查看付款信息
查询付款申请列表
付款计划
同步付款记录
搜索付款计划
付款记录
创建付款记录
更新付款记录
查询付款记录详情
根据付款计划id查询付款记录
审批管理
发起流程审批
查询审批实例详情
合同权限管理
授予合同权限
合同分享
文件
生成合同打印文件
合同协商
查询合同协商邀请链接
获取最新协商文件信息
下载协商文件
查询协商列表
电子签
获取个人认证&授权页面链接
获取机构认证&授权页面链接
审批事件
审批-待办任务变更
审批-抄送、知会状态变更
事件ip
获取事件出口IP
审批矩阵
矩阵-预发布规则表配置
矩阵-发布规则表配置
矩阵-查询规则表列表
矩阵-查询规则表列头信息
矩阵-创建规则表行
矩阵-删除规则表行
矩阵-修改规则表行
矩阵-根据行ID查询规则表单行信息
矩阵-根据筛选条件查询规则表行信息列表
矩阵-查询规则表行信息列表
智书主数据
固定汇率
更新固定汇率
查询固定汇率
交易方
事件
交易方-基础信息变更
交易方-公司视图变更
交易方-联系人变更
交易方-经营地址变更
交易方-银行账户变更
创建交易方
更新交易方
获取交易方
获取单个交易方信息
获取交易方全量数据
根据证件id精确查询交易方
字段配置查询
法人实体
创建法人实体
更新法人实体信息
获取法人实体
获取单个法人实体信息
获取法人实体全量数据
文件
下载主数据附件
第三方系统相关配置
关联单据
关联前置单据
外部数据回填
表单字段回填
关联第三方系统审批单据/前置单据
外部校验
外部校验
订阅流程
复制页面
接收并处理事件
为了提升事件订阅的安全性,接收到开放平台推送的事件后,可以进行安全校验。如果是加密事件,需要先解密事件,再解析事件详情。
安全校验
#
业务方收到开放平台推送的事件时(不包括请求网址校验),如果需要确保这个请求的来源是开放平台而非伪造,有两种方式进行安全校验:Verification Token 校验和签名校验。
Verification Token 校验
#
这种校验方式简单,但是安全性较低:
如果是加密事件,需要解密和解析事件,获取 Verification Token 进行校验。
请参考本文下方的事件解密,了解如何解密事件;可以向智书客服询问并且索要 Verification Token,并且与事件中解析出的 Verification Token 进行对比。
如果是未加密事件,需要解析事件,获取 Verification Token 进行校验。明文传输会有 Verification Token 泄露风险。
签名校验
#
这种校验方式相对复杂,但是安全性高,不需要解密和解析事件。校验方式如下:
向智书客服询问并且索要 encrypt_key。
1.
校验请求来源:
将请求头 X-Lark-Request-Timestamp、X-Lark-Request-Nonce 与 encrypt_key 拼接后 按照 encode('utf-8') 编码得到 byte[] b1,再拼接上请求的原始 body, 得到一个 byte[] b。
将 b 用 sha256 算法得到字符串 s, 校验 s 是否和请求头 X-Lark-Signature 一致。
示例代码
#
下面的示例代码,包括如下参数:
timestamp:对应请求头中的 X-Lark-Request-Timestamp。
nonce:对应请求头中的 X-Lark-Request-Nonce。
encrypt_key:从开发者后台获取的 Encrypt Key。有关 Encrypt Key 的详细介绍,可以参考
获取 Encrypt Key
。
Python 3
#
Java
#
Golang
#
Node.js
#
C#
#
PHP
#
事件解密
#
加密原理
#
事件内容采用 AES-256-CBC 加密,加密原理如下:
1.
使用 SHA256 对 Encrypt Key进行哈希得到密钥key。
2.
使用 PKCS7Padding 方式将事件内容进行填充。
3.
生成 16 字节的随机数作为初始向量 iv。
4.
使用 iv 和 key 对事件内容加密得到 encrypted_event。
5.
应用收到的密文为 base64(iv+encrypted_event)。
示例代码
#
当订阅的消息事件发生时,就会触发回调,应用将收到加密的事件内容,请参考下面的示例代码进行事件解密,获取事件内容。
Python 3
#
请先执行 pip install pycryptodome 以支持引入 AES 方法
Java
#
Golang
#
Node.js
#
C#
#
PHP
#
事件解密
#
加密原理
#
事件内容采用 AES-256-CBC 加密,加密原理如下:
1.
使用 SHA256 对 Encrypt Key进行哈希得到密钥key。
2.
使用 PKCS7Padding 方式将事件内容进行填充。
3.
生成 16 字节的随机数作为初始向量 iv。
4.
使用 iv 和 key 对事件内容加密得到 encrypted_event。
5.
应用收到的密文为 base64(iv+encrypted_event)。
示例代码
#
当订阅的消息事件发生时,就会触发回调,应用将收到加密的事件内容,请参考下面的示例代码进行事件解密,获取事件内容。
Python 3
#
请先执行 pip install pycryptodome 以支持引入 AES 方法
Java
#
Golang
#
Node.js
#
C#
#
PHP
#
修改于
2026-05-28 02:33:22
上一页
添加事件
下一页
配置订阅方式