20分钟内集成电子签名
了解如何在不到20分钟内集成电子签名API:创建请求、发送链接、接收已签名webhook并获取已签名PDF。
将电子签名集成到您的应用程序中并不需要数周的开发。借助设计良好的API,您可以在几分钟内提供签名功能。本教程将逐步向您展示如何使用Sign-Hub创建签名请求、将链接发送给签署人、接收已签名通知并获取已签名文档。我们还将讨论关键的安全与合规方面。
为什么要集成电子签名?
电子签名已成为合同、报价单或任何需要验证的文档的标准。将其集成到您的应用程序中可以避免打印、扫描和邮寄的往返。对于开发者来说,这意味着自动化业务流程并为最终用户提供流畅的体验。
Sign-Hub API 概览
Sign-Hub 是由 NEW VISION OF APPS(SAS,Janzé,法国)提供的电子签名服务。它定位为 API-first 解决方案:所有功能均可通过 REST API 访问。只需一个路由即可创建签名请求。随后,该服务负责发送电子邮件、跟踪签名并生成具有证明力的文档。
该 API 按照 OpenAPI 3.1 规范编写文档。提供 TypeScript SDK 以方便集成。此外,还设计了一个 llms.txt 文件供代码助手读取,从而加速开发。
前提条件
- 一个 Sign-Hub 账户(免费 Découverte 套餐,每月 10 个签名)
- 一个 API 密钥(可在仪表板中获取)
- 一个开发环境(本教程使用 Node.js)
第 1 步:创建签名请求
第一步是调用 API 创建请求。您必须提供要签署的文档(PDF)、签署人的标识信息(电子邮件、姓名),以及可选的选项,如签名顺序。
使用 curl 的请求示例:
curl -X POST "https://api.sign-hub.example.com/v1/signature-requests" \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{
"document": {"name": "contrat.pdf", "content": "base64..."},
"signers": [
{"email": "client@example.com", "first_name": "Jean", "last_name": "Dupont"}
]
}'
响应包含请求标识符和一个公开签名链接。该链接对每个签署人都是唯一的。您可以通过电子邮件传递它,或将其显示在您的界面中。
第 2 步:将链接传递给签署人
公开链接可以集成到自动电子邮件中,或显示在您应用程序的页面中。如果您进行配置,Sign-Hub 也会负责发送提醒电子邮件。在我们的示例中,我们通过您选择的 API 直接发送链接。
第 3 步:接收已签名 webhook
当签署人完成签名后,Sign-Hub 会通过 webhook 向您的服务器发送通知。该 webhook 使用 HMAC 密钥签名,以保证其真实性。提供两个版本:简单版本和带时间戳的防重放版本。
要验证 webhook,您必须根据请求体计算 HMAC 签名,并与提供的标头进行比较。如果失败,请忽略该请求。
Node.js 中的验证示例:
const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return expected === signature;
}
第 4 步:获取已签名 PDF 和证据文件
在 webhook 之后,您可以通过 API 获取已签名 PDF 和证据文件。PDF 以 PAdES 格式密封,保证其完整性。证据文件包含验证签名有效性所需的所有信息。
获取示例:
curl -X GET "https://api.sign-hub.example.com/v1/signature-requests/{id}/signed-pdf" \
-H "Authorization: Bearer VOTRE_CLE_API"
可验证的证据:一项差异化优势
与许多参与者不同,Sign-Hub 允许任何人在不信任发行方的情况下验证签名的有效性。证据文件使用 Ed25519 密钥签名,其公钥发布在一个众所周知的地址上。您可以离线或通过在线工具验证 proof.json。这种透明度增强了证明价值。
安全与合规
Sign-Hub 遵守 eIDAS 条例(欧盟条例 (UE) n° 910/2014)关于简单电子签名的规定。签署人的同意被明确记录,文档指纹在签名时被固定,连接数据按照 RGPD 进行匿名化处理,同时不破坏证据。数据托管在欧盟境内。
需要注意的是,所提供的签名是一种简单电子签名,并通过电子邮件验证和密封加以增强。它不构成 eIDAS 意义上的高级或合格签名。对于法律要求合格签名的行为,可能需要 Universign 等其他解决方案。
与其他解决方案的比较
Yousign、DocuSign 和 Universign 也提供电子签名 API。大多数提供类似功能:发送链接、跟踪、webhooks。Sign-Hub 的独特之处在于其在证据验证方面的透明度,以及 API-first 方法,并配有专为 AI 设计的文档。其按签名计费、无强制订阅的价格可能适合小型机构。
进一步了解
TypeScript SDK 可让您快速将 API 集成到项目中。OpenAPI 3.1 规范可供使用,llms.txt 文件可供代码助手用于生成集成代码。要测试,请在 Découverte 套餐上创建账户并使用您的第一个 API 密钥。
结论
将电子签名集成到您的应用程序中对任何开发者来说都是触手可及的,而 Sign-Hub 使其变得简单快捷。在不到 20 分钟内,您就可以创建请求、接收 webhook 并获取已签名文档。完整的文档和提供的工具将让您根据需求进一步深入。