Cnoos

记录一些学习、工作、生活的内容或想法

SignPage:一个轻量级的 WordPress 在线协议签署插件

项目 约 5 分钟 阅读 4

本篇目录
  1. 它能做什么
  2. 四大功能模块
  3. 技术涉及:
  4. 适用场景
  5. 一句话总结

这是一份为之前项目中遇到需求定制的功能,因为在日常商业合作中,合同签署是绕不开的一环。从各种服务合同到保密协议,从免责声明到著作权许可——每一份文件都需要双方确认并留痕。然而对许多中小团队而言,采购一套完整的电子签章系统成本过高,用微信发个 PDF 又缺乏规范性和法律效力。

SignPage 正是为这个场景设计的——它是一款运行在 WordPress 内的在线协议签署插件,只需安装一个插件,就能拥有一套从「协议模板管理」到「手写电子签名」的完整签署流程。这是一个基础的版本,后期我有时间的话会再完善更新其版本。


它能做什么

简单来说,SignPage 做了三件事:

创建协议模板 → 生成签署链接 → 用户在线签署

整个过程完全在浏览器中完成,不需要安装 App,不需要跳转第三方平台。


四大功能模块

1. 协议原本管理

原本是签署协议的基础模板。插件内置了可以放置常见的中文合同范本,你可以直接使用这些模板,也可以根据实际业务需求修改正文内容。编辑器采用所见即所得的富文本方式,支持排版、加粗、标题等常用格式。

每一份原本协议还可以预设页头字段和页脚字段。例如:

  • 页头可以定义「甲方名称」「身份证号」「联系电话」等需要用户填写的信息
  • 页脚可以定义签署位置(哪一方需要签名)、日期字段等

这些字段在用户签署时会自动渲染为可填写的输入框,签署后信息嵌入协议正文,不可再改。

2. 签署生成

有了原本协议后,管理员可以一键生成「签署链接」。

操作很简单:选择一份原本 → 预览协议效果 → 填写该次签署的关联人名称 → 点击生成。系统会创建一条签署记录并返回一个加密的 URL,格式类似:

https://你的域名/sign/?sign=xxx

这个链接带有以下特性:

  • 有效期限制:默认 7 天内有效,过期后链接自动失效
  • 一次性签署:每个链接对应一份协议、一个签署人
  • 可选实名验证:如果开启「真实验证」,用户签署前需要通过手机号、姓名、身份证号的三要素验证(对接阿里云实名认证服务)

管理员可以在后台随时查看所有签署记录的状态:待签、已签、过期、作废,一目了然。

3. 用户在线签署

这是面向最终签署人的页面。

用户打开签署链接后,会看到一份完整的协议文本。页面顶部有清晰的使用指引:需要填写哪些信息、如何进行电子签名、签署后不可修改等注意事项。

整个签署流程分为两步:

第一步:填写协议信息

协议中预先设置的字段(如姓名、身份证号、公司名称等)会以输入框形式呈现,用户逐项填写。如果开启了实名验证,系统还会对身份证号、手机号的格式做前端校验。

第二步:手写电子签名

用户点击「手写签名」按钮后,会弹出一个全屏 Canvas 画布。用户可以直接用鼠标或手指(移动端)在屏幕上书写签名,支持重写和确认。签名会以图片形式嵌入到协议正文的指定签名位置。

确认无误后点击「确认签署」,系统会将完整的协议 HTML(包含填写内容和签名图片)保存到服务器,协议状态变为「已签」。此后该链接再次打开时将显示「协议已签署」的完成状态,并提供 PDF 下载 按钮。

4. 签署记录管理

后台管理页面提供签署记录的全生命周期管理:

  • 修改:对于「待签」的协议,管理员可以修改协议正文后重新保存(已签协议不可修改,保证签署后的不可篡改性)
  • 删除:支持批量勾选删除,但已签署的协议不会被删除(防止误删有效记录)
  • 预览:随时查看任意一份签署记录的完整协议内容
  • 下载 PDF:可将协议导出为 A4 纸张大小的 PDF 文件,包含自动分页,适合打印归档

技术涉及:

纯前端 PDF 生成

PDF 导出完全在浏览器端完成,不依赖服务端。实现方式是:将协议 HTML 用 html2canvas 渲染为 Canvas,再用 jsPDF 合成为 PDF 文件。引擎内置了智能分页算法,会根据 A4 纸高度自动将长协议切分为多页。

Canvas 手写签名

签名采用 Canvas 实现的矢量手写板,支持压感模拟(笔触粗细随书写速度变化),导出为高清 PNG 图片嵌入协议。相比简单的「打字输入姓名」,手写签名在形式上更接近传统纸质文件的签署体验。

加密签名链接

签署链接不是简单的明文 ID,而是经过双层 Base64 编码 + 随机字符串混淆的加密串。虽然不是强加密方案,但有效防止了链接被直接猜测遍历。

管理页面访问保护

协议管理、原本编辑等后台页面设有二次密码验证,基于 IP 的错误次数限制(5 次后锁定),防止未授权访问。


适用场景

  • 户外运动 / 体验式消费:活动免责声明、借用协议等
  • 摄影 / 设计工作室:著作权许可、肖像权授权、作品转让协议
  • 小型商贸公司:保密协议、服务合同、产品租赁合同
  • 任何需要「让用户在网页上签字确认」的场景

一句话总结

SignPage 把「发起合同 → 用户签署 → 归档管理」这套流程打包进了一个 WordPress 插件里。它没有电子签章系统那么重,但比微信发文件签名要规范得多。对于已经在用 WordPress 建站、又需要处理一些简单协议签署业务的团队来说,我想这应该是一个务实的选择