使用 Pusher、HelloSign 和 Spring Boot 在聊天中请求电子签名

发布日期:2026-07-13 10:13:05   来源 : 杭州电子商务研究院    浏览量 :18
杭州电子商务研究院 发布日期:2026-07-13 10:13:05  
18

介绍

在本教程中,我们将使用Pusher 的 Presence Channels构建聊天室。使用 Pusher,我们的聊天室将能够使用HelloSign API向其成员请求电子签名的保密协议(NDA) 。

您需要满足以下条件才能承担此项目:

我们将使用 Pusher 和 HelloSign webhook从这些 API 接收事件,并使用ngrok将所有内容保存在本地环境中。

该应用程序的设计基于这支,其工作方式如下:

首先,用户创建聊天:

然后,另一个用户加入聊天:

聊天所有者可以随时发送签署保密协议的请求:

当聊天成员签署保密协议时,会发送一条通知,其中包含查看已签署文档的链接:

我们不会列出所有文件的完整源代码,只会列出相关部分。不过,你可以在Github上找到该应用程序的完整代码。

要求

Java 环境

您需要 JDK 7 或更高版本(最好是 JDK 8),以及Maven 3.0或更高版本。

EclipseIntelliJNetbeans等 IDE可以让事情变得更容易,但这不是必需的。

推进器

在 https://dashboard.pusher.com/accounts/sign_up 创建一个免费帐户。

首次登录时,系统会要求您输入一些配置选项:

输入名称,选择Javascript作为前端技术,选择Java作为后端技术。

然后转到“入门”“应用程序密钥”选项卡来复制您的应用程序 ID、密钥和秘密凭证;我们稍后会需要它们。

HelloSign

在 https://www.hellosign.com/ 注册。撰写本文时,您的免费帐户有以下限制:

  • 您每月可以免费发送 3 份文件
  • 只能有一个发送者
  • 您无法访问任何模板

不过不用担心,这些限制并不适用于测试模式,这是我们将要使用的模式。

恩格罗克

当成员添加到聊天室或签署保密协议时,将触发 webhook(将 webhook 视为回调)。这意味着将向我们的服务器发出 HTTP 请求,因此我们需要将应用程序部署在云端或将其保存在本地并使用ngrok等服务使其公开可用。

Ngrok 通过创建安全隧道并为您提供公共 URL 将外部请求代理到您的本地机器。

ngrok 是一个 Go 程序,以单个可执行文件的形式分发(无其他依赖项)。目前,只需从https://ngrok.com/download下载并解压压缩文件即可。

现在我们已经拥有了所需的一切,让我们来创建应用程序。

设置应用程序

依赖项

创建 Spring Boot 应用程序的最简单方法之一是使用https://start.spring.io/上的项目生成器。

转到该页面并选择生成具有以下依赖项的 Maven 项目:

  • 网页
  • 氢气
  • 百里香叶
  • 日本电力协会

输入Group IDArtifact ID并生成项目:

解压下载文件的内容。此时,您可以根据需要将项目导入 IDE。例如,在 Eclipse 中,转到文件 -> 导入并选择现有 Maven 项目

让我们向pom.xml文件添加一些配置。在属性部分中,如果您不使用 Java 8,请更改 Java 版本,并添加以下行:

      <spring.version>4.3.1.RELEASE</spring.version>
    

撰写本文时,Spring Framework 的最新版本是4.3.1.RELEASE。 上面这行代码将确保 Spring Boot 使用此版本。

另外,在依赖项中,添加我们项目所需的依赖项:

      <dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-lang3</artifactId>
	<version>3.4</version>
</dependency>

<dependency>
  <groupId>com.pusher</groupId>
  <artifactId>pusher-http-java</artifactId>
  <version>1.0.0</version>
</dependency>

<dependency>
	<groupId>com.hellosign</groupId>
	<artifactId>hellosign-java-sdk</artifactId>
	<version>3.4.0</version>
</dependency>
    

项目架构

现在,进入项目组织。在src/main/java中,我们将使用以下包结构:

  • com.example.config将包含配置类
  • com.example.constants将包含应用程序中使用的常量值的接口
  • com.example.model将包含 JPA 实体模型
  • com.example.repository将包含与模型一起使用的 Spring JPA 接口
  • com.example.service将包含应用程序的业务服务类
  • com.example.web将包含应用程序的 Spring MVC 控制器
  • com.example.web.vo将包含用于视图和控制器之间通信的对象

src/main/resources中,除了以下目录结构之外,我们还将放置一些配置文件:

  • static/css将包含应用程序中使用的 CSS 样式文件
  • static/img将包含应用程序中使用的图像
  • static/js将包含应用程序中使用的 Javascript 文件
  • templates将包含应用程序中使用的 Thymeleaf 模板

我们首先创建com/example/web/ChatController类,其内容如下:

      @Controller
public class ChatController {

	@RequestMapping(method=RequestMethod.GET, value="/")
    public ModelAndView index() {
		ModelAndView modelAndView = new <span
以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据