e签宝 Skill
把 e签宝开放平台 SaaS API V3 文档整理成 Agent 能照着写代码的手册,覆盖请求签名、文件上传与模板、签署流程、认证授权、回调与错误码。重点标出凭别家经验容易写错的地方,并用无凭证探测核对了网关的鉴权报错。
安装
选你用的 Agent,复制命令。
npx -y skills add fxp/skillify --skill esign --agent claude-code --yes装到项目的 .claude/skills/;加 -g 装到全局。装完需要你手动执行 /reload-plugins,这一步 Agent 代劳不了。
npx -y skills add fxp/skillify --skill esign --agent codex --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill esign --agent cursor --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill esign --agent opencode --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill esign --agent gemini-cli --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill esign --agent github-copilot --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill esign --agent trae --yes装到项目的 .trae/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill esign --agent windsurf --yes装到项目的 .windsurf/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill esign --agent qwen-code --yes把 --agent 换成你用的 Agent 标识,可以一次写多个。skills CLI 1.5.25 共支持 79 个,例如 qwen-code、kimi-code-cli、trae-cn、qoder、lingma、cline、roo。
或者让 Agent 自己装
读 https://github.com/fxp/skillify/blob/main/skills/esign/prompt.md 并照它执行装对了的标志:references/ 下有 6 份文档。
装好后,可以这样问你的 Agent
这份 Skill 覆盖的典型任务。点一下复制。
6 类能力
每类能力对应一份 reference,Agent 按任务只打开需要的那份。
鉴权与请求签名
环境与白名单、X-Tsign-Open-* 请求头、待签名串、Content-MD5、Python 与 curl 封装
文件上传与模板填充
获取上传地址、PUT 文件流、状态轮询、关键字定位、合同模板制作与填充
签署流程
基于文件发起、签署方与签署区、签署链接、查询、撤销、完结、延期催签、下载
认证与授权
个人与机构实名认证、授权范围、查询 psnId 与 orgId、认证授权流程详情
回调通知与验签
Webhook 与 notifyUrl、验签、5 秒响应与重试、幂等、事件对照
错误码与限制
网关 401 细分、签署 / 文件 / 认证业务码、各类限制、重试策略
当前事实
整理自官方文档(抓取于 2026-09-11),还没有用真实凭证验证。
| 项 | 值 |
|---|---|
| Base URL | 正式 https://openapi.esign.cn;沙箱 https://smlopenapi.esign.cn,两套 AppId 不通用 |
| 签名 | Base64(HmacSHA256(AppSecret, 7 行待签名串)),放在 X-Tsign-Open-Ca-Signature |
| Content-MD5 | Base64(MD5 原始字节),不是 hex;与发送的 body 字节一致 |
| 成功判定 | code == 0;网关鉴权失败是 HTTP 401 |
| 前置条件 | 调用方出口 IP 必须加入应用白名单,不能再填 * |
照通用经验写容易错的 6 件事
来自官方文档,还没有用真实凭证验证。
- 签名串是 7 行换行拼接。方法、Accept、Content-MD5、Content-Type、Date、[Headers]、路径加查询,Date 为空也要留空行,输出 Base64。
- 漏传 Auth-Mode 会被当成 token 模式。不带
X-Tsign-Open-Auth-Mode: Signature时网关报TOKEN_CANT_BE_NULL。 - 上传文件要三步。拿上传地址、PUT 到 OSS、轮询到
fileStatus为 2 或 5 才能发起签署。 - 签完不会自动完成。
autoFinish默认 false,不调/finish就没有完成回调,也下载不了合同。 - 默认不发通知。
noticeTypes默认为空,要 e签宝发短信就显式传"1",否则自己取签署链接。 - 回调验签是另一套算法。对时间戳、回调地址的查询值和原始 body 做 HmacSHA256,输出小写 hex。
无凭证探测
- 正式与沙箱两个域名都在线;伪造 appId 的签名请求返回 HTTP 401 +
{"success":false,"code":401,"message":"无效的应用"} - 漏传
X-Tsign-Open-Auth-Mode(或不带任何鉴权头)返回TOKEN_CANT_BE_NULL,网关默认按 token 模式处理 - 不存在的路径和 20 分钟前的时间戳在伪造 appId 下同样返回“无效的应用”:先校验应用,后路由、后校验时间戳
- OAuth 换 token 接口的失败走 HTTP 200 +
72000032,与网关 401 不同,且该码不在文档错误码页里