明道云对接案例之e签宝电子签章

上篇我们介绍了什么是电子签章,也讲解了如何与法大大对接,以及它的优缺点。今天我们就来讲解下明道云如何与e签宝做对接,同时也点评下它的优缺点

对接流程

1.准备工作

a.登录e签宝开发平台注册开发者,实名认证企业

b.沙箱环境开通,选择产品

c.沙箱应用创建

d.应用信息与设置IP白名单 (APPkey与Appsecret)

小编这里选择的是saas非标版。可根据实际情况选择产品。

注意事项:沙箱应用余额/次数不足时如何充值

  • 沙箱服务开通时,e签宝自动为其配置一定金额/次数的免费调试套餐,以便接口调试。
  • 如接口调试时出现余额/次数不足时,请将应用ID(App Id)和所调用的产品名称一同告知e签宝工作人员,即可重新获取免费调试套餐。

2.表单设计与对接开发

e签宝支持用户及印章可视化管理,前期用户注册、印章注册直接在后台注册后把对应的ID放到明道云工作表即可。当然也支持利用明道云在使用webhook调用对方接口进行管理。(具体可参考法大大对接)

业务流程如图:

2.1账号印章管理

接口如下:

创建个人账号:/v1/accounts/createByThirdPartyUserId

常见机构账号:/v1/organizations/createByThirdPartyUserId

创建个人/机构图片印章:/v1/accounts/{accountId}/seals/image

2.2文件上传与文件写入及状态

在签署之前,需要把要签署的文件上传到e签宝中,提供给签署流程中使用。这里的文件不能直接上传,需要先创建一个空文件,然后通过接口写入文件内容,最后判断文件是否写入完成。再调用签署接口。

接口如下

通过上传方式创建文件:/v1/files/getUploadUrl

文件流上传方法:【通过上传方式创建文件】获取到的uploadUrl

调用方法:put BODY,待上传文件的二进制字节流。

查询文件状态:/v1/files/{fileId}/status


文件MD5 加密

var imgurl =input.imgurl
var fetch = require('node-fetch');
const FormData = require('form-data');
var crypto= require('crypto');
let hash = crypto.createHash('md5');
var rdata = await fetch(imgurl).then(r => r.buffer()).then(function(buf) {return {"size":parseFloat(buf.length/1024).toFixed(2),"FileMD5":hash.update(buf).digest('base64')}});
rdata.ContentMd5=rdata.FileMD5.toString('base64')

var fname=''; var ind=0,lastind=0,isdoc=false; 
if(imgurl.indexOf('.pdf')>-1){
ind=imgurl.indexOf('.pdf');
lastind=imgurl.lastIndexOf('/');
fname=imgurl.substring(lastind+1,ind+4)
}else if(imgurl.indexOf('.doc')>-1){
ind=imgurl.indexOf('.doc');
lastind=imgurl.lastIndexOf('/');
fname=imgurl.substring(lastind+1,ind+4)
isdoc=true;
}else if(imgurl.indexOf('.docx')>-1){
ind=imgurl.indexOf('.docx');
lastind=imgurl.lastIndexOf('/');
fname=imgurl.substring(lastind+1,ind+5)
isdoc=true;
}else if(imgurl.indexOf('.jpg')>-1){
ind=imgurl.indexOf('.jpg');
lastind=imgurl.lastIndexOf('/');
fname=imgurl.substring(lastind+1,ind+4)
isdoc=true;
}else if(imgurl.indexOf('.png')>-1){
ind=imgurl.indexOf('.png');
lastind=imgurl.lastIndexOf('/');
fname=imgurl.substring(lastind+1,ind+4)
isdoc=true;
}else if(imgurl.indexOf('.xls')>-1){
ind=imgurl.indexOf('.xls');
lastind=imgurl.lastIndexOf('/');
fname=imgurl.substring(lastind+1,ind+4)
isdoc=true;
}else if(imgurl.indexOf('.xlsx')>-1){
ind=imgurl.indexOf('.xlsx');
lastind=imgurl.lastIndexOf('/');
fname=imgurl.substring(lastind+1,ind+5)
isdoc=true;
}
var tm=input.tm.substring(0,11).replace('-','年').replace('-','月').replace(' ','日')
var type=(input.type=='不限'?'0':(input.type=='单页'?'1':'2'));
var page='1-999';
if(type=='1'){
page='1';
}
output={rdata:rdata,fname:fname,fileurl:imgurl,t:tm,type:type,isdoc:isdoc,page:page

2.3一键签署

接口如下

一步发起签署:/api/v2/signflows/createFlowOneStep

盖章的类型(单页/骑缝 是接口参数配置的)

表单设计

2.4签署流程归档

  1. 接口调用成功之后,整个签署流程变成完成状态,触发【流程结束回调通知】。
  2. 一步签署中有回调地址参数(可填写),通过回调地址接受到e签宝推送数据里面的流程ID(flowid)获取签署后的文件下载链接。
  3. 更新到明道云工作表的附件中。

效果如下:

3.Token定时刷新机制

e签宝Token是有时效的参考(定时刷新配置参考:blog.mingdao.com/14319.

表单设计

结语

接口很简单,不过参数很复杂。不要紧,一起充电学习,进击吧!

参考资料:

关于HAP

HAP(Hyper Application Platform)超级应用平台可以帮助用户零代码构建企业应用,用户不需要代码开发就能够搭建出用户体验上佳的销售、运营、人事、采购等核心业务应用,打通企业内部数据。HAP还具备超自动化引擎,可以全面自动化复杂和重复的业务流程。运用HAP的集成中心与完整的API对接能力,用户可以轻松地将HAP与外部系统集成。除此之外,HAP还具备很高的可组合性,国际化支持,并支持云原生架构,实现了多云部署能力。通过插件架构,HAP正在逐步建立起繁荣的实施与开发生态。

HAP可以帮助企业大大节省软件费用、降低定制开发的成本和时间,拥有一个极度灵活和易用的数字化平台,是企业数字化建设的重要工具。目前已有上百万用户使用,付费企业超过4000家,包括可口可乐、复星集团、广汽本田、赛力斯汽车、中国移动、中石化、中铁集团、银鹭食品、民生银行、迪卡侬、艾默生电气、泰科电子、四川航空、东方证券、洲际酒店、科大讯飞、柳工集团、沃尔玛、中国烟草、三菱银行等知名客户。

2021年5月,明道云获得海纳亚洲近亿元投资。公司目前有超过130名员工,产品研发团队过半,总部位于上海漕河泾开发区,在北京、广州、深圳、成都、郑州、武汉、西安和宁波设有分支机构。公司为高新技术企业,上海市专新特精认定企业。