一种电子合同的创建、签署方法及系统与流程

文档序号:11387469阅读:251来源:国知局
一种电子合同的创建、签署方法及系统与流程

本发明涉及电子商务领域,尤其涉及一种电子合同的创建、签署方法及系统。



背景技术:

随着电子技术的发展,传统合同正逐渐被电子合同所取代,电子合同是双方或者多方当事人之间通过电子信息网络以电子的形式达成的设立、变更、终止财产性民事权利义务关系的协议。电子合同具有使用方便,传输效率高,不受时间地点的限制等优点。

现有技术中,电子合同的签署通常是合同订立平台为用户提供固定模式的创建合同和签署合同等功能,用户的使用习惯和签署方式等均受合同订立平台的限制,因而不能满足所有用户的需求,降低了用户的体验。



技术实现要素:

为解决现有技术的不足,本发明提供一种电子合同的创建、签署方法及系统。

一方面,本发明提供了一种电子合同的签署方法,包括:

当第二平台调用第六函数接口向第一平台发送第一签署合同请求时,执行以下操作:

步骤c1:所述第六函数接口判断所述第一签署合同请求是否合法,是则将所述第一签署合同请求发送给所述第一平台;否则返回错误码给所述第二平台,结束;

步骤c2:所述第一平台接收所述第一签署合同请求,根据所述第一签署合同请求中含有的合同编号查找对应保存的待签署合同;

步骤c3:所述第一平台获取待展示合同,根据所述第一签署合同请求中含有的签署人信息查找对应的签署人的签署图片,生成含有所述待展示合同和所述签署图片的页面,通过所述第二平台打开所述页面并显示给所述签署人,当接收到所述签署人在所述页面中的签署触发信息时,执行步骤c4;

步骤c4:所述第一平台根据所述签署人选择的签署图片对所述待签署合同执行签署操作,返回响应给所述第二平台,结束;

当第二平台调用第七函数接口向第一平台发送第二签署合同请求时,执行以下操作:

步骤d1:所述第七函数接口判断所述第二签署合同请求是否合法,是则将所述第二签署合同请求发送给所述第一平台;否则返回错误码给所述第二平台,结束;

步骤d2:第一平台接收所述第二签署合同请求,根据所述第二签署合同请求中含有的合同编号查找对应保存的待签署合同,对所述待签署合同执行签署操作,返回响应给所述第二平台,结束

本发明还提供了一种电子合同的创建方法,包括:

当第二平台调用第三函数接口向第一平台发送第一创建合同请求时,执行以下操作:

步骤a1:所述第三函数接口判断所述第一创建合同请求是否合法,是则将所述第一创建合同请求发送给所述第一平台;否则返回错误码给所述第二平台,结束;

步骤a2:所述第一平台接收所述第一创建合同请求,根据所述第一创建合同请求中含有的模板标识查找对应的合同模板,根据所述合同模板生成待创建合同;

步骤a3:所述第一平台获取合同编号,根据所述待创建合同和所述第一创建合同请求中含有的替换数据生成待签署合同,存储所述待签署合同得到第一存储地址,将所述第一存储地址与所述合同编号对应保存,返回响应给所述第二平台,结束;

当第二平台调用第四函数接口向第一平台发送第二创建合同请求时,执行以下操作:

步骤b1:所述第四函数接口判断所述第二创建合同请求是否合法,是则将所述第二创建合同请求发送给所述第一平台;否则返回错误码给所述第二平台,结束;

步骤b2:所述第一平台接收所述第二创建合同请求,将所述第二创建合同请求中含有的合同文档作为待签署合同;

步骤b3:所述第一平台获取合同编号,存储所述待签署合同得到第一存储地址,将所述第一存储地址与所述合同编号对应保存,返回响应给所述第二平台,结束。

另一方面,本发明提供了一种电子合同的签署系统,包括:第二平台模块、函数接口模块和第一平台模块;

所述函数接口模块包括第六函数接口子模块和第七函数接口子模块;

所述第二平台模块,用于调用所述第六函数接口子模块向所述第一平台模块发送第一签署合同请求;

所述第六函数接口子模块,包括:

第一判断单元,用于判断所述第一签署合同请求是否合法;

第一发送单元,用于当所述第一判断单元判断出所述第一签署合同请求合法时,将所述第一签署合同请求发送给所述第一平台模块;

第一报错单元,用于当所述第一判断单元判断出所述第一签署合同请求不合法时,返回错误码给所述第二平台模块;

所述第一平台模块,包括:

第一接收子模块,用于接收所述第六函数接口子模块发送来的第一签署合同请求;

第一查找子模块,用于根据所述第一接收子模块接收到的第一签署合同请求中含有的合同编号查找对应保存的待签署合同;

第一获取子模块,用于获取待展示合同;

第二查找子模块,用于根据所述第一接收子模块接收到的第一签署合同请求中含有的签署人信息查找对应的签署人的签署图片;

第一生成子模块,用于生成含有所述待展示合同和所述签署图片的页面;

第一显示子模块,用于通过所述第二平台模块打开所述第一生成子模块生成的页面并显示给所述签署人;

所述第一接收子模块,还用于接收所述签署人在所述第一显示子模块显示的页面中的签署触发信息;

第一签署子模块,用于当所述第一接收子模块接收到所述签署人在所述第一显示子模块显示的页面中的签署触发信息时,根据所述签署人选择的签署图片对所述第一查找子模块查找到的待签署合同执行签署操作;

第一发送子模块,用于在所述第一签署子模块执行签署操作之后,返回响应给所述第二平台模块;

所述第二平台模块,还用于调用所述第七函数接口子模块向所述第一平台模块发送第二签署合同请求;

所述第七函数接口子模块,包括:

第二判断单元,用于判断所述第二签署合同请求是否合法;

第二发送单元,用于当所述第二判断单元判断出所述第二签署合同请求合法时,将所述第二签署合同请求发送给所述第一平台模块;

第二报错单元,用于当所述第二判断单元判断出所述第二签署合同请求不合法时,返回错误码给所述第二平台模块;

所述第一平台模块,还包括:

第二接收子模块,用于接收所述第七函数接口子模块发送来的第二签署合同请求;

第三查找子模块,用于根据所述第二接收子模块接收到的第二签署合同请求中含有的合同编号查找对应保存的待签署合同;

第二签署子模块,用于对所述第三查找子模块查找到的待签署合同执行签署操作;

第二发送子模块,用于在所述第二签署子模块执行签署操作之后返回响应给所述第二平台模块。

本发明还提供了一种电子合同的创建系统,包括:第二平台模块、函数接口模块和第一平台模块;

所述函数接口模块,包括:第三函数接口子模块和第四函数接口子模块;

所述第二平台模块,用于调用所述第三函数接口子模块向第一平台模块发送第一创建合同请求;

所述第三函数接口子模块,包括:

第四判断单元,用于判断所述第一创建合同请求是否合法;

第四发送单元,用于当所述第四判断单元判断出所述第一创建合同请求合法时,将所述第一创建合同请求发送给所述第一平台模块;

第四报错单元,用于当所述第四判断单元判断出所述第一创建合同请求不合法时,返回错误码给所述第二平台模块;

所述第一平台模块,包括:

第四接收子模块,用于接收所述第一创建合同请求;

第五查找子模块,用于根据所述第四接收子模块接收到的第一创建合同请求中含有的模板标识查找对应的合同模板;

第二生成子模块,用于根据所述第五查找子模块查找到的合同模板生成待创建合同;

第二获取子模块,用于获取合同编号;

第三生成子模块,用于根据所述第二生成子模块生成的待创建合同和所述第四接收子模块接收到的第一创建合同请求中含有的替换数据生成待签署合同;

第二保存子模块,用于存储所述第三生成子模块生成的待签署合同得到第一存储地址;

第三保存子模块,用于将所述第二保存子模块得到的第一存储地址与所述第二获取子模块获取到的合同编号对应保存;

第四发送子模块,用于返回响应给所述第二平台模块;

所述第二平台模块,还用于调用第四函数接口子模块向第一平台模块发送第二创建合同请求;

所述第四函数接口子模块,包括:

第五判断单元,用于判断所述第二创建合同请求是否合法;

第五发送单元,用于当所述第五判断单元判断出所述第二创建合同请求合法时,将所述第二创建合同请求发送给所述第一平台模块;

第五报错单元,用于当所述第五判断单元判断出所述第二创建合同请求不合法时,返回错误码给所述第二平台模块;

所述第一平台模块,还包括:

第五接收子模块,用于接收所述第四函数接口子模块发送来的第二创建合同请求;

作为子模块,用于将所述第五接收子模块接收到的第二创建合同请求中含有的合同文档作为待签署合同;

第三获取子模块,用于获取合同编号;

第四保存子模块,用于存储所述作为子模块得到的待签署合同得到第一存储地址;

第五保存子模块,用于将所述第四保存子模块得到的第一存储地址与所述第三获取子模块获取到的合同编号对应保存;

第五发送子模块,用于返回响应给所述第二平台模块。

本发明与现有技术相比,具有以下优点:

本发明中,为用户提供了多种创建合同和签署合同的模式,用户可以根据需求进行选择,提升了用户体验。

附图说明

图1为本发明实施例二提供的一种电子合同的创建方法流程图;

图2和图3为发明实施例三提供的一种电子合同的签署方法流程图;

图4为本发明实施例四提供的一种电子合同的签署系统的模块组成框图;

图5为本发明实施例五提供的一种电子合同的创建系统的模块组成框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述;显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明中,用户(以下简称:第二平台)集成合同订立平台(以下简称:第一平台)提供的sdk,当签署人向第二平台发起创建或者签署合同操作时,第二平台通过调用sdk中的接口向第一平台发送相应的请求,第一平台根据接收到的请求执行相应的操作;其中,在第二平台集成第一平台提供的sdk时,第一平台创建与第二平台对应的账户;并且第二平台在与第一平台第一次通讯时,第一平台为第二平台分配唯一的访问令牌,第二平台使用该访问令牌与第一平台进行后续的数据通讯。

实施例一

本发明实施例一提供一种电子合同的创建、签署方法,其中,电子合同的签署方法,包括:

当第二平台调用第六函数接口向第一平台发送第一签署合同请求时,执行以下操作:

步骤c1:第六函数接口判断第一签署合同请求是否合法,是则将第一签署合同请求发送给第一平台;否则返回错误码给第二平台,结束;

步骤c2:第一平台接收第一签署合同请求,根据第一签署合同请求中含有的合同编号查找对应保存的待签署合同;

步骤c3:第一平台获取待展示合同,根据第一签署合同请求中含有的签署人信息查找对应的签署人的签署图片,生成含有待展示合同和签署图片的页面,通过第二平台打开生成的页面并显示给签署人,当接收到签署人在页面中的签署触发信息时,执行步骤c4;

步骤c4:第一平台根据签署人选择的签署图片对待签署合同执行签署操作,返回响应给第二平台,结束;

当第二平台调用第七函数接口向第一平台发送第二签署合同请求时,执行以下操作:

步骤d1:第七函数接口判断第二签署合同请求是否合法,是则将第二签署合同请求发送给第一平台;否则返回错误码给第二平台,结束;

步骤d2:第一平台接收第二签署合同请求,根据第二签署合同请求中含有的合同编号查找对应保存的待签署合同,对待签署合同执行签署操作,返回响应给第二平台,结束。

其中,电子合同的创建方法,包括:

当第二平台调用第三函数接口向第一平台发送第一创建合同请求时,执行以下操作:

步骤a1:第三函数接口判断第一创建合同请求是否合法,是则将第一创建合同请求发送给第一平台;否则返回错误码给第二平台,结束;

步骤a2:第一平台接收第一创建合同请求,根据第一创建合同请求中含有的模板标识查找对应的合同模板,根据合同模板生成待创建合同;

步骤a3:第一平台获取合同编号,根据待创建合同和第一创建合同请求中含有的替换数据生成待签署合同,存储待签署合同得到第一存储地址,将第一存储地址与合同编号对应保存,返回响应给第二平台,结束;

当第二平台调用第四函数接口向第一平台发送第二创建合同请求时,执行以下操作:

步骤b1:第四函数接口判断第二创建合同请求是否合法,是则将第二创建合同请求发送给第一平台;否则返回错误码给第二平台,结束;

步骤b2:第一平台接收第二创建合同请求,将第二创建合同请求中含有的合同文档作为待签署合同;

步骤b3:第一平台获取合同编号,存储待签署合同得到第一存储地址,将第一存储地址与合同编号对应保存,返回响应给第二平台,结束。

本实施例步骤c3中,根据第一签署合同请求中含有的签署人信息查找对应的签署人的签署图片,具体为:第一平台根据第一签署合同请求中含有的签署人信息查找对应的签署人的签名图片和签章图片;

对应地,步骤c3中,生成含有待展示合同和签署图片的页面,具体为:生成含有待展示合同、签名图片、签章图片和日期图片的页面;

步骤c4中,第一平台根据签署人选择的签署图片对待签署合同执行签署操作,具体为:

第一平台将待签署合同作为当前待签署合同,分别将签署人选择的签署图片和或签署人选择的签署图片对应的信息添加到当前待签署合同中对应的位置后作为当前待签署合同,根据预设算法对当前待签署合同计算出摘要值;根据第一签署合同请求中含有的签署人信息查找到与签署人的数字证书对应的私钥,使用私钥对摘要值签名得到签名信息,将签名信息和签署人的数字证书写至当前待签署合同中。

本实施例步骤a3和步骤b3中,第一平台获取合同编号,具体为:

步骤f:第一平台判断接收到的请求中是否含有合同编号,是则读取接收到的请求中含有的合同编号;否则生成合同编号。

实施例二

本发明实施例二提供一种电子合同的创建方法,如图1所示,包括:

当第二平台调用第一函数接口向第一平台发送添加合同模板请求时,包括:

步骤201:第一函数接口判断添加合同模板请求是否合法,是则将添加合同模板请求发送给第一平台,执行步骤202;否则返回错误码给所述第二平台,结束;

在本实施例中,第一函数接口判断添加合同模板请求是否合法,具体包括:

判断添加合同模板请求中含有的模板名称是否不为空且不超过第一预设长度;

判断添加合同模板请求中含有的模板是否不为空且不超过第二预设长度;

如判断结果均为是,则判定添加合同模板请求合法;否则判定添加合同模板请求不合法。

优选地,在本实施例中,第一预设长度为32bit,第二预设长度为65536个。

更进一步地,在本实施例中,第一函数接口将添加合同模板请求发送给第一平台,具体为:将添加合同模板请求封装成json格式的数据,并对json格式的数据加密得到添加合同模板请求密文,对添加合同模板请求密文计算校验值,将添加合同模板请求密文、计算得到的校验值及函数接口标识等发送给第一平台。

需说明地,第一平台根据函数接口标识的不同,对应执行不同的操作。

步骤202:第一平台解析接收到的添加合同模板请求,得到合同模板及对应的模板标识;

在本实施例中,第一函数接口具体为stringaddhtmltemplate(stringtemplatename,stringhtml);

例如,在本实施例中,得到的对应的模板标识为template0001,得到的合同模板为:

石油焦购销合同

供方:supplier合同编号:contractnum

需方:buyer签订时间:time

根据《中华人民共和国和合同法》,供需双方本着平等互利的原则,经友好协商,就需方向供方购买石油焦事宜达成如下协议:

一、产品名称、数量、金额

名称:tendertile

数量(吨):successquantity

单价(元/吨):buyprice

总额(元):sumprice

二、运输方式及相关费用承担:汽运,需方自提。

三、计算方式:全部货物到达需方指定场地后,供需双方确认无误后,供方开具17%增值税发票。

四、违约责任:双方按照本协议的规定,任何一方违约,由违约方承担违约责任。

五、合同生效:本合同传真件有效,供需双方签字盖章后生效。

供方:supplier需方:buyer

供方盖章:需方盖章:

步骤203:第一平台审核得到的合同模板是否合法,是则执行步骤204,否则返回错误码给第二平台,结束;

具体地,第一平台审核得到的合同模板中的内容是否符合转换为第一预设格式的文档的要求,是则判定得到的合同模板合法,否则判定得到的合同模板不合法;

优选地,在本实施例中,第一预设格式为pdf格式;

例如,第一平台审核合同模板中的内容是否含有pdf格式的文档不识别的字符等。

步骤204:第一平台创建与得到的合同模板对应的模板记录,将得到的模板标识保存至创建的模板记录中,并保存模板记录;

在本实施例中,第一平台将创建的模板记录保存至存有模板记录的数据库中。

步骤205:第一平台存储得到的合同模板,并将存储地址保存至创建的模板记录中,返回响应的第二平台;

具体地,第一平台将得到的合同模板存储至数据库中,并将存储地址添加到创建的模板记录中。

当第二平台调用第二函数接口向第一平台发送添加水印图片请求时,包括:

步骤301:第二函数接口判断添加水印图片请求是否合法,是则将添加水印图片请求发送给第一平台,执行步骤302;否则返回错误码给第二平台,结束;

在本实施例中,第二函数接口判断添加水印图片请求是否合法,具体为:

判断添加水印图片请求中含有的水印图片的大小、尺寸和透明度是否均在对应的预设条件,是则判定添加水印图片请求合法;否则判定添加水印图片请求不合法。

例如,在本实施例中,水印图片的大小的预设条件为不大于1m;水印图片的尺寸的预设条件为宽度和高度均为数字,且单位为px;水印图片的透明度的预设条件为在0%-100%内。

更进一步地,在本实施例中,第二函数接口将添加水印图片请求发送给第一平台,具体为:将添加水印图片请求封装成json格式的数据,并对json格式的数据加密得到添加水印图片请求密文,对添加水印图片请求密文计算校验值,将添加水印图片请求密文、计算得到的校验值及函数接口标识等发送给第一平台。

需说明地,第一平台根据函数接口标识的不同,对应执行不同的操作。

步骤302:第一平台将接收到的添加水印图片请求中含有的水印图片保存至第二平台的账户下,返回响应给第二平台;

在本实施例中,第二函数接口具体:stringsetwatermark(byte[]img,stringwatermarkset);

进一步地,在本实施例中,当第一平台接收到的添加水印图片请求中还含有与水印图片对应的水印图片标识时,步骤303中,将添加水印图片请求中含有的水印图片保存至第二平台的账户下,具体为:将添加水印图片请求中含有的水印图片和水印图片标识对应保存至第二平台的账户下。

当第二平台调用第三函数接口向第一平台发送第一创建合同请求时,包括:

步骤401:第三函数接口判断第一创建合同请求是否合法,是则将第一创建合同请求发送给第一平台,执行步骤402;否则返回错误码给第二平台,结束;

在本实施例中,第三函数接口具体为:stringcreatecontractbytemplate(stringtemplatename,stringreplaceval,stringcontractnum,booleaniswatermark);

第一创建合同请求具体为:根据合同模板创建待签署合同请求;

进一步地,在本实施例中,第三函数接口判断第一创建合同请求是否合法,具体包括:

判断第一创建合同请求中含有的模板名称是否不为空且不超过第一预设长度;

判断第一创建合同请求中含有的替换数据是否符合预设格式;

如判断结果均为是,则判定第一创建合同请求合法;否则判定第一创建合同请求不合法。

优选地,在本实施例中,第一预设长度为32bit;预设格式具体为json格式;并且替换数据中的每一项均符合对应的预设条件,例如,签署人的手机号码必须是数字。

更进一步地,在本实施例中,第三函数接口将第一创建合同请求发送给第一平台,具体为:将第一创建合同请求封装成json格式的数据,并对json格式的数据加密得到第一创建合同请求密文,对第一创建合同请求密文计算校验值,将第一创建合同请求密文、计算得到的校验值及函数接口标识等发送给第一平台。

需说明地,第一平台根据函数接口标识的不同,对应执行不同的操作。

步骤402:第一平台解析接收到的第一创建合同请求得到模板标识和替换数据;

例如,在本实施例中,第一平台解析接收到的第一创建合同请求得到的模板标识为template0001,替换数据为{“supplier”:“张三”,“buyer”:“李四”,“contractnum”:“contract0001”,“tendertitle”:“石油焦”,“successquantity”:“500”,“buyprice”:“150”,“sunprice”:“75000”}。

步骤403:第一平台判断得到的模板标识是否有效,是则根据模板标识查找到对应的合同模板,并将其另存作为待创建合同,执行步骤404,否则返回错误码给第二平台,结束;

具体地,第一平台判断保存的模板记录中是否含有得到的模板标识,是则判定得到的模板标识有效;否则判定得到的模板标识无效;

更加具体地,第一平台查找数据库中存有的模板记录,依次读取查找到的模板记录中的模板标识,判断是否能够读取到与得到的模板标识相同的模板标识,是则判定得到的模板标识有效,否则判定得到的模板标识无效;

例如,在本实施例中,第一平台在数据库中读取到与上述得到的模板标识相同的模板标识,判定得到的模板标识有效。

进一步地,在本实施例中,根据模板标识查找到对应的合同模板,具体为:第一平台在含有该模板标识的模板记录中读取存有的合同模板的存储地址,根据读取到的存储地址查找到对应的合同模板。

步骤404:第一平台判断第一创建合同请求中是否含有合同编号,是则执行步骤406,否则执行步骤405;

具体地,第一平台判断接收到的第一创建合同请求中是否含有contractnum字段,是则判定接收到的创建合同请求中含有合同编号,否则判定接收到的创建合同请求中不含有合同编号;

例如,在本实施例中,接收到的第一创建合同请求中含有contractnum字段,判定接收到的第一创建合同请求中含有合同编号,且合同编号为contract0001。

步骤405:第一平台生成合同编号,执行步骤407;

步骤406:第一平台判断第一创建合同请求中含有的合同编号是否有效,是则执行步骤407,否则返回错误码给第二平台,结束;

具体地,第一平台判断第一创建合同请求中含有的合同编号是否被其他合同占用,是则判定第一创建合同请求中含有的合同编号无效,否则判定第一创建合同请求中含有的合同编号有效;

更加具体地,第一平台查找数据库中存有的合同记录,依次读取查找到的合同记录中存有的合同编号,判断读取到的合同编号与第一创建合同请求中含有的合同编号是否相同,是则判定第一创建合同请求中含有的合同编号无效;否则判定第二创建合同请求中含有的合同编号有效;

步骤407:第一平台创建与待创建合同对应的合同记录,并将合同编号添加至创建的合同记录中,保存合同记录,执行步骤408;

步骤408:第一平台根据得到的替换数据和待创建合同生成合同文档;

具体地,第一平台使用替换数据替换待创建合同中相应位置上的标识符得到合同文档;

例如,在本实施例中,第一平台将替换数据‘张三’替换待创建合同中的标识符‘supplier’,将替换数据‘李四’替换待创建合同中的标识符buyer’,得到的合同文档为:

石油焦购销合同

供方:张三合同编号:contract0001

需方:李四签订时间:time

根据《中华人民共和国和合同法》,供需双方本着平等互利的原则,经友好协商,就需方向供方购买石油焦事宜达成如下协议:

六、产品名称、数量、金额

名称:石油焦

数量(吨):500

单价(元/吨):150

总额(元):75000

七、运输方式及相关费用承担:汽运,需方自提。

八、计算方式:全部货物到达需方指定场地后,供需双方确认无误后,供方开具17%增值税发票。

九、违约责任:双方按照本协议的规定,任何一方违约,由违约方承担违约责任。

十、合同生效:本合同传真件有效,供需双方签字盖章后生效。

供方:张三需方:李四

供方盖章:需方盖章:

步骤409:第一平台将生成的合同文档转换为预设格式的文档,将预设格式的文档作为待签署合同;

优选地,在本实施例中,预设格式为pdf格式。

步骤410:第一平台判断待签署合同是否需要添加水印,是则执行步骤411;否则执行步骤412;

具体地,第一平台读取创建合同请求中预设字段上的数据,判断读取到的数据是否为预设值,是则判定待签署合同需要添加水印,否则判定待签署合同不需要添加水印;

在本实施例中,预设字段具体为iswatermark字段,预设值具体为true;

例如,在本实施例中,读取上述合同请求中iswatermark字段上的数据为true,判定待签署合同需要添加水印。

步骤411:第一平台判断是否存在与第二平台对应的水印图片,是则将与第二平台对应的水印图片添加到待签署合同中,执行步骤412,否则返回错误码给第二平台,结束;

具体地,第一平台根据创建合同请求中含有的访问令牌查找到第二平台的账户,判断查找到的账户中是否含有水印图片,是则将查找到的账户中的水印图片添加到待签署合同中;否则返回错误码给第二平台,结束;

进一步地,在本实施例中,当创建合同请求中还含有水印图片的标识时;

对应地,步骤411具体为:第一平台根据创建合同请求中含有的访问令牌查找到对应的账户,判断查找到的账户中是否含有水印图片,是则根据创建合同请求中含有水印图片的标识在查找到的账户中查找到对应的水印图片,将查找到的水印图片添加到待签署合同中;否则返回错误码给第二平台,结束。

例如,创建合同请求中含有水印图片的标识为watermark0001,第一平台在查找到的账户中查找到与其对应的水印图片,并将查找到的水印图片添加到待签署合同中。

步骤412:第一平台将待签署合同转换为图片,将其作为待展示合同;

步骤413:第一平台将待签署合同和待展示合同分别存储得到第一存储地址和第二存储地址,并将第一存储地址和第二存储地址添加到对应的合同记录中;

例如,在本实施例中,将待签署合同存储得到的第一存储地址为http://xxxxxx/pdf/accountnumxxxxx/contract0001,将待展示合同存储得到的第二存储地址为http://xxxxxx/img/accountnumxxxxx/contract0001,分别添加至合同编号为contract0001对应的合同记录中。

步骤414:第一平台将合同编号返回给第二平台,结束。

例如,在本实施例中,将合同编号contract0001返回给第二平台。

在本实施例中,步骤413中“第一平台将待签署合同保存,并将待签署合同的存储地址添加到对应的合同记录中”,还可以位于步骤411与步骤412之间;

对应地,步骤413,具体为:第一平台将待展示合同保存,并将待展示合同的存储地址添加到对应的合同记录中。

进一步地,在本实施例中,步骤410至步骤412,还可以为:

步骤410-1:第一平台将待签署合同转换为图片,将其作为待展示合同;

步骤411-1:第一平台判断待签署合同是否需要添加水印,是则执行步骤412-1;否则执行步骤413

步骤412-1:第一平台判断是否存在与第二平台对应的水印图片,是则将与第二平台对应的水印图片分别添加到待签署合同和待展示合同中,执行步骤413;否则返回错误码给上位机,结束。

更进一步地,在本实施例中,步骤412至步骤413还可以为:

步骤412-2:第一平台存储待签署合同得到第一存储地址,并将第一存储地址添加到对应的合同记录中。

当第二平台调用第四函数接口向第一平台发送第二创建合同请求时,包括:

步骤501:第四函数接口判断第二创建合同请求是否合法,是则将第二创建合同请求发送给第一平台,执行步骤502;否则返回错误码给第二平台,结束;

在本实施例中,第四函数接口具体为stringuploadcontract(stringdata,stringtype,stringcontractnum,booleaniswatermark);

第二创建合同请求,具体为:根据合同文档创建待签署合同的请求。

进一步地,在本实施例中,第四函数接口判断第二创建合同请求是否合法,具体包括:

判断第二创建合同请求含有的合同文档的类型是否为支持的文件类型;

判断第二创建合同请求含有的合同文档是否不为空且不超过预设大小;

如判断结果均为是,则判定第二创建合同请求合法;否则判定第二创建合同请求不合法。

在本实施例中,支持的合同文档的格式包括doc、docx、xls、xlsx、ppt、pptx、pdf等;预设大下具体为5兆。

更进一步地,在本实施例中,第四函数接口将第二创建合同请求发送给第一平台,具体为:将第二创建合同请求封装成json格式的数据,并对json格式的数据加密得到第二创建合同请求密文,对第二创建合同请求密文计算校验值,将第二创建合同请求密文、计算得到的校验值及函数接口标识等发送给第一平台。

需说明地,第一平台根据函数接口标识的不同,对应执行不同的操作。

步骤502:第一平台解析接收到的第二创建合同请求得到合同文档,判断合同文档是否为预设格式,是则将其作为待签署合同,则执行步骤503;否则将接收到的合同文档转换为预设格式后作为待签署合同,执行步骤503;

在本实施例中,第一平台接收到的合同文档的格式可以为doc、docx、xls、xlsx、ppt、pptx、pdf格式中的任意一个;

优选地,在本实施例中,预设格式为pdf格式;

在本实施例中,第一平台将接收到的合同文档转换为pdf格式,具体为:第一平台调用office文档转换平台将office文档转换为pdf格式;

例如,在本实施例中,接收到的合同文档为doc格式,第一平台调用office文档转换平台将其转换为pdf格式。

步骤503:第一平台判断接收到的第二创建合同请求中是否含有合同编号,是则执行步骤505;否则执行步骤504;

具体地,第一平台判断接收到的创建合同请求中是否含有contractnum字段,是则判定接收到的第二创建合同请求中含有合同编号,否则判定接收到的第二创建合同请求中不含有合同编号;

例如,在本实施例中,接收到的第二创建合同请求中含有contractnum字段,判定接收到的第二创建合同请求中含有合同编号,且合同编号为contract0002。

步骤504:第一平台生成合同编号,执行步骤506;

步骤505:第一平台判断第二创建合同请求中含有的合同编号是否有效,是则执行步骤506,否则返回错误码给第二平台,结束;

具体地,第一平台判断第二创建合同请求中含有的合同编号是否被其他合同占用,是则判定第二创建合同请求中含有的合同编号无效,否则判定第二创建合同请求中含有的合同编号有效;

更加具体地,第一平台查找数据库中存有的合同记录,依次读取查找到的合同记录中存有的合同编号,判断读取到的合同编号与第二创建合同请求中含有的合同编号是否相同,是则判定第二创建合同请求中含有的合同编号无效;否则判定第二创建合同请求中含有的合同编号有效。

步骤506:第一平台创建与待签署合同对应的合同记录,并将合同编号添加至创建的合同记录中,保存合同记录,执行步骤507;

步骤507:第一平台判断待签署合同是否需要添加水印,是则执行步骤508;否则执行步骤509;

具体地,第一平台读取第二创建合同请求中预设字段上的数据,判断读取到的数据是否为预设值,是则判定待签署合同需要添加水印,否则判定待签署合同不需要添加水印;

在本实施例中,预设字段具体为iswatermark字段,预设值具体为true;

例如,在本实施例中,读取上述合同请求中iswatermark字段上的数据为true,判定待签署合同需要添加水印。

步骤508:第一平台判断是否存在与第二平台对应的水印图片,是则将与第二平台对应的水印图片添加到待签署合同中,执行步骤509;否则返回错误码给上位机,结束;

在本实施例中,步骤508的实现方法,同步骤411的实现方法相同,在此不再赘述。

步骤509:第一平台将待签署合同转换为图片,将其作为待展示合同;

步骤510:第一平台将待签署合同和待展示合同分别存储得到第一存储地址和第二存储地址,并将第一存储地址和第二存储地址添加到对应的合同记录中;

例如,在本实施例中,将待签署合同存储得到的第一存储地址为http://xxxxxx/pdf/accountnumxxxxx/contract0002,将待展示合同存储得到的第二存储地址为http://xxxxxx/img/accountnumxxxxx/contract0002,将其添加到合同编号为contract0002对应的合同记录中。

步骤511:第一平台将合同编号返回给第二平台,结束。

例如,在本实施例中,第一平台将合同编号contract0002返回给第二平台。

在本实施例中,步骤510中“第一平台将待签署合同保存,并将待签署合同的存储地址添加到对应的合同记录中”,还可以位于步骤508与步骤509之间;

对应地,步骤510,具体为:第一平台将待展示合同保存,并将待展示合同的存储地址添加到对应的合同记录中。

进一步地,在本实施例中,步骤507至步骤509,还可以为:

步骤507-1:第一平台将待签署合同转换为图片,将其作为待展示合同;

步骤508-1:第一平台判断待签署合同是否需要添加水印,是则执行步骤509-1;否则执行步骤510

步骤509-1:第一平台判断是否存在与第二平台对应的水印图片,是则将与第二平台对应的水印图片分别添加到待签署合同和待展示合同中,执行步骤510;否则返回错误码给上位机,结束。

更进一步地,在本实施例中,步骤509和步骤510还可以为:

步骤509-2:第一平台存储待签署合同得到第一存储地址,并将第一存储地址添加到对应的合同记录中。

在本实施例中,第一平台为第二平台提供了多种创建合同模式,第二平台既可以调用第三函数接口选择根据模板创建合同,也可以调用第四函数接口选择根据合同文档创建合同。

实施例三

本发明实施例三提供一种电子合同的签署方法,包括认证签署人流程和电子合同签署流程,具体地如图2和图3所示,包括:

当第二平台调用第五函数接口向第一平台发送认证身份请求时包括:

步骤601:第五函数接口判断认证身份请求是否合法,是则将认证身份请求发送给第一平台,执行步骤602;否则返回错误码给第二平台,结束;

在本实施例中,第五函数接口具体为stringsendapplyverifyinfo(stringsigner,stringcontractnum,stringtype);

进一步地,在本实施例中,第五函数接口判断认证身份请求是否合法,具体为:

判断认证身份请求中含有的合同编号是否不超过第三预设长度;

判断认证身份请求中含有的签署人信息是否符合预设格式;

如判断结果均为是,则判定认证身份请求合法;否则判定认证身份请求不合法。

优选地,在本实施例中,第三预设长度为64位;预设格式为json格式,并且签署人信息中的每一项均符合对应的预设条件,例如,签署人的手机号必须为数字。

更进一步地,在本实施例中,第五函数接口将认证身份请求发送给第一平台,具体为:将认证身份请求封装成json格式的数据,并对json格式的数据加密得到认证身份请求密文,对认证身份请求密文计算校验值,将认证身份请求密文、计算得到的校验值及函数接口标识等发送给第一平台。

需说明地,第一平台根据函数接口标识的不同,对应执行不同的操作。

步骤602:第一平台解析接收到的认证身份请求得到合同编号和签署人身份信息;

在本实施例中,签署人身份信息包括但不限于:签署人姓名、签署人手机号、签署人证件类型及证件号等;

进一步地,在本实施例中,当签署人为个人时,签署人证件类型及证件号优选为身份证及身份证号;当签署人为企业时,签署人证件类型及证件号优选为营业执照及营业执照编号;

优选地,在本实施例中,签署人为个人;

例如,在本实施例中,第一平台解析接收到的认证身份请求得到的合同编号为contract0001,得到的签署人身份信息为{"type":"0","cardtype":"0","idcardnum":"0000111122223333","name":"张三","phonesn":"18812345678"},其中,"type":"0"表示签署人为个人,"cardtype":"0"表示签署人证件类型为身份证,"idcardnum":"0000111122223333"表示签署人证件号为0000111122223333;"name":"张三"标识签署人姓名为张三,phonesn":"18812345678"表示签署人手机号为18812345678。

步骤603:第一平台判断是否存在与得到的合同编号对应的合同记录,是则执行步骤604,否则返回错误码给第二平台,结束;

具体地,第一平台查找数据库中存有的合同记录,依次读取查找到的合同记录中存有的合同编号,判断读取到的合同编号与解析得到的合同编号是否相同,是则判定存在与得到的合同编号对应的合同记录;否则判定不存在与得到的合同编号对应的合同记录;

例如,在本实施例中,第一平台在数据库中查找到与得到的合同编号相同的合同编号contract0001,判定存在与得到的合同编号对应的合同记录,执行步骤604。

步骤604:第一平台根据得到的签署人信息向签署人发送认证码,并将签署人信息和发送的认证码对应添加至得到的合同编号对应的合同记录中;

在本实施例中,第一平台根据得到的签署人信息向签署人发送认证码,具体为:第一平台向得到的签署人信息中含有的签署人手机号码中发送认证码;

例如,在本实施例中,第一平台向签署人手机号码18812345678中发送认证码123456,并将签署人信息{"type":"0","cardtype":"0","idcardnum":"0000111122223333","name":"张三","phonesn":"18812345678"}和认证码123456添加至得到的合同编号contract0001对应的合同记录中。

进一步地,在本实施例中,当签署人接收到认证码时,签署人在第二平台的输入框中输入接收到的认证码,第二平台根据接收到的认证码及签署人信息可以调用第六函数接口选择手动签署合同模式,或者调用第七函数接口选择自动签署合同模式,向第一平台发送签署合同请求;

当第二平台调用第六函数接口向第一平台发送第一签署合同请求时,包括:

步骤701:第六函数接口判断所述第一签署合同请求是否合法,是则将所述第一签署合同请求发送给所述第一平台,执行步骤702;否则返回错误码给所述第二平台,结束;

在本实施例中,第六函数接口具体为stringmanuallysign(stringsignerinfo,stringcontractnum,stringcallurl);

第一签署合同请求,具体为:手动签署合同请求。

进一步地,在本实施例中,第六函数接口判断第一签署合同请求是否合法,具体为:

判断第一签署合同请求中含有的合同编号是否不超过第三预设长度;

判断第一签署合同请求中含有的签署人信息是否符合预设格式;

如判断结果均为是,则判定第一签署合同请求合法;否则判定第一签署合同请求不合法。

优选地,在本实施例中,第三预设长度为64位,预设格式为json格式,并且签署人信息中的每一项均符合对应的预设条件,例如,签署人的手机号必须为数字。

更进一步地,在本实施例中,第六函数接口将第一签署合同请求发送给第一平台,具体为:将第一签署合同请求封装成json格式的数据,并对json格式的数据加密得到第一签署合同请求密文,对第一签署合同请求密文计算校验值,将第一签署合同请求密文、计算得到的校验值及函数接口标识等发送给第一平台。

需说明地,第一平台根据函数接口标识的不同,对应执行不同的操作。

步骤702:第一平台解析接收到的第一签署合同请求得到认证码、合同编号和签署人信息;

例如,在本实施例中,第一平台解析接收到的第一签署合同请求得到的认证码为123456、合同编号为contract0001、签署人信息为{"type":"0","cardtype":"0","idcardnum":"0000111122223333","name":"张三","phonesn":"18812345678"}。

步骤703:第一平台判断是否存在与得到的合同编号对应的合同记录,是则执行步骤704,否则返回错误码给第二平台,结束;

具体地,第一平台查找数据库中存有的合同记录,依次读取查找到的合同记录中存有的合同编号,判断读取到的合同编号与解析得到的合同编号是否相同,是则判定存在与得到的合同编号对应的合同记录,否则判定不存在与得到的合同编号对应的合同记录;

例如,在本实施例中,第一平台在数据库中查找到与得到的合同编号相同的合同编号contract0001,判定存在与得到的合同编号对应的合同记录。

步骤704:第一平台判断得到的合同编号对应的合同记录中是否含有得到的签署人信息,是则读取得到的签署人信息对应的认证码,执行步骤705,否则返回错误码给第二平台,结束;

步骤705:第一平台判断读取到的认证码与得到的认证码是否匹配,是则执行步骤706;否则返回错误码给第二平台,结束;

具体地,第一平台判断读取到的认证码与得到的认证码是否相同,是则执行步骤706,否则返回错误码给第二平台;

例如,在本实施例中,第一平台读取的认证码为123456,与得到的认证码是否相同,则执行步骤706。

步骤706:第一平台在得到的合同编号对应的合同记录中读取第二存储地址,根据读取到的第二存储地址查找到待展示合同;

例如,在本实施例中,读取到的第二存储地址为http://xxxxxx/img/accountnumxxxxx/contract0001。

步骤707:第一平台根据得到的签署人信息查找签署人的签名图片,判断是否查找成功,是则执行步骤708,否则根据得到的签署人信息中的签署人姓名生成签署人的签名图片并保存,执行步骤708;

在本实施例中,签署人可以在任意时刻通过第二平台上传自身的签名图片给第一平台,当第一平台接收到签名图片时,判断数据库中存有的合同记录中是否存有签名图片对应的签署人信息,是则将接收到的签名图片与签署人信息中的签署人证件号对应保存至签名图片数据库中;

对应地,在本实施例中,第一平台根据得到的签署人信息查找签署人的签名图片,判断是否查找成功,具体为:第一平台依次读取签名图片数据库中存有的签署人证件号,判断是否能够读取到与得到的签署人信息中含有的签署人证件号相同的签署人证件号,是则判定查找成功,否则判定查找失败;

进一步地,在本实施例中,第一平台根据得到的签署人信息中的签署人姓名生成签署人的签名图片后,将生成的签名图片与签署人信息中含有的签署人证件号对应保存至签名图片数据库中。

步骤708:第一平台根据得到的签署人信息查找签署人的签章图片,判断是否查找成功,是则执行步骤716,否则执行步骤709;

在本实施例中,签署人可以在任意时刻通过第二平台上传自身的签章图片给第一平台,当第一平台接收到签章图片时,判断数据库中存有的合同记录中是否存有签章图片对应的签署人信息,是则将接收到的签章图片与签署人信息中的签署人证件号对应保存至签章图片数据库中;

对应地,在本实施例中,第一平台根据得到的签署人信息查找签署人的签章图片,判断是否查找成功,具体为:第一平台依次读取签章图片数据库中存有的签署人证件号,判断是否能够读取到与得到的签署人信息中含有的签署人证件号相同的签署人证件号,是则判定查找成功,否则判定查找失败。

步骤709:第一平台生成含有待展示合同、签署人的签名图片和日期图片的页面,通过第二平台打开生成的页面并显示给签署人,当接收到签署触发信息时,执行步骤710;

具体地,第一平台将待展示合同、签署人的签名图片和日期图片添加到预设操作页面中,并将预设操作页面的地址返回给第二平台,第二平台打开接收到的地址对应的预设操作页面,将待展示合同、签署人的签名图片和日期图片显示给签署人,当接收到签署触发信息时,执行步骤710;

进一步地,在本实施例中,当第二平台将待展示合同、签署人的签名图片和日期图片显示给签署人后,签署人根据自身需求将签名图片和或日期图片拖动到待展示合同中对应的位置后,点击签署图标,第一平台根据签署人选择的图片对待签署合同执行签署操作。

优选地,在本实施例中,签署人将签名图片和日期图片均拖动到待展示合同中对应的位置。

步骤710:第一平台判断签署人的数字证书是否存在,是则执行步骤711,否则申请数字证书并分配给得到的签署人信息对应的签署人,执行步骤711;

具体地,第一平台判断存有数字证书的数据库中是否存有得到的签署人信息中含有的签署人证件号,是则判定签署人的数字证书存在,否则判定签署人的数字证书不存在;

进一步地,在本实施例中,申请数字证书并分配给得到的签署人信息对应的签署人,具体包括:第一平台向数字证书颁发机构申请数字证书,将申请到的数字证书与签署人的证件号对应保存至存有数字证书的数据库中,并将申请到的数字证书与对应的私钥建立关联,将私钥保存;

更进一步地,在本实施例中,第一平台向数字证书颁发机构申请数字证书的过程在此不再详细说明;

例如,在本实施例中,签署人的数字证书存在,签署人的数字证书具体为miidrzccai+gawibagieegaaatanbgkqhkig9w0baqufadbcmqswcqydvqqgewjdtjelmakga1uecgwcrlqxejaqbgnvbasmcunsb3vku2lnbjesmbaga1······8migkm8xsjfydscnwydhwg8lljfb60xbpcoakzowvwhzshlmdg628a3dgfuo。

步骤711:第一平台在得到的合同编号对应的合同记录中读取第一存储地址,根据第一存储地址查找到待签署合同,打开待签署合同;

步骤712:第一平台将签署人的签名图片添加到待签署合同中对应的位置后作为当前待签署合同,对当前待签署合同进行计算得到第一摘要值;

在本实施例中,对当前待签署合同进行计算得到第一摘要值,具体为:第一平台根据预设算法对当前待签署合同进行哈希运算得到第一摘要值;

优选地,预设算法为sha256;其中预设算法不限为sha256,还可以为sm3等;

例如,在本实施例中,第一平台将签署人的签名图片添加到待签署合同中供方签名的位置,根据sha256算法对对当前待签署合同进行哈希运算得到第一摘要值为bdgf34gf3erbg3534h56。

步骤713:第一平台查找到与签署人的数字证书对应的私钥,使用私钥对第一摘要值签名得到第一签名信息,将第一签名信息和签署人的数字证书写至当前待签署合同中;

例如,在本实施例中,第一平台查找到与签署人的数字证书对应的私钥为8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1,对上述第一摘要值bdgf34gf3erbg3534h56签名得到的第一签名信息为jf9w32r38ofjoidsvfjlk2enfh84y832nfjncvnu3rh8348534jgufdh8gv73948534g834g8hru3hfg84bfgu43hg8uyiequoweu18394unf,将第一签名信息和签署人的数字证书miidrzccai+gawibagieegaaatanbgkqhkig9w0baqufadbcmqswcqydvqqgewjdtjelmakga1uecgwcrlqxejaqbgnvbasmcunsb3vku2lnbjesmbaga1······8migkm8xsjfydscnwydhwg8lljfb60xbpcoakzowvwhzshlmdg628a3dgfuo写至当前待签署合同中对应的位置。

步骤714:第一平台获取当前日期,并将当前日期添加到当前待签署合同中对应的位置后作为当前待签署合同,对当前待签署合同进行计算得到第二摘要值;

在本实施例中,对当前待签署合同进行计算得到第二摘要值的方法同步骤712中对当前待签署合同进行计算得到第一摘要值的方法相同,在此不再赘述;

例如,在本实施例中,第一平台获取到当前日期为2017年1月8日,将其添加到当前待签署合同中签署日期之后作为当前代签署合同,对当前待签署合同进行计算得到的第二摘要值为bdf242t43fhbthyjy8i6。

步骤715:第一平台查找到与签署人的数字证书对应的私钥,使用私钥对第二摘要值签名得到第二签名信息,将第二签名信息和签署人的数字证书写至当前待签署合同中;

例如,在本实施例中,第一平台使用私钥8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1对上述第二摘要值bdf242t43fhbthyjy8i6签名得到第二签名信息*dsfwet344tfgfbtgrh4h54tyrhbfhn4th45t5ytjk67i6op874tyh4b。

进一步地,在本实施例中,步骤712和步骤713与步骤714和步骤715的执行顺序可以互换。

步骤716:第一平台生成含有待展示合同、签署人的签名图片和日期图片的页面,通过第二平台打开生成的页面并显示给签署人,当接收到签署触发信息时,执行步骤717;

具体地,第一平台将待展示合同、签署人的签名图片、签署人的签章图片和日期图片添加到预设操作页面中,并将预设操作页面的地址返回给第二平台,第二平台打开接收到的地址对应的预设操作页面,将待展示合同、签署人的签名图片、签署人的签章图片和日期图片显示给签署人,当接收到签署触发信息时,执行步骤717;

进一步地,在本实施例中,当第二平台将待展示合同、签署人的签名图片、签署人的签章图片和日期图片显示给签署人后,签署人根据自身需求将签名图片和或签章图片和或日期图片拖动到待展示合同中对应的位置后,点击签署图标,第一平台根据签署人选择的图片对待签署合同执行签署操作。

优选地,在本实施例中,签署人将签名图片、签章图片和日期图片均拖动到待展示合同中对应的位置。

步骤717:第一平台判断签署人的数字证书是否存在,是则执行步骤718,否则申请数字证书并分配给得到的签署人信息对应的签署人,执行步骤718;

在本实施例中,步骤717的实现方法同步骤710的实现方法相同,在此不再赘述。

例如,在本实施例中,签署人的数字证书存在,签署人的数字证书具体为miidrzccai+gawibagieegaaatanbgkqhkig9w0baqufadbcmqswcqydvqqgewjdtjelmakga1uecgwcrlqxejaqbgnvbasmcunsb3vku2lnbjesmbaga1······8migkm8xsjfydscnwydhwg8lljfb60xbpcoakzowvwhzshlmdg628a3dgfuo。

步骤718:第一平台在得到的合同编号对应的合同记录中读取第一存储地址,根据第一存储地址查找到待签署合同,打开待签署合同;

步骤719:第一平台将签署人的签名图片添加到待签署合同中对应的位置后作为当前待签署合同,对当前待签署合同进行计算得到第一摘要值;

在本实施例中,对当前待签署合同进行计算得到第一摘要值,具体为:第一平台根据预设算法对当前待签署合同进行哈希运算得到第一摘要值;

优选地,预设算法为sha256;其中预设算法不限为sha256,还可以为sm3等;

例如,在本实施例中,第一平台根据sha256算法对对当前待签署合同进行哈希运算得到第一摘要值为bdgf34gf3erbg3534h56。

步骤720:第一平台查找到与签署人的数字证书对应的私钥,使用私钥对第一摘要值签名得到第一签名信息,将第一签名信息和签署人的数字证书写至当前待签署合同中;

例如,在本实施例中,第一平台查找到与签署人的数字证书对应的私钥为8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1,对上述第一摘要值bdgf34gf3erbg3534h56签名得到的第一签名信息为jf9w32r38ofjoidsvfjlk2enfh84y832nfjncvnu3rh8348534jgufdh8gv73948534g834g8hru3hfg84bfgu43hg8uyiequoweu18394unf。

步骤721:第一平台获取当前日期,并将当前日期添加到当前待签署合同中对应的位置后作为当前待签署合同,对当前待签署合同进行计算得到第二摘要值;

在本实施例中,对当前待签署合同进行计算得到第二摘要值的方法同步骤712中对当前待签署合同进行计算得到第一摘要值的方法相同,在此不再赘述;

例如,在本实施例中,计算得到的第二摘要值为bdf242t43fhbthyjy8i6。

步骤722:第一平台查找到与签署人的数字证书对应的私钥,使用私钥对第二摘要值签名得到第二签名信息,将第二签名信息和签署人的数字证书写至当前待签署合同中;

例如,在本实施例中,第一平台使用私钥8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1对第二摘要值bdf242t43fhbthyjy8i6签名得到第二签名信息dsfwet344tfgfbtgrh4h54tyrhbfhn4th45t5ytjk67i6op874tyh4b。

步骤723:第一平台将签署人的签章图片添加到当前待签署合同中对应的位置后作为当前待签署合同,对当前待签署合同进行计算得到第三摘要值;

步骤724:第一平台查找到与签署人的数字证书对应的私钥,使用私钥对第三摘要值签名得到第三签名信息,将第三签名信息和签署人的数字证书写至当前待签署合同中;

例如,在本实施例中,第一平台使用私钥8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1对第三摘要值bqwwegr343gh5yhyjolp5签名得到第三签名信息t5y54hfjyhh4y4hgtrh4565jghmbvnrth4545gsxrthy45y。

进一步地,在本实施例中,步骤719和步骤720、步骤721和步骤722、步骤723和步骤724的执行顺序可以彼此互换。

步骤725:第一平台将当前待签署合同作为已签署合同,将已签署合同保存,并返回签署完成信息给第二平台。

优选地,在本实施例中,步骤702中,第一平台接收到的第一签署合同请求中含有签署完成信息返回地址;

对应地,步骤725中,第一平台返回签署完成信息给第二平台,具体为:第一平台根据第一签署合同请求中含有签署完成信息返回地址,将签署完成信息返回给第二平台;

进一步地,在本实施例中,当第一签署合同请求中不指定签署完成信息返回地址时,对应地,步骤715中,第一平台返回签署完成信息给第二平台,具体为:第一平台根据默认地址将签署完成信息返回给第二平台。

更进一步地,在本实施例中,当步骤412和步骤413具体为步骤412-2时,或者当步骤509和步骤510具体为步骤509-2时,对应地:

步骤706具体为:第一平台根据得到的合同编号查找到对应的待签署合同,将查找到的待签署合同转换为图片作为待展示合同;

步骤711具体为:第一平台打开查找到的待签署合同。

当第二平台调用第七函数接口向第一平台发送第二签署合同请求时,包括:

步骤801:第七函数接口判断第二签署合同请求是否合法,是则将第二签署合同请求发送给第一平台,执行步骤802;否则返回错误码给第二平台,结束;

在本实施例中,第七函数接口具体为:stringautosign(stringsignerinfo,stringcontractnum,stringcallurl);

第二签署合同请求,具体为:自动签署合同请求;

进一步地,在本实施例中,第七函数接口判断第二签署合同请求是否合法,具体为:

判断第二签署合同请求中含有的合同编号是否不超过第三预设长度;

判断第二签署合同请求中含有的签署人信息是否符合预设格式;

如判断结果均为是,则判定第二签署合同请求合法;否则判定第二签署合同请求不合法。

优选地,在本实施例中,第三预设长度为64位,预设格式为json格式,并且签署人信息中的每一项均符合对应的预设条件,例如,签署人的手机号必须为数字。

更进一步地,在本实施例中,第七函数接口将第二签署合同请求发送给第一平台,具体为:将第二签署合同请求封装成json格式的数据,并对json格式的数据加密得到第二签署合同请求密文,对第二签署合同请求密文计算校验值,将第二签署合同请求密文、计算得到的校验值及函数接口标识等发送给第一平台。

需说明地,第一平台根据函数接口标识的不同,对应执行不同的操作。

步骤802:第一平台解析接收到的第二签署合同请求得到认证码、合同编号和签署人信息;

在本实施例中,签署人信息包括但不限于:签署人姓名、签署人手机号码、签署人证件类型及证件号、签署类型(企业或者个人)等;

进一步地,在本实施例中,当签署人为个人时,签署人证件类型及证件号优选为身份证及身份证号;当签署人为企业时,签署人证件类型及证件号优选为营业执照及营业执照编号;

优选地,在本实施例中,签署人为个人;

例如,在本实施例中,第一平台解析接收到的第二签署合同请求得到的认证码为123456、合同编号为contract0001、签署人信息为{"type":"0","cardtype":"0","idcardnum":"0000111122223333","name":"张三","phonesn":"18812345678"}。

步骤803:第一平台判断是否存在与得到的合同编号对应的合同记录,是则执行步骤804,否则返回错误码给第二平台,结束;

具体地,第一平台在存有合同记录的数据库中查找合同记录,依次读取查找到的合同记录中含有的合同编号,判断读取到的合同编号与解析得到的合同编号是否相同,是则判定存在与得到的合同编号对应的合同记录,否则判定不存在与得到的合同编号对应的合同记录;

例如,在本实施例中,第一平台在存有合同记录的数据库中查找到与得到的合同编号相同的合同编号contract0001,判定存在与得到的合同编号对应的合同记录。

步骤804:第一平台判断与得到的合同编号对应的合同记录中是否含有得到的签署人信息,是则读取得到的签署人信息对应的认证码,执行步骤805,否则返回错误码给第二平台,结束;

步骤805:第一平台判断读取到的认证码与得到的认证码是否匹配,是则执行步骤806,否则返回错误码给第二平台,结束;

具体地,第一平台判断读取到的认证码与得到的认证码是否相同,是则判定读取到的认证码与得到的认证码匹配,执行步骤806;否则判定读取到的认证码与得到的认证码不匹配,返回错误码给第二平台,结束;

例如,在本实施例中,第一平台读取的认证码为123456,与得到的认证码是否相同,则执行步骤806。

步骤806:第一平台判断得到的签署人信息对应的签署人的数字证书是否存在,是则执行步骤807,否则申请数字证书并分配给得到的签署人信息对应的签署人,执行步骤807;

在本实施例中,步骤806的实现方法同步骤710的实现方法相同,在此不再赘述;

例如,在本实施例中,签署人的数字证书存在,签署人的数字证书具体为miidrzccai+gawibagieegaaatanbgkqhkig9w0baqufadbcmqswcqydvqqgewjdtjelmakga1uecgwcrlqxejaqbgnvbasmcunsb3vku2lnbjesmbaga1······8migkm8xsjfydscnwydhwg8lljfb60xbpcoakzowvwhzshlmdg628a3dgfuo。

步骤807:第一平台在得到的合同编号对应的合同记录中读取第一存储地址,根据第一存储地址查找到待签署合同,打开待签署合同;

步骤808:第一平台对查找到的待签署合同进行计算得到第四摘要值;

具体地,第一平台根据预设算法对待签署合同进行哈希运算得到第四摘要值;

优选地,预设算法为sha256;其中预设算法不限为sha256,还可以为sm3等;

例如,在本实施例中,第一平台根据sha256算法对对待签署合同进行哈希运算得到第四摘要值为bgew23gghfh4rty45y2。

步骤809:第一平台查找到与签署人的数字证书对应的私钥,使用私钥对第四摘要值签名得到第四签名信息,将第四签名信息和签署人的数字证书写至待签署合同后作为已签署合同;

例如,在本实施例中,第一平台查找到与签署人的数字证书对应的私钥为8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1,对上述第四摘要值bgew23gghfh4rty45y2签名得到的第四签名信息为45htgfhr4th46hfsbghhjurykuyrmbnmotipo807f12wzse24efcgeb53y4y53hth566u78。

步骤810:第一平台将已签署合同保存,并返回签署完成信息给第二平台,结束。

进一步地,在本实施例中,当步骤202中第一平台得到的合同模板中含有设定的签署位置时,所述签署位置具体为签名位置和或签章位置和或签署日期位置;

对应地,步骤808和步骤809具体为:第一平台根据签署合同请求中含有的签署人信息查找签署人的签名图片和或签章图片,并根据查找到的签名图片和或签章图片和或当前日期对待签署合同执行签署操作;

更进一步地,当步骤202中第一平台得到的合同模板中含有的设定的签署位置包括签章位置时,如第一平台根据签署合同请求中含有的签署人信息未查找到签署人的签章图片,则通过第二平台提示签署人上传签章图片。

在本实施例中,第一平台为第二平台提供了多种签署电子合同的方法,第二平台可以选择手动签署,也可以选择自动签署。

实施例四

本发明实施例四提供一种电子合同的签署系统,如图4所示,包括:第二平台模块1000、函数接口模块2000和第一平台模块3000;

其中,函数接口模块2000包括第六函数接口子模块2001和第七函数接口子模块2002;

所述第二平台模块1000,用于调用第六函数接口子模块2001向第一平台模块3000发送第一签署合同请求;

第六函数接口子模块2001,包括:

第一判断单元2001-1,用于判断第一签署合同请求是否合法;

在本实施例中,第一判断单元2001-1,具体用于:

判断第一签署合同请求中含有的合同编号是否不超过第三预设长度;

判断第一签署合同请求中含有的签署人信息是否符合第二预设格式;

如判断结果均为是,则判定第一签署合同请求合法;否则判定第一签署合同请求不合法。

第一发送单元2001-2,用于当第一判断单元2001-1判断出第一签署合同请求合法时,将第一签署合同请求发送给第一平台模块3000;

第一报错单元2001-3,用于当第一判断单元2001-1判断出第一签署合同请求不合法时,返回错误码给第二平台模块1000;

第一平台模块3000,包括:

第一接收子模块3001,用于接收第六函数接口子模块2001发送来的第一签署合同请求;

第一查找子模块3002,用于根据第一接收子模块3001接收到的第一签署合同请求中含有的合同编号查找对应保存的待签署合同;

在本实施例中,第一查找子模块3002,具体用于:根据第一签署合同请求中含有的合同编号查找到对应的合同记录,根据合同记录中存有的第一存储地址查找到对应的待签署合同。

第一获取子模块3003,用于获取待展示合同;

在本实施例中,第一获取子模块3003,具体用于:

将待签署合同转换为图片后作为待展示合同;

或者,

根据签署合同请求中含有的合同编号查找到对应的合同记录,根据所合同记录中存有的第二存储地址查找到对应的待展示合同。

第二查找子模块3004,用于根据第一接收子模块3001接收到的第一签署合同请求中含有的签署人信息查找对应的签署人的签署图片;

第一生成子模块3005,用于生成含有待展示合同和签署图片的页面;

第一显示子模块3006,用于通过第二平台模块1000打开第一生成子模块3005生成的页面并显示给签署人;

第一接收子模块3001,还用于接收签署人在第一显示子模块3006显示的页面中的签署触发信息;

第一签署子模块3007,用于当第一接收子模块3001接收到签署人在第一显示子模块3006显示的页面中的签署触发信息时,根据签署人选择的签署图片对第一查找子模块3002查找到的待签署合同执行签署操作;

在本实施例中,第一签署子模块3007,具体用于:

将待签署合同作为当前待签署合同,分别将签署人选择的签署图片和或签署人选择的签署图片对应的信息添加到当前待签署合同中对应的位置后作为当前待签署合同,根据预设算法对当前待签署合同计算出摘要值;根据第一签署合同请求中含有的签署人信息查找到与签署人的数字证书对应的私钥,使用私钥对摘要值签名得到签名信息,将签名信息和签署人的数字证书写至当前待签署合同中。

对应地,第一平台模块3000,还包括:第二判断子模块、第一申请子模块;

其中,第二判断子模块,用于判断第一签署合同请求中含有的签署人信息对应的签署人的数字证书是否存在;

第一签署子模块3007,具体用于:当第二判断子模块判断出第一签署合同请求中含有的签署人信息对应的签署人的数字证书存在时,根据签署人选择的签名图片对第一查找子模块查找到的待签署合同执行签署操作;

第一申请子模块,用于当第二判断子模块判断出第一签署合同请求中含有的签署人信息对应的签署人的数字证书不存在时,申请数字证书并分配给所述签署人;

第一签署子模块3007,还用于在第一申请子模块申请数字证书并分配给签署人之后,根据签署人选择的签名图片对第一查找子模块查找到的待签署合同执行签署操作。

第一发送子模块3008,用于在第一签署子模块3007执行签署操作之后,返回响应给第二平台模块1000;

在本实施例中,第二平台模块1000,还用于调用第七函数接口子模块2002向第一平台模块3000发送第二签署合同请求;

第七函数接口子模块2002,包括:

第二判断单元2002-1,用于判断第二签署合同请求是否合法;

在本实施例中,第二判断单元2002-1,具体用于:

判断所述第二签署合同请求中含有的合同编号是否不超过第三预设长度;

判断所述第二签署合同请求中含有的签署人信息是否符合第二预设格式;

如判断结果均为是,则判定所述第二签署合同请求合法;否则判定所述第二签署合同请求不合法。

第二发送单元2002-2,用于当第二判断单元2002-1判断出第二签署合同请求合法时,将第二签署合同请求发送给第一平台模块3000;

第二报错单元2002-3,用于当第二判断单元2002-1判断出第二签署合同请求不合法时,返回错误码给第二平台模块1000;

对应地,第一平台模块,还包括:

第二接收子模块3009,用于接收第七函数接口子模块2002发送来的第二签署合同请求;

第三查找子模块3010,用于根据第二接收子模块3009接收到的第二签署合同请求中含有的合同编号查找对应保存的待签署合同;

在本实施例中,第三查找子模块3010,具体用于:根据第二签署合同请求中含有的合同编号查找到对应的合同记录,根据合同记录中存有的第一存储地址查找到对应的待签署合同。

第二签署子模块3011,用于对第三查找子模块3010查找到的待签署合同执行签署操作;

在本实施例中,第二签署子模块3011,具体用于:

根据预设算法对待签署合同计算出摘要值;根据第二签署合同请求中含有的签署人信息查找到与签署人的数字证书对应的私钥,使用私钥对摘要值签名得到签名信息,将签名信息和签署人的数字证书写至待签署合同中。

对应地,第一平台模块3000,还包括:第三判断子模块和第二申请子模块;

其中,第三判断子模块,用于判断第二签署合同请求中含有的签署人信息对应的签署人的数字证书是否存在;

第二签署子模块3011,具体用于:当第三判断子模块判断出第二签署合同请求中含有的签署人信息对应的签署人的数字证书存在时,对第三查找子模块3010查找到的待签署合同执行签署操作;

第二申请子模块,用于当第三判断子模块判断出第二签署合同请求中含有的签署人信息对应的签署人的数字证书不存在时,申请数字证书并分配给签署人;

第二签署子模块3011,还用于在第二申请子模块申请数字证书并分配给签署人之后,对第三查找子模块3010查找到的待签署合同执行签署操作。

进一步地,在本实施例中,当第三查找子模块3010根据第二签署合同请求中含有的合同编号查找到的对应保存的待签署合同中含有设定的签署位置时;所述签署位置包括签名位置和或签章位置和或签署日期位置;

对应地,第一平台模块,还包括:第四查找子模块;

第四查找子模块,用于在第二签署子模块3011对第三查找子模块3010查找到的待签署合同执行签署操作之前,根据第二签署合同请求中含有的签署人信息查找对应的签署人的签名图片和或签章图片;

第二签署子模块3011,具体用于:根据第四查找子模块查找到的签名图片和或签章图片和或当前日期对待签署合同执行签署操作。

更进一步地,当所述签署位置包括签章位置时,第一平台模块3000,还包括:第四判断子模块和提示子模块;

其中,第四判断子模块,用于判断第四查找子模块是否查找到签章图片;

第二签署子模块3011,具体用于:当第四判断子模块判断出第四查找子模块查找到签章图片时,对待签署合同执行签署操作;

提示子模块,用于当第四判断子模块判断出第四查找子模块未查找到签章图片时,通过第二平台模块1000提示签署人上传签章图片。

第二发送子模块3012,用于在第二签署子模块3011执行签署操作之后返回响应给第二平台模块1000。

在本实施例中,第二查找子模块3004,具体用于:根据第一签署合同请求中含有的签署人信息查找对应的签署人的签名图片和签章图片;

对应地,第一生成子模块3005,具体用于:生成含有待展示合同、签名图片、签章图片和日期图片的页面。

可选地,第一平台模块3000,还包括:第一判断子模块;

第一判断子模块,用于判断第二查找子模块3004是否查找到签署人的签章图片;

对应地,第一生成子模块3005,具体用于:当第一判断子模块判断出第二查找子模块3004查找到签署人的签章图片时,生成含有待展示合同、签名图片、签章图片和日期图片的页面;当第一判断子模块判断出第二查找子模块3004未查找到签署人的签章图片时,生成含有待展示合同、签名图片和日期图片的页面。

在本实施例中,第一生成子模块3005,具体用于:将待展示合同和签署图片添加到预设操作页面中,并将预设操作页面的地址返回给第二平台模块1000;

对应地,第一显示子模块3006,具体用于:通过第二平台模块打开其接收到的地址对应的预设操作页面,并将待展示合同和签署图片显示给签署人。

在本实施例中,第二查找子模块3004和第四查找子模块,具体用于:根据签署人信息查找对应的签署人的签名图片,判断是否查找成功,是则继续;否则根据签署人信息生成对应的签署人的签名图片,继续。

在本实施例中,函数接口模块2000,还包括:第五函数接口子模块;对应地,第一平台模块3000,还包括:第三接收子模块、第三发送子模块、第一保存子模块、第五判断子模块和第六判断子模块;

第二平台模块1000,还用于调用第五函数接口子模块向第一平台发送认证身份请求;

第五函数接口子模块,包括:

第三判断单元,用于判断认证身份请求是否合法;

在本实施例中,第三判断单元,具体用于:

判断认证身份请求中含有的合同编号是否不超过第三预设长度;

判断认证身份请求中含有的签署人信息是否符合第二预设格式;

如判断结果均为是,则判定认证身份请求合法;否则判定认证身份请求不合法。

第三发送单元,用于当第三判断单元判断出认证身份请求合法时,将认证身份请求发送给第一平台模块;

第三报错单元,用于当第三判断单元判断出认证身份请求不合法时,返回错误码给第二平台模块1000;

第三接收子模块,用于接收认证身份请求;

第三发送子模块,用于根据第三接收子模块接收到的认证身份请求中含有的签署人身份信息向签署人发送认证码;

第一保存子模块,用于将签署人身份信息和认证码对应保存至认证身份请求中含有的合同编号对应的合同记录中;

第五判断子模块,用于判断第一接收子模块3001接收到的第一签署合同请求中含有的认证码是否正确;

第一查找子模块,具体用于:当第五判断子模块判断出第一接收子模块3001接收到的第一签署合同请求中含有的认证码正确时,根据第一签署合同请求中含有的合同编号查找对应的待签署合同;

第一发送子模块3008,还用于当第五判断子模块判断出第一接收子模块3001接收到的第一签署合同请求中含有的认证码不正确时,返回错误码给第二平台模块1000;

所述第六判断子模块,用于判断所述第二接收子模块接收到的第二签署合同请求中含有的认证码是否正确;

所述第三查找子模块,具体用于:当所述第六判断子模块判断出所述第二接收子模块接收到的第二签署合同请求中含有的认证码正确时,根据所述第二签署合同请求中含有的合同编号查找对应的待签署合同;

所述第二发送子模块,还用于当所述第六判断子模块判断出所述第二接收子模块接收到的第二签署合同请求中含有的认证码不正确时,返回错误码给所述第二平台模块。

其中,第五判断子模块和第六判断子模块,具体用于:根据接收到的请求中含有的合同编号查找到对应的合同记录,在合同记录中读取与接收到的请求中含有的签署人信息对应保存的认证码,判断读取到的认证码与接收到的请求中含有的认证码是否匹配,是则判定接收到的请求中含有的认证码正确;否则判定接收到的请求中含有的认证码不正确。

在本实施例中,第一发送子模块3008和第二发送子模块3012,具体用于:根据接收到的请求中含有的返回响应地址返回响应给第二平台模块。

实施例五

本发明实施例五提供一种电子合同的创建系统,如图5所示,包括:包括第二平台模块4000、函数接口模块5000和第一平台模块6000;

其中,函数接口模块5000,包括:第三函数接口子模块5001和第四函数接口子模块5002;

第二平台模块4000,用于调用第三函数接口子模块5001向第一平台发送第一创建合同请求;

第三函数接口子模块5001,包括:

第四判断单元5001-1,用于判断第一创建合同请求是否合法;

在本实施例中,第四判断单元,具体用于:

判断第一创建合同请求中含有的模板名称是否不为空且不超过第一预设长度;

判断第一创建合同请求中含有的替换数据是否符合第二预设格式;

如判断结果均为是,则判定第一创建合同请求合法;否则判定第一创建合同请求不合法。

第四发送单元5001-2,用于当第四判断单元5001-1判断出第一创建合同请求合法时,将第一创建合同请求发送给第一平台模块6000;

第四报错单元5001-3,用于当第四判断单元5001-1判断出第一创建合同请求不合法时,返回错误码给第二平台模块4000;

第一平台模块6000,包括:

第四接收子模块6001,用于接收第一创建合同请求;

第五查找子模块6002,用于根据第四接收子模块6001接收到的第一创建合同请求中含有的模板标识查找对应的合同模板;

第二生成子模块6003,用于根据第五查找子模块6002查找到的合同模板生成待创建合同;

第二获取子模块6004,用于获取合同编号;

第三生成子模块6005,用于根据第二生成子模块6003生成的待创建合同和第四接收子模块6001接收到的第一创建合同请求中含有的替换数据生成待签署合同;

在本实施例中,第三生成子模块6005,具体用于:使用第一创建合同请求中含有的替换数据替换待创建合同中相应位置上的标识符得到合同文档,将合同文档转换为第一预设格式后作为待签署合同。

第二保存子模块6006,用于存储第三生成子模块6005生成的待签署合同得到第一存储地址;

第三保存子模块6007,用于将第二保存子模块6006得到的第一存储地址与第二获取子模块6004获取到的合同编号对应保存;

第四发送子模块6008,用于返回响应给第二平台模块4000;

在本实施例中,第二平台模块4000,还用于调用第四函数接口子模块5002向第一平台模块6000发送第二创建合同请求;

第四函数接口子模块5002,包括:

第五判断单元5002-1,用于判断第二创建合同请求是否合法;

在本实施例中,第五判断单元5002-1,具体用于:

判断第二创建合同请求含有的合同文档的类型是否为支持的文件类型;

判断第二创建合同请求含有的合同文档是否不为空且不超过预设大小;

如判断结果均为是,则判定第二创建合同请求合法;否则判定第二创建合同请求不合法。

第五发送单元5002-2,用于当第五判断单元5002-1判断出第二创建合同请求合法时,将第二创建合同请求发送给第一平台模块6000;

第五报错单元5002-3,用于当第五判断单元5002-1判断出第二创建合同请求不合法时,返回错误码给第二平台模块4000;

对应地,第一平台模块6000,还包括:

第五接收子模块6009,用于接收所述第四函数接口子模块5002发送来的第二创建合同请求;

作为子模块6010,用于将第五接收子模块6009接收到的第二创建合同请求中含有的合同文档作为待签署合同;

在本实施例中,作为子模块6010,包括:

第九判断单元,用于判断第二创建合同请求中含有的合同文档是否为第一预设格式;

作为子单元,用于当第九判断单元判断出第二创建合同请求中含有的合同文档是第一预设格式时,将合同文档作为待签署合同;

转换子单元,用于当第九判断单元判断出第二创建合同请求中含有的合同文档不是第一预设格式时,将合同文档转换为第一预设格式后作为待签署合同。

第三获取子模块6011,用于获取合同编号;

第四保存子模块6012,用于存储作为子模块6010得到的待签署合同得到第一存储地址;

第五保存子模块6013,用于将第四保存子模块6012得到的第一存储地址与第三获取子模块6011获取到的合同编号对应保存;

第五发送子模块6014,用于返回响应给第二平台模块4000。

在本实施例中,函数接口模块5000还包括:第一函数接口子模块;

第二平台模块4000,还用于调用第一函数接口子模块向第一平台模块6000发送添加合同模板请求;

第一函数接口子模块,包括:

第六判断单元,用于判断添加合同模板请求是否合法;

在本实施例中,第六判断单元,具体用于:

判断添加合同模板请求中含有的模板名称是否不为空且不超过第一预设长度;

判断添加合同模板请求中含有的模板是否不为空且不超过第二预设长度;

如判断结果均为是,则判定添加合同模板请求合法;否则判定添加合同模板请求不合法。

第六发送单元,用于当第六判断单元判断出添加合同模板请求合法时,将添加合同模板请求发送给第一平台模块6000;

第六报错单元,用于当第六判断单元判断出添加合同模板请求不合法时,返回错误码给第二平台模块4000;

对应地,第一平台模块6000,还包括:

第六接收子模块,用于接收所述第一函数接口子模块发送来的添加合同模板请求;

第一创建子模块,用于创建添加合同模板请求中含有的合同模板的模板记录;

第六保存子模块,用于存储合同模板得到第三存储地址;

第七保存子模块,用于将第六保存子模块得到的第三存储地址和添加合同模板请求中含有模板标识对应保存至第一创建子模块创建的模板记录中;

第六发送子模块,用于返回响应给第二平台模块4000;

对应地,第五查找子模块6002,具体用于:根据第一创建合同请求中含有的模板标识查找到对应的模板记录,根据模板记录中存有的第三存储地址查找到对应的合同模板。

可选地,第一平台模块6000,还包括:第七判断子模块;

第七判断子模块,用于判断添加合同模板请求中含有的合同模板是否符合转换为第一预设格式的文档的要求;

对应地,第一创建子模块,具体用于:当第七判断子模块判断出添加合同模板请求中含有的合同模板符合转换为第一预设格式的文档的要求时,创建添加合同模板请求中含有的合同模板的模板记录;

第六发送子模块,还用于当第七判断子模块判断出添加合同模板请求中含有的合同模板不符合转换为第一预设格式的文档的要求时,返回错误码给第二平台模块4000。

在本实施例中,第二获取子模块6004和第三获取子模块6011,具体包括:

第七判断单元,用于判断接收到的请求中是否含有合同编号;

读取子单元,用于当第七判断单元判断出接收到的请求中含有合同编号时,读取接收到的请求中含有的合同编号;

生成单元,用于当第七判断单元判断出接收到的请求中不含有合同编号时,生成合同编号。

在本实施例中,第二获取子模块6004和第三获取子模块6011,还包括:

第八判断单元,用于判断接收到的请求中含有的合同编号是否被其他合同占用;

读取单元,具体用于:当第八判断单元判断出接收到的请求中含有的合同编号未被其他合同占用时,读取接收到的请求中含有的合同编号;

第七报错单元,用于当第八判断单元判断出接收到的请求中含有的合同编号被其他合同占用时,返回错误码给第二平台模块4000。

在本实施例中,第一平台模块6000,还包括:第二创建子模块;

第二创建子模块,用于创建待创建合同的合同记录;

对应地,第三保存子模块6007和第五保存子模块6013,具体用于:将第一存储地址与合同编号对应保存至第二创建子模块创建的合同记录中。

可选地,在本实施例中,第一平台模块6000,还包括:第一转换子模块和第八保存子模块;

第一转换子模块,用于在第四发送子模块6008和第五发送子模块6014返回响应给第二平台模块4000之前,将待签署合同转换为图片作为待展示合同;

第八保存子模块,用于存储待展示合同得到第二存储地址,将第二存储地址与合同编号对应保存。

对应地,函数接口模块500,还包括:第二函数接口子模块;

第二平台模块400,还用于调用第二函数接口子模块向第一平台模块6000发送添加水印图片请求;

第二函数接口子模块,包括:

第十判断单元,用于判断添加水印图片请求是否合法;

第七发送单元,用于当第十判断单元判断出添加水印图片请求合法时,发送添加水印图片请求给第一平台模块6000;

第八报错单元,用于当第十判断单元判断出添加水印图片请求不合法时,返回错误码给第二平台模块6000;

第一平台模块6000,还包括:

第七接收子模块,用于接收添加水印图片请求;

第九保存子模块,用于将添加水印图片请求中含有的水印图片保存至第二平台模块4000的账户中;

第八判断子模块,用于在第一转换子模块将待签署合同转换为图片作为待展示合同之后,判断待签署合同是否需要添加水印;

第一添加子模块,用于当第八判断子模块判断出待签署合同需要添加水印时,将第二平台模块4000的账户中存有的水印图片分别添加到待签署合同和待展示合同中。

可选地,第九保存子模块,具体用于:将添加水印图片请求中含有的水印图片和水印图片标识对应保存至第二平台的账户中;

第一添加子模块,具体用于:根据接收到的创建合同请求中含有的水印图片标识在第二平台模块4000的账户中查找到对应的水印图片,将查找到的水印图片分别添加到待签署合同和待展示合同中。

可选地,在本实施例中,函数接口模块5000,还包括:第二函数接口子模块;

第二平台模块4000,还用于调用第二函数接口子模块向第一平台模块6000发送添加水印图片请求;

第二函数接口子模块,包括:

第十判断单元,用于判断添加水印图片请求是否合法;

第七发送单元,用于当第十判断单元判断出添加水印图片请求合法时,发送添加水印图片请求给第一平台模块6000;

第八报错单元,用于当第十判断单元判断出添加水印图片请求不合法时,返回错误码给第二平台模块4000;

第一平台模块6000,还包括:

第八接收子模块,用于接收添加水印图片请求;

第十保存子模块,用于将添加水印图片请求中含有的水印图片保存至第二平台模块4000的账户中;

第九判断子模块,用于在第二保存子模块和第四保存子模块得到第一存储地址之前,判断待签署合同是否需要添加水印;

第二添加子模块,用于当第九判断子模块判断出待签署合同需要添加水印时,将第二平台模块4000的账户中存有的水印图片添加到待签署合同中。

其中,第十保存子模块,具体用于:将添加水印图片请求中含有的水印图片和水印图片标识对应保存至第二平台模块4000的账户中;

对应地,第二添加子模块,具体用于:根据接收到的创建合同请求中含有的水印图片标识在第二平台模块4000的账户中查找到对应的水印图片,将查找到的水印图片添加到待签署合同中。

在本实施例中,所述第九判断单元和所述第十判断单元,具体用于:判断所述添加水印图片请求中含有的水印图片的大小、尺寸和透明度是否均在对应的预设条件内,是则判定添加水印图片请求合法;否则判定添加水印图片请求不合法。

在本实施例中,上述第四发送子模块6008和第五发送子模块6014,具体用于:根据接收到的请求中含有的返回响应地址返回响应给第二平台模块4000。

本发明中,合同订立平台(第一平台)为用户(第二平台)提供了多种创建合同和签署合同的模式,用户可以根据需求进行选择,提升了用户体验。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1