你有没有遇到过这样的场景:销售合同在审批流程里转了半天,最后还得人工登录E签宝上传文件、挨个填写签署人信息;合同签完了,企业微信里的状态却迟迟没更新,又要手动去查。这种断点不仅浪费时间,还容易出错。其实用S-HUB这个轻量级的集成中间件,就能把企业微信和E签宝无缝连起来——审批通过后自动发起签署,签署完成自动回传合同状态,全程不用人盯着。

为什么需要打通这两个系统?

我有个朋友在一家做设备租赁的公司负责信息化,他们每天要处理几十份租赁合同。之前流程是这样的:销售在企业微信提交审批,老板审批通过后,行政把合同打印出来盖章再扫描。从审批到签完,平均3.5天。后来上了E签宝,但问题又来了——商务得手动把企业微信审批单里的合同信息复制到E签宝后台,一个合同至少花5分钟,一天就耗掉两个多小时。

打通之后,一切自动流转:企业微信审批通过的瞬间,S-HUB自动提取合同编号、甲方乙方信息、签署截止日期,在E签宝创建签署流程并发起。签署完成时,S-HUB又把签署回执写回企业微信的审批表单或自建应用里。整个链条从3.5天压缩到12小时,主要是卡在对方签署环节。

S-HUB的作用就像一条数据管道,它不需要你写代码,只需要拖拽配置就能把两个系统的接口对接起来。企业微信提供了审批事件回调、消息推送、自建应用API;E签宝提供了签署流程、文件上传、验证签章等接口。S-HUB负责监听、转换、触发,让两边数据对得上。

配置前的准备工作:你得先弄到这三样东西

动手之前,先确认你已经有以下权限。如果少了任何一个,后面很容易卡壳。

  • 企业微信管理员权限:用来创建自建应用、获取Secret、设置回调URL。如果你不是管理员,得先找IT开通。
  • E签宝企业版账号:需要有应用管理权限,可以在控制台里创建应用、获取AppKey和AppSecret。E签宝的沙箱环境也可以用来测试,但正式对接要用生产环境链接。
  • S-HUB企业版账号:S-HUB免费版能试用部分功能,但打通两个系统需要用到“流程编排”和“高级触发”,建议开个企业版试用(通常有15天)。注册时选“企业微信”和“E签宝”的连接器,会自动加载预置的API模板。

另外,最好提前整理好你要对接的业务场景。比如“合同审批通过后自动发起签署”,你需要明确几点:企业微信审批表单里哪些字段对应E签宝的签署方名称、手机号;合同模板在E签宝里是否已经创建好;签署完成后需要把哪个状态写回企业微信(是更新审批表单,还是发一条消息通知发起人)。

获取企业微信的CorpID和Secret

登录企业微信管理后台(https://work.weixin.qq.com/wework_admin/frame),点“我的企业”->“企业信息”找到CorpID。再创建一个自建应用:点“应用管理”->“自建”->“创建应用”,填好应用名称和可见范围。创建后点进去,能看到Secret,点击“查看”用管理员微信扫码获取。这个Secret和CorpID之后要填到S-HUB里。同时开启“企业微信审批回调”功能:在应用详情页的“功能”部分,找到“审批”->“回调配置”,把S-HUB随后给你的回调URL填进去。

获取E签宝的AppKey和AppSecret

登录E签宝开放平台(https://open.esign.cn),用你的企业账号进入控制台。点“应用管理”->“创建应用”,选“企业自用应用”,OK后你会得到一个AppKey和AppSecret。记得在“接口权限”里勾选你需要的服务:签署流程创建、文件上传、模板签署。如果你们用的是E签宝的“合同模板”功能,最好先在模板管理里创建一个模板,方便后续S-HUB直接调用。

详细配置步骤:一步一步照着做

这部分是核心。我会用“合同审批后自动发起E签宝签署”这个例子来演示,你根据自己的业务调整字段映射即可。

第一步:在S-HUB中创建连接

登录S-HUB控制台,点左侧“连接器管理”->“添加连接器”。先添加企业微信连接器:选“企业微信”,填CorpID、Secret,保存后测试连接,显示“连接成功”就行。再添加E签宝连接器:选“E签宝”,填AppKey、AppSecret,环境选“生产”,测试连接。两个连接器都成功后,进入“流程编排”。

第二步:创建触发器——监听企业微信审批事件

点“新建流程”,取个名字比如“合同审批通过自动签署”。触发器类型选“企业微信-审批事件”。配置参数:选择你刚才创建的自建应用,事件类型选“审批完成”(注意:如果你只想要通过的事件,可以在后续条件里加过滤)。保存后,系统会生成一个回调URL,把它复制到企业微信应用的回调配置里(前面提到的地方)。URL拿到后,点“测试触发”,企业微信会发一条测试数据过来,S-HUB会解析成JSON,你可以看到审批单里的字段结构。

第三步:添加条件——只处理通过的情况

在流程里加一个“条件判断”节点。从左侧拖入“条件”,条件表达式写:trigger.data.event == 'sp_approve'(企业微信审批通过事件的event值是sp_approve,驳回是sp_reject)。这样只有审批通过才往下走。当然,你也可以结合审批单号、表单字段来做更细的过滤。

第四步:组装签署请求数据

这里需要用到一个“代码转换”节点(S-HUB内置了轻量脚本引擎)。从左侧拖入“JS脚本”,编写代码把企业微信审批单里的值映射成E签宝需要的格式。比如审批单里有一个字段叫“甲方公司”,对应的脚本变量是trigger.form_data['甲方公司']。你要构造的E签宝请求体大致如下:

{
  "templateId": "你的E签宝模板ID",
  "signers": [
    {
      "name": trigger.form_data['甲方代表姓名'],
      "mobile": trigger.form_data['甲方代表手机']
    },
    {
      "name": trigger.form_data['乙方代表姓名'],
      "mobile": trigger.form_data['乙方代表手机']
    }
  ],
  "documents": [
    { "fillForm": {} } // 自动填充模板占位符
  ],
  "deadline": trigger.form_data['签署截止日期']
}

如果你用的是静态模板,可以把模板ID写死;如果用动态文件,则需要先调用E签宝的文件上传接口。S-HUB的“代码转换”节点支持async/await,可以发HTTP请求。具体可参考S-HUB的官方文档《E签宝操作手册》。

第五步:调用E签宝创建签署流程

继续添加“API调用”节点,服务选“E签宝-发起签署流程”。方法选POST,请求体就填上一步脚本输出的JSON。保存后测试一下:先用企业微信提交一个测试审批单,看能否成功触发,E签宝里有没有生成相应的签署流程。如果返回错误,比如“模板ID不存在”或“手机号格式错误”,根据日志调整配置。

第六步:把签署结果写回企业微信

这一步是可选的,但非常实用。在流程末尾再加一个“API调用”节点,服务选“企业微信-发送应用消息”或“更新审批申请”(需要scope审核)。如果你只想通知申请人,可以用发送文本消息。参数里填消息内容:"合同【{trigger.form_data['合同编号']}】已发起E签宝签署,请通知对方尽快签署。"。如果你需要把签署状态更新到审批表单,需要调用企业微信的“更新审批申请”接口,但该接口只支持部分字段(如approver、状态等),建议用消息通知+自建应用列表页面显示签署状态。

全部配置好后,保存流程并启用。建议先在企业微信提交一个测试审批,看完整链路是否跑通。如果中间断了,在S-HUB的“运行日志”里可以查看每个节点的输出和错误信息。

常见问题与优化技巧

配置过程中最容易踩的坑有三个:

  • 企业微信回调URL验证失败:S-HUB生成的回调URL需要粘贴到企业微信应用的回调配置里,并且企业微信会发一个GET请求验证URL的合法性。如果S-HUB连接器还没启用,验证会超时。你需要在S-HUB里先保存好触发器配置,拿到URL后再去企业微信那边配置,顺序不能反。
  • E签宝模板占位符不匹配:很多人在E签宝模板里用的是“{{甲方}}”,但脚本里写了“甲方”,直接导致签署时填充失败。解决办法是在E签宝模板编辑器的“字段”里查一下准确的字段名,通常称为“模板字段ID”,如“field1”,然后在脚本中用trigger.form_data['甲方']赋值给对应的字段ID。
  • 企业微信审批事件字段名与表单不一致:企业微信的自定义表单字段在回调JSON里的key是form_data对象里一串类似com_字段id的格式,不是中文。你可以在S-HUB的“测试触发”结果里查看实际字段名,然后映射。

如果你发现某个环节经常超时(比如E签宝签署耗时较长),可以在S-HUB流程里加一个“等待”节点,让流程异步处理,避免回调超时。另外,建议把错误通知也配置一下:在流程末尾加一个“如果失败则发企业微信群消息”的分支,这样运维人员能第一时间知道。

最后,如果你已经在使用企业微信的OA审批模块,别忘了看一下审批模版里关联的“签约方”字段是否足够完整——比如是否包含手机号(签署必填)、身份证号(如果E签宝要求实名认证)。缺少字段的话,先去企业微信后台修改审批模版。