本發(fā)明涉及電子商務領域,尤其涉及一種電子合同的創(chuàng)建、簽署方法及系統(tǒng)。
背景技術(shù):
隨著電子技術(shù)的發(fā)展,傳統(tǒng)合同正逐漸被電子合同所取代,電子合同是雙方或者多方當事人之間通過電子信息網(wǎng)絡以電子的形式達成的設立、變更、終止財產(chǎn)性民事權(quán)利義務關(guān)系的協(xié)議。電子合同具有使用方便,傳輸效率高,不受時間地點的限制等優(yōu)點。
現(xiàn)有技術(shù)中,電子合同的簽署通常是合同訂立平臺為用戶提供固定模式的創(chuàng)建合同和簽署合同等功能,用戶的使用習慣和簽署方式等均受合同訂立平臺的限制,因而不能滿足所有用戶的需求,降低了用戶的體驗。
技術(shù)實現(xiàn)要素:
為解決現(xiàn)有技術(shù)的不足,本發(fā)明提供一種電子合同的創(chuàng)建、簽署方法及系統(tǒng)。
一方面,本發(fā)明提供了一種電子合同的簽署方法,包括:
當?shù)诙脚_調(diào)用第六函數(shù)接口向第一平臺發(fā)送第一簽署合同請求時,執(zhí)行以下操作:
步驟c1:所述第六函數(shù)接口判斷所述第一簽署合同請求是否合法,是則將所述第一簽署合同請求發(fā)送給所述第一平臺;否則返回錯誤碼給所述第二平臺,結(jié)束;
步驟c2:所述第一平臺接收所述第一簽署合同請求,根據(jù)所述第一簽署合同請求中含有的合同編號查找對應保存的待簽署合同;
步驟c3:所述第一平臺獲取待展示合同,根據(jù)所述第一簽署合同請求中含有的簽署人信息查找對應的簽署人的簽署圖片,生成含有所述待展示合同和所述簽署圖片的頁面,通過所述第二平臺打開所述頁面并顯示給所述簽署人,當接收到所述簽署人在所述頁面中的簽署觸發(fā)信息時,執(zhí)行步驟c4;
步驟c4:所述第一平臺根據(jù)所述簽署人選擇的簽署圖片對所述待簽署合同執(zhí)行簽署操作,返回響應給所述第二平臺,結(jié)束;
當?shù)诙脚_調(diào)用第七函數(shù)接口向第一平臺發(fā)送第二簽署合同請求時,執(zhí)行以下操作:
步驟d1:所述第七函數(shù)接口判斷所述第二簽署合同請求是否合法,是則將所述第二簽署合同請求發(fā)送給所述第一平臺;否則返回錯誤碼給所述第二平臺,結(jié)束;
步驟d2:第一平臺接收所述第二簽署合同請求,根據(jù)所述第二簽署合同請求中含有的合同編號查找對應保存的待簽署合同,對所述待簽署合同執(zhí)行簽署操作,返回響應給所述第二平臺,結(jié)束
本發(fā)明還提供了一種電子合同的創(chuàng)建方法,包括:
當?shù)诙脚_調(diào)用第三函數(shù)接口向第一平臺發(fā)送第一創(chuàng)建合同請求時,執(zhí)行以下操作:
步驟a1:所述第三函數(shù)接口判斷所述第一創(chuàng)建合同請求是否合法,是則將所述第一創(chuàng)建合同請求發(fā)送給所述第一平臺;否則返回錯誤碼給所述第二平臺,結(jié)束;
步驟a2:所述第一平臺接收所述第一創(chuàng)建合同請求,根據(jù)所述第一創(chuàng)建合同請求中含有的模板標識查找對應的合同模板,根據(jù)所述合同模板生成待創(chuàng)建合同;
步驟a3:所述第一平臺獲取合同編號,根據(jù)所述待創(chuàng)建合同和所述第一創(chuàng)建合同請求中含有的替換數(shù)據(jù)生成待簽署合同,存儲所述待簽署合同得到第一存儲地址,將所述第一存儲地址與所述合同編號對應保存,返回響應給所述第二平臺,結(jié)束;
當?shù)诙脚_調(diào)用第四函數(shù)接口向第一平臺發(fā)送第二創(chuàng)建合同請求時,執(zhí)行以下操作:
步驟b1:所述第四函數(shù)接口判斷所述第二創(chuàng)建合同請求是否合法,是則將所述第二創(chuàng)建合同請求發(fā)送給所述第一平臺;否則返回錯誤碼給所述第二平臺,結(jié)束;
步驟b2:所述第一平臺接收所述第二創(chuàng)建合同請求,將所述第二創(chuàng)建合同請求中含有的合同文檔作為待簽署合同;
步驟b3:所述第一平臺獲取合同編號,存儲所述待簽署合同得到第一存儲地址,將所述第一存儲地址與所述合同編號對應保存,返回響應給所述第二平臺,結(jié)束。
另一方面,本發(fā)明提供了一種電子合同的簽署系統(tǒng),包括:第二平臺模塊、函數(shù)接口模塊和第一平臺模塊;
所述函數(shù)接口模塊包括第六函數(shù)接口子模塊和第七函數(shù)接口子模塊;
所述第二平臺模塊,用于調(diào)用所述第六函數(shù)接口子模塊向所述第一平臺模塊發(fā)送第一簽署合同請求;
所述第六函數(shù)接口子模塊,包括:
第一判斷單元,用于判斷所述第一簽署合同請求是否合法;
第一發(fā)送單元,用于當所述第一判斷單元判斷出所述第一簽署合同請求合法時,將所述第一簽署合同請求發(fā)送給所述第一平臺模塊;
第一報錯單元,用于當所述第一判斷單元判斷出所述第一簽署合同請求不合法時,返回錯誤碼給所述第二平臺模塊;
所述第一平臺模塊,包括:
第一接收子模塊,用于接收所述第六函數(shù)接口子模塊發(fā)送來的第一簽署合同請求;
第一查找子模塊,用于根據(jù)所述第一接收子模塊接收到的第一簽署合同請求中含有的合同編號查找對應保存的待簽署合同;
第一獲取子模塊,用于獲取待展示合同;
第二查找子模塊,用于根據(jù)所述第一接收子模塊接收到的第一簽署合同請求中含有的簽署人信息查找對應的簽署人的簽署圖片;
第一生成子模塊,用于生成含有所述待展示合同和所述簽署圖片的頁面;
第一顯示子模塊,用于通過所述第二平臺模塊打開所述第一生成子模塊生成的頁面并顯示給所述簽署人;
所述第一接收子模塊,還用于接收所述簽署人在所述第一顯示子模塊顯示的頁面中的簽署觸發(fā)信息;
第一簽署子模塊,用于當所述第一接收子模塊接收到所述簽署人在所述第一顯示子模塊顯示的頁面中的簽署觸發(fā)信息時,根據(jù)所述簽署人選擇的簽署圖片對所述第一查找子模塊查找到的待簽署合同執(zhí)行簽署操作;
第一發(fā)送子模塊,用于在所述第一簽署子模塊執(zhí)行簽署操作之后,返回響應給所述第二平臺模塊;
所述第二平臺模塊,還用于調(diào)用所述第七函數(shù)接口子模塊向所述第一平臺模塊發(fā)送第二簽署合同請求;
所述第七函數(shù)接口子模塊,包括:
第二判斷單元,用于判斷所述第二簽署合同請求是否合法;
第二發(fā)送單元,用于當所述第二判斷單元判斷出所述第二簽署合同請求合法時,將所述第二簽署合同請求發(fā)送給所述第一平臺模塊;
第二報錯單元,用于當所述第二判斷單元判斷出所述第二簽署合同請求不合法時,返回錯誤碼給所述第二平臺模塊;
所述第一平臺模塊,還包括:
第二接收子模塊,用于接收所述第七函數(shù)接口子模塊發(fā)送來的第二簽署合同請求;
第三查找子模塊,用于根據(jù)所述第二接收子模塊接收到的第二簽署合同請求中含有的合同編號查找對應保存的待簽署合同;
第二簽署子模塊,用于對所述第三查找子模塊查找到的待簽署合同執(zhí)行簽署操作;
第二發(fā)送子模塊,用于在所述第二簽署子模塊執(zhí)行簽署操作之后返回響應給所述第二平臺模塊。
本發(fā)明還提供了一種電子合同的創(chuàng)建系統(tǒng),包括:第二平臺模塊、函數(shù)接口模塊和第一平臺模塊;
所述函數(shù)接口模塊,包括:第三函數(shù)接口子模塊和第四函數(shù)接口子模塊;
所述第二平臺模塊,用于調(diào)用所述第三函數(shù)接口子模塊向第一平臺模塊發(fā)送第一創(chuàng)建合同請求;
所述第三函數(shù)接口子模塊,包括:
第四判斷單元,用于判斷所述第一創(chuàng)建合同請求是否合法;
第四發(fā)送單元,用于當所述第四判斷單元判斷出所述第一創(chuàng)建合同請求合法時,將所述第一創(chuàng)建合同請求發(fā)送給所述第一平臺模塊;
第四報錯單元,用于當所述第四判斷單元判斷出所述第一創(chuàng)建合同請求不合法時,返回錯誤碼給所述第二平臺模塊;
所述第一平臺模塊,包括:
第四接收子模塊,用于接收所述第一創(chuàng)建合同請求;
第五查找子模塊,用于根據(jù)所述第四接收子模塊接收到的第一創(chuàng)建合同請求中含有的模板標識查找對應的合同模板;
第二生成子模塊,用于根據(jù)所述第五查找子模塊查找到的合同模板生成待創(chuàng)建合同;
第二獲取子模塊,用于獲取合同編號;
第三生成子模塊,用于根據(jù)所述第二生成子模塊生成的待創(chuàng)建合同和所述第四接收子模塊接收到的第一創(chuàng)建合同請求中含有的替換數(shù)據(jù)生成待簽署合同;
第二保存子模塊,用于存儲所述第三生成子模塊生成的待簽署合同得到第一存儲地址;
第三保存子模塊,用于將所述第二保存子模塊得到的第一存儲地址與所述第二獲取子模塊獲取到的合同編號對應保存;
第四發(fā)送子模塊,用于返回響應給所述第二平臺模塊;
所述第二平臺模塊,還用于調(diào)用第四函數(shù)接口子模塊向第一平臺模塊發(fā)送第二創(chuàng)建合同請求;
所述第四函數(shù)接口子模塊,包括:
第五判斷單元,用于判斷所述第二創(chuàng)建合同請求是否合法;
第五發(fā)送單元,用于當所述第五判斷單元判斷出所述第二創(chuàng)建合同請求合法時,將所述第二創(chuàng)建合同請求發(fā)送給所述第一平臺模塊;
第五報錯單元,用于當所述第五判斷單元判斷出所述第二創(chuàng)建合同請求不合法時,返回錯誤碼給所述第二平臺模塊;
所述第一平臺模塊,還包括:
第五接收子模塊,用于接收所述第四函數(shù)接口子模塊發(fā)送來的第二創(chuàng)建合同請求;
作為子模塊,用于將所述第五接收子模塊接收到的第二創(chuàng)建合同請求中含有的合同文檔作為待簽署合同;
第三獲取子模塊,用于獲取合同編號;
第四保存子模塊,用于存儲所述作為子模塊得到的待簽署合同得到第一存儲地址;
第五保存子模塊,用于將所述第四保存子模塊得到的第一存儲地址與所述第三獲取子模塊獲取到的合同編號對應保存;
第五發(fā)送子模塊,用于返回響應給所述第二平臺模塊。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點:
本發(fā)明中,為用戶提供了多種創(chuàng)建合同和簽署合同的模式,用戶可以根據(jù)需求進行選擇,提升了用戶體驗。
附圖說明
圖1為本發(fā)明實施例二提供的一種電子合同的創(chuàng)建方法流程圖;
圖2和圖3為發(fā)明實施例三提供的一種電子合同的簽署方法流程圖;
圖4為本發(fā)明實施例四提供的一種電子合同的簽署系統(tǒng)的模塊組成框圖;
圖5為本發(fā)明實施例五提供的一種電子合同的創(chuàng)建系統(tǒng)的模塊組成框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整的描述;顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域技術(shù)人員在沒有付出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明中,用戶(以下簡稱:第二平臺)集成合同訂立平臺(以下簡稱:第一平臺)提供的sdk,當簽署人向第二平臺發(fā)起創(chuàng)建或者簽署合同操作時,第二平臺通過調(diào)用sdk中的接口向第一平臺發(fā)送相應的請求,第一平臺根據(jù)接收到的請求執(zhí)行相應的操作;其中,在第二平臺集成第一平臺提供的sdk時,第一平臺創(chuàng)建與第二平臺對應的賬戶;并且第二平臺在與第一平臺第一次通訊時,第一平臺為第二平臺分配唯一的訪問令牌,第二平臺使用該訪問令牌與第一平臺進行后續(xù)的數(shù)據(jù)通訊。
實施例一
本發(fā)明實施例一提供一種電子合同的創(chuàng)建、簽署方法,其中,電子合同的簽署方法,包括:
當?shù)诙脚_調(diào)用第六函數(shù)接口向第一平臺發(fā)送第一簽署合同請求時,執(zhí)行以下操作:
步驟c1:第六函數(shù)接口判斷第一簽署合同請求是否合法,是則將第一簽署合同請求發(fā)送給第一平臺;否則返回錯誤碼給第二平臺,結(jié)束;
步驟c2:第一平臺接收第一簽署合同請求,根據(jù)第一簽署合同請求中含有的合同編號查找對應保存的待簽署合同;
步驟c3:第一平臺獲取待展示合同,根據(jù)第一簽署合同請求中含有的簽署人信息查找對應的簽署人的簽署圖片,生成含有待展示合同和簽署圖片的頁面,通過第二平臺打開生成的頁面并顯示給簽署人,當接收到簽署人在頁面中的簽署觸發(fā)信息時,執(zhí)行步驟c4;
步驟c4:第一平臺根據(jù)簽署人選擇的簽署圖片對待簽署合同執(zhí)行簽署操作,返回響應給第二平臺,結(jié)束;
當?shù)诙脚_調(diào)用第七函數(shù)接口向第一平臺發(fā)送第二簽署合同請求時,執(zhí)行以下操作:
步驟d1:第七函數(shù)接口判斷第二簽署合同請求是否合法,是則將第二簽署合同請求發(fā)送給第一平臺;否則返回錯誤碼給第二平臺,結(jié)束;
步驟d2:第一平臺接收第二簽署合同請求,根據(jù)第二簽署合同請求中含有的合同編號查找對應保存的待簽署合同,對待簽署合同執(zhí)行簽署操作,返回響應給第二平臺,結(jié)束。
其中,電子合同的創(chuàng)建方法,包括:
當?shù)诙脚_調(diào)用第三函數(shù)接口向第一平臺發(fā)送第一創(chuàng)建合同請求時,執(zhí)行以下操作:
步驟a1:第三函數(shù)接口判斷第一創(chuàng)建合同請求是否合法,是則將第一創(chuàng)建合同請求發(fā)送給第一平臺;否則返回錯誤碼給第二平臺,結(jié)束;
步驟a2:第一平臺接收第一創(chuàng)建合同請求,根據(jù)第一創(chuàng)建合同請求中含有的模板標識查找對應的合同模板,根據(jù)合同模板生成待創(chuàng)建合同;
步驟a3:第一平臺獲取合同編號,根據(jù)待創(chuàng)建合同和第一創(chuàng)建合同請求中含有的替換數(shù)據(jù)生成待簽署合同,存儲待簽署合同得到第一存儲地址,將第一存儲地址與合同編號對應保存,返回響應給第二平臺,結(jié)束;
當?shù)诙脚_調(diào)用第四函數(shù)接口向第一平臺發(fā)送第二創(chuàng)建合同請求時,執(zhí)行以下操作:
步驟b1:第四函數(shù)接口判斷第二創(chuàng)建合同請求是否合法,是則將第二創(chuàng)建合同請求發(fā)送給第一平臺;否則返回錯誤碼給第二平臺,結(jié)束;
步驟b2:第一平臺接收第二創(chuàng)建合同請求,將第二創(chuàng)建合同請求中含有的合同文檔作為待簽署合同;
步驟b3:第一平臺獲取合同編號,存儲待簽署合同得到第一存儲地址,將第一存儲地址與合同編號對應保存,返回響應給第二平臺,結(jié)束。
本實施例步驟c3中,根據(jù)第一簽署合同請求中含有的簽署人信息查找對應的簽署人的簽署圖片,具體為:第一平臺根據(jù)第一簽署合同請求中含有的簽署人信息查找對應的簽署人的簽名圖片和簽章圖片;
對應地,步驟c3中,生成含有待展示合同和簽署圖片的頁面,具體為:生成含有待展示合同、簽名圖片、簽章圖片和日期圖片的頁面;
步驟c4中,第一平臺根據(jù)簽署人選擇的簽署圖片對待簽署合同執(zhí)行簽署操作,具體為:
第一平臺將待簽署合同作為當前待簽署合同,分別將簽署人選擇的簽署圖片和或簽署人選擇的簽署圖片對應的信息添加到當前待簽署合同中對應的位置后作為當前待簽署合同,根據(jù)預設算法對當前待簽署合同計算出摘要值;根據(jù)第一簽署合同請求中含有的簽署人信息查找到與簽署人的數(shù)字證書對應的私鑰,使用私鑰對摘要值簽名得到簽名信息,將簽名信息和簽署人的數(shù)字證書寫至當前待簽署合同中。
本實施例步驟a3和步驟b3中,第一平臺獲取合同編號,具體為:
步驟f:第一平臺判斷接收到的請求中是否含有合同編號,是則讀取接收到的請求中含有的合同編號;否則生成合同編號。
實施例二
本發(fā)明實施例二提供一種電子合同的創(chuàng)建方法,如圖1所示,包括:
當?shù)诙脚_調(diào)用第一函數(shù)接口向第一平臺發(fā)送添加合同模板請求時,包括:
步驟201:第一函數(shù)接口判斷添加合同模板請求是否合法,是則將添加合同模板請求發(fā)送給第一平臺,執(zhí)行步驟202;否則返回錯誤碼給所述第二平臺,結(jié)束;
在本實施例中,第一函數(shù)接口判斷添加合同模板請求是否合法,具體包括:
判斷添加合同模板請求中含有的模板名稱是否不為空且不超過第一預設長度;
判斷添加合同模板請求中含有的模板是否不為空且不超過第二預設長度;
如判斷結(jié)果均為是,則判定添加合同模板請求合法;否則判定添加合同模板請求不合法。
優(yōu)選地,在本實施例中,第一預設長度為32bit,第二預設長度為65536個。
更進一步地,在本實施例中,第一函數(shù)接口將添加合同模板請求發(fā)送給第一平臺,具體為:將添加合同模板請求封裝成json格式的數(shù)據(jù),并對json格式的數(shù)據(jù)加密得到添加合同模板請求密文,對添加合同模板請求密文計算校驗值,將添加合同模板請求密文、計算得到的校驗值及函數(shù)接口標識等發(fā)送給第一平臺。
需說明地,第一平臺根據(jù)函數(shù)接口標識的不同,對應執(zhí)行不同的操作。
步驟202:第一平臺解析接收到的添加合同模板請求,得到合同模板及對應的模板標識;
在本實施例中,第一函數(shù)接口具體為stringaddhtmltemplate(stringtemplatename,stringhtml);
例如,在本實施例中,得到的對應的模板標識為template0001,得到的合同模板為:
石油焦購銷合同
供方:supplier合同編號:contractnum
需方:buyer簽訂時間:time
根據(jù)《中華人民共和國和合同法》,供需雙方本著平等互利的原則,經(jīng)友好協(xié)商,就需方向供方購買石油焦事宜達成如下協(xié)議:
一、產(chǎn)品名稱、數(shù)量、金額
名稱:tendertile
數(shù)量(噸):successquantity
單價(元/噸):buyprice
總額(元):sumprice
二、運輸方式及相關(guān)費用承擔:汽運,需方自提。
三、計算方式:全部貨物到達需方指定場地后,供需雙方確認無誤后,供方開具17%增值稅發(fā)票。
四、違約責任:雙方按照本協(xié)議的規(guī)定,任何一方違約,由違約方承擔違約責任。
五、合同生效:本合同傳真件有效,供需雙方簽字蓋章后生效。
供方:supplier需方:buyer
供方蓋章:需方蓋章:
步驟203:第一平臺審核得到的合同模板是否合法,是則執(zhí)行步驟204,否則返回錯誤碼給第二平臺,結(jié)束;
具體地,第一平臺審核得到的合同模板中的內(nèi)容是否符合轉(zhuǎn)換為第一預設格式的文檔的要求,是則判定得到的合同模板合法,否則判定得到的合同模板不合法;
優(yōu)選地,在本實施例中,第一預設格式為pdf格式;
例如,第一平臺審核合同模板中的內(nèi)容是否含有pdf格式的文檔不識別的字符等。
步驟204:第一平臺創(chuàng)建與得到的合同模板對應的模板記錄,將得到的模板標識保存至創(chuàng)建的模板記錄中,并保存模板記錄;
在本實施例中,第一平臺將創(chuàng)建的模板記錄保存至存有模板記錄的數(shù)據(jù)庫中。
步驟205:第一平臺存儲得到的合同模板,并將存儲地址保存至創(chuàng)建的模板記錄中,返回響應的第二平臺;
具體地,第一平臺將得到的合同模板存儲至數(shù)據(jù)庫中,并將存儲地址添加到創(chuàng)建的模板記錄中。
當?shù)诙脚_調(diào)用第二函數(shù)接口向第一平臺發(fā)送添加水印圖片請求時,包括:
步驟301:第二函數(shù)接口判斷添加水印圖片請求是否合法,是則將添加水印圖片請求發(fā)送給第一平臺,執(zhí)行步驟302;否則返回錯誤碼給第二平臺,結(jié)束;
在本實施例中,第二函數(shù)接口判斷添加水印圖片請求是否合法,具體為:
判斷添加水印圖片請求中含有的水印圖片的大小、尺寸和透明度是否均在對應的預設條件,是則判定添加水印圖片請求合法;否則判定添加水印圖片請求不合法。
例如,在本實施例中,水印圖片的大小的預設條件為不大于1m;水印圖片的尺寸的預設條件為寬度和高度均為數(shù)字,且單位為px;水印圖片的透明度的預設條件為在0%-100%內(nèi)。
更進一步地,在本實施例中,第二函數(shù)接口將添加水印圖片請求發(fā)送給第一平臺,具體為:將添加水印圖片請求封裝成json格式的數(shù)據(jù),并對json格式的數(shù)據(jù)加密得到添加水印圖片請求密文,對添加水印圖片請求密文計算校驗值,將添加水印圖片請求密文、計算得到的校驗值及函數(shù)接口標識等發(fā)送給第一平臺。
需說明地,第一平臺根據(jù)函數(shù)接口標識的不同,對應執(zhí)行不同的操作。
步驟302:第一平臺將接收到的添加水印圖片請求中含有的水印圖片保存至第二平臺的賬戶下,返回響應給第二平臺;
在本實施例中,第二函數(shù)接口具體:stringsetwatermark(byte[]img,stringwatermarkset);
進一步地,在本實施例中,當?shù)谝黄脚_接收到的添加水印圖片請求中還含有與水印圖片對應的水印圖片標識時,步驟303中,將添加水印圖片請求中含有的水印圖片保存至第二平臺的賬戶下,具體為:將添加水印圖片請求中含有的水印圖片和水印圖片標識對應保存至第二平臺的賬戶下。
當?shù)诙脚_調(diào)用第三函數(shù)接口向第一平臺發(fā)送第一創(chuàng)建合同請求時,包括:
步驟401:第三函數(shù)接口判斷第一創(chuàng)建合同請求是否合法,是則將第一創(chuàng)建合同請求發(fā)送給第一平臺,執(zhí)行步驟402;否則返回錯誤碼給第二平臺,結(jié)束;
在本實施例中,第三函數(shù)接口具體為:stringcreatecontractbytemplate(stringtemplatename,stringreplaceval,stringcontractnum,booleaniswatermark);
第一創(chuàng)建合同請求具體為:根據(jù)合同模板創(chuàng)建待簽署合同請求;
進一步地,在本實施例中,第三函數(shù)接口判斷第一創(chuàng)建合同請求是否合法,具體包括:
判斷第一創(chuàng)建合同請求中含有的模板名稱是否不為空且不超過第一預設長度;
判斷第一創(chuàng)建合同請求中含有的替換數(shù)據(jù)是否符合預設格式;
如判斷結(jié)果均為是,則判定第一創(chuàng)建合同請求合法;否則判定第一創(chuàng)建合同請求不合法。
優(yōu)選地,在本實施例中,第一預設長度為32bit;預設格式具體為json格式;并且替換數(shù)據(jù)中的每一項均符合對應的預設條件,例如,簽署人的手機號碼必須是數(shù)字。
更進一步地,在本實施例中,第三函數(shù)接口將第一創(chuàng)建合同請求發(fā)送給第一平臺,具體為:將第一創(chuàng)建合同請求封裝成json格式的數(shù)據(jù),并對json格式的數(shù)據(jù)加密得到第一創(chuàng)建合同請求密文,對第一創(chuàng)建合同請求密文計算校驗值,將第一創(chuàng)建合同請求密文、計算得到的校驗值及函數(shù)接口標識等發(fā)送給第一平臺。
需說明地,第一平臺根據(jù)函數(shù)接口標識的不同,對應執(zhí)行不同的操作。
步驟402:第一平臺解析接收到的第一創(chuàng)建合同請求得到模板標識和替換數(shù)據(jù);
例如,在本實施例中,第一平臺解析接收到的第一創(chuàng)建合同請求得到的模板標識為template0001,替換數(shù)據(jù)為{“supplier”:“張三”,“buyer”:“李四”,“contractnum”:“contract0001”,“tendertitle”:“石油焦”,“successquantity”:“500”,“buyprice”:“150”,“sunprice”:“75000”}。
步驟403:第一平臺判斷得到的模板標識是否有效,是則根據(jù)模板標識查找到對應的合同模板,并將其另存作為待創(chuàng)建合同,執(zhí)行步驟404,否則返回錯誤碼給第二平臺,結(jié)束;
具體地,第一平臺判斷保存的模板記錄中是否含有得到的模板標識,是則判定得到的模板標識有效;否則判定得到的模板標識無效;
更加具體地,第一平臺查找數(shù)據(jù)庫中存有的模板記錄,依次讀取查找到的模板記錄中的模板標識,判斷是否能夠讀取到與得到的模板標識相同的模板標識,是則判定得到的模板標識有效,否則判定得到的模板標識無效;
例如,在本實施例中,第一平臺在數(shù)據(jù)庫中讀取到與上述得到的模板標識相同的模板標識,判定得到的模板標識有效。
進一步地,在本實施例中,根據(jù)模板標識查找到對應的合同模板,具體為:第一平臺在含有該模板標識的模板記錄中讀取存有的合同模板的存儲地址,根據(jù)讀取到的存儲地址查找到對應的合同模板。
步驟404:第一平臺判斷第一創(chuàng)建合同請求中是否含有合同編號,是則執(zhí)行步驟406,否則執(zhí)行步驟405;
具體地,第一平臺判斷接收到的第一創(chuàng)建合同請求中是否含有contractnum字段,是則判定接收到的創(chuàng)建合同請求中含有合同編號,否則判定接收到的創(chuàng)建合同請求中不含有合同編號;
例如,在本實施例中,接收到的第一創(chuàng)建合同請求中含有contractnum字段,判定接收到的第一創(chuàng)建合同請求中含有合同編號,且合同編號為contract0001。
步驟405:第一平臺生成合同編號,執(zhí)行步驟407;
步驟406:第一平臺判斷第一創(chuàng)建合同請求中含有的合同編號是否有效,是則執(zhí)行步驟407,否則返回錯誤碼給第二平臺,結(jié)束;
具體地,第一平臺判斷第一創(chuàng)建合同請求中含有的合同編號是否被其他合同占用,是則判定第一創(chuàng)建合同請求中含有的合同編號無效,否則判定第一創(chuàng)建合同請求中含有的合同編號有效;
更加具體地,第一平臺查找數(shù)據(jù)庫中存有的合同記錄,依次讀取查找到的合同記錄中存有的合同編號,判斷讀取到的合同編號與第一創(chuàng)建合同請求中含有的合同編號是否相同,是則判定第一創(chuàng)建合同請求中含有的合同編號無效;否則判定第二創(chuàng)建合同請求中含有的合同編號有效;
步驟407:第一平臺創(chuàng)建與待創(chuàng)建合同對應的合同記錄,并將合同編號添加至創(chuàng)建的合同記錄中,保存合同記錄,執(zhí)行步驟408;
步驟408:第一平臺根據(jù)得到的替換數(shù)據(jù)和待創(chuàng)建合同生成合同文檔;
具體地,第一平臺使用替換數(shù)據(jù)替換待創(chuàng)建合同中相應位置上的標識符得到合同文檔;
例如,在本實施例中,第一平臺將替換數(shù)據(jù)‘張三’替換待創(chuàng)建合同中的標識符‘supplier’,將替換數(shù)據(jù)‘李四’替換待創(chuàng)建合同中的標識符buyer’,得到的合同文檔為:
石油焦購銷合同
供方:張三合同編號:contract0001
需方:李四簽訂時間:time
根據(jù)《中華人民共和國和合同法》,供需雙方本著平等互利的原則,經(jīng)友好協(xié)商,就需方向供方購買石油焦事宜達成如下協(xié)議:
六、產(chǎn)品名稱、數(shù)量、金額
名稱:石油焦
數(shù)量(噸):500
單價(元/噸):150
總額(元):75000
七、運輸方式及相關(guān)費用承擔:汽運,需方自提。
八、計算方式:全部貨物到達需方指定場地后,供需雙方確認無誤后,供方開具17%增值稅發(fā)票。
九、違約責任:雙方按照本協(xié)議的規(guī)定,任何一方違約,由違約方承擔違約責任。
十、合同生效:本合同傳真件有效,供需雙方簽字蓋章后生效。
供方:張三需方:李四
供方蓋章:需方蓋章:
步驟409:第一平臺將生成的合同文檔轉(zhuǎn)換為預設格式的文檔,將預設格式的文檔作為待簽署合同;
優(yōu)選地,在本實施例中,預設格式為pdf格式。
步驟410:第一平臺判斷待簽署合同是否需要添加水印,是則執(zhí)行步驟411;否則執(zhí)行步驟412;
具體地,第一平臺讀取創(chuàng)建合同請求中預設字段上的數(shù)據(jù),判斷讀取到的數(shù)據(jù)是否為預設值,是則判定待簽署合同需要添加水印,否則判定待簽署合同不需要添加水??;
在本實施例中,預設字段具體為iswatermark字段,預設值具體為true;
例如,在本實施例中,讀取上述合同請求中iswatermark字段上的數(shù)據(jù)為true,判定待簽署合同需要添加水印。
步驟411:第一平臺判斷是否存在與第二平臺對應的水印圖片,是則將與第二平臺對應的水印圖片添加到待簽署合同中,執(zhí)行步驟412,否則返回錯誤碼給第二平臺,結(jié)束;
具體地,第一平臺根據(jù)創(chuàng)建合同請求中含有的訪問令牌查找到第二平臺的賬戶,判斷查找到的賬戶中是否含有水印圖片,是則將查找到的賬戶中的水印圖片添加到待簽署合同中;否則返回錯誤碼給第二平臺,結(jié)束;
進一步地,在本實施例中,當創(chuàng)建合同請求中還含有水印圖片的標識時;
對應地,步驟411具體為:第一平臺根據(jù)創(chuàng)建合同請求中含有的訪問令牌查找到對應的賬戶,判斷查找到的賬戶中是否含有水印圖片,是則根據(jù)創(chuàng)建合同請求中含有水印圖片的標識在查找到的賬戶中查找到對應的水印圖片,將查找到的水印圖片添加到待簽署合同中;否則返回錯誤碼給第二平臺,結(jié)束。
例如,創(chuàng)建合同請求中含有水印圖片的標識為watermark0001,第一平臺在查找到的賬戶中查找到與其對應的水印圖片,并將查找到的水印圖片添加到待簽署合同中。
步驟412:第一平臺將待簽署合同轉(zhuǎn)換為圖片,將其作為待展示合同;
步驟413:第一平臺將待簽署合同和待展示合同分別存儲得到第一存儲地址和第二存儲地址,并將第一存儲地址和第二存儲地址添加到對應的合同記錄中;
例如,在本實施例中,將待簽署合同存儲得到的第一存儲地址為http://xxxxxx/pdf/accountnumxxxxx/contract0001,將待展示合同存儲得到的第二存儲地址為http://xxxxxx/img/accountnumxxxxx/contract0001,分別添加至合同編號為contract0001對應的合同記錄中。
步驟414:第一平臺將合同編號返回給第二平臺,結(jié)束。
例如,在本實施例中,將合同編號contract0001返回給第二平臺。
在本實施例中,步驟413中“第一平臺將待簽署合同保存,并將待簽署合同的存儲地址添加到對應的合同記錄中”,還可以位于步驟411與步驟412之間;
對應地,步驟413,具體為:第一平臺將待展示合同保存,并將待展示合同的存儲地址添加到對應的合同記錄中。
進一步地,在本實施例中,步驟410至步驟412,還可以為:
步驟410-1:第一平臺將待簽署合同轉(zhuǎn)換為圖片,將其作為待展示合同;
步驟411-1:第一平臺判斷待簽署合同是否需要添加水印,是則執(zhí)行步驟412-1;否則執(zhí)行步驟413
步驟412-1:第一平臺判斷是否存在與第二平臺對應的水印圖片,是則將與第二平臺對應的水印圖片分別添加到待簽署合同和待展示合同中,執(zhí)行步驟413;否則返回錯誤碼給上位機,結(jié)束。
更進一步地,在本實施例中,步驟412至步驟413還可以為:
步驟412-2:第一平臺存儲待簽署合同得到第一存儲地址,并將第一存儲地址添加到對應的合同記錄中。
當?shù)诙脚_調(diào)用第四函數(shù)接口向第一平臺發(fā)送第二創(chuàng)建合同請求時,包括:
步驟501:第四函數(shù)接口判斷第二創(chuàng)建合同請求是否合法,是則將第二創(chuàng)建合同請求發(fā)送給第一平臺,執(zhí)行步驟502;否則返回錯誤碼給第二平臺,結(jié)束;
在本實施例中,第四函數(shù)接口具體為stringuploadcontract(stringdata,stringtype,stringcontractnum,booleaniswatermark);
第二創(chuàng)建合同請求,具體為:根據(jù)合同文檔創(chuàng)建待簽署合同的請求。
進一步地,在本實施例中,第四函數(shù)接口判斷第二創(chuàng)建合同請求是否合法,具體包括:
判斷第二創(chuàng)建合同請求含有的合同文檔的類型是否為支持的文件類型;
判斷第二創(chuàng)建合同請求含有的合同文檔是否不為空且不超過預設大小;
如判斷結(jié)果均為是,則判定第二創(chuàng)建合同請求合法;否則判定第二創(chuàng)建合同請求不合法。
在本實施例中,支持的合同文檔的格式包括doc、docx、xls、xlsx、ppt、pptx、pdf等;預設大下具體為5兆。
更進一步地,在本實施例中,第四函數(shù)接口將第二創(chuàng)建合同請求發(fā)送給第一平臺,具體為:將第二創(chuàng)建合同請求封裝成json格式的數(shù)據(jù),并對json格式的數(shù)據(jù)加密得到第二創(chuàng)建合同請求密文,對第二創(chuàng)建合同請求密文計算校驗值,將第二創(chuàng)建合同請求密文、計算得到的校驗值及函數(shù)接口標識等發(fā)送給第一平臺。
需說明地,第一平臺根據(jù)函數(shù)接口標識的不同,對應執(zhí)行不同的操作。
步驟502:第一平臺解析接收到的第二創(chuàng)建合同請求得到合同文檔,判斷合同文檔是否為預設格式,是則將其作為待簽署合同,則執(zhí)行步驟503;否則將接收到的合同文檔轉(zhuǎn)換為預設格式后作為待簽署合同,執(zhí)行步驟503;
在本實施例中,第一平臺接收到的合同文檔的格式可以為doc、docx、xls、xlsx、ppt、pptx、pdf格式中的任意一個;
優(yōu)選地,在本實施例中,預設格式為pdf格式;
在本實施例中,第一平臺將接收到的合同文檔轉(zhuǎn)換為pdf格式,具體為:第一平臺調(diào)用office文檔轉(zhuǎn)換平臺將office文檔轉(zhuǎn)換為pdf格式;
例如,在本實施例中,接收到的合同文檔為doc格式,第一平臺調(diào)用office文檔轉(zhuǎn)換平臺將其轉(zhuǎn)換為pdf格式。
步驟503:第一平臺判斷接收到的第二創(chuàng)建合同請求中是否含有合同編號,是則執(zhí)行步驟505;否則執(zhí)行步驟504;
具體地,第一平臺判斷接收到的創(chuàng)建合同請求中是否含有contractnum字段,是則判定接收到的第二創(chuàng)建合同請求中含有合同編號,否則判定接收到的第二創(chuàng)建合同請求中不含有合同編號;
例如,在本實施例中,接收到的第二創(chuàng)建合同請求中含有contractnum字段,判定接收到的第二創(chuàng)建合同請求中含有合同編號,且合同編號為contract0002。
步驟504:第一平臺生成合同編號,執(zhí)行步驟506;
步驟505:第一平臺判斷第二創(chuàng)建合同請求中含有的合同編號是否有效,是則執(zhí)行步驟506,否則返回錯誤碼給第二平臺,結(jié)束;
具體地,第一平臺判斷第二創(chuàng)建合同請求中含有的合同編號是否被其他合同占用,是則判定第二創(chuàng)建合同請求中含有的合同編號無效,否則判定第二創(chuàng)建合同請求中含有的合同編號有效;
更加具體地,第一平臺查找數(shù)據(jù)庫中存有的合同記錄,依次讀取查找到的合同記錄中存有的合同編號,判斷讀取到的合同編號與第二創(chuàng)建合同請求中含有的合同編號是否相同,是則判定第二創(chuàng)建合同請求中含有的合同編號無效;否則判定第二創(chuàng)建合同請求中含有的合同編號有效。
步驟506:第一平臺創(chuàng)建與待簽署合同對應的合同記錄,并將合同編號添加至創(chuàng)建的合同記錄中,保存合同記錄,執(zhí)行步驟507;
步驟507:第一平臺判斷待簽署合同是否需要添加水印,是則執(zhí)行步驟508;否則執(zhí)行步驟509;
具體地,第一平臺讀取第二創(chuàng)建合同請求中預設字段上的數(shù)據(jù),判斷讀取到的數(shù)據(jù)是否為預設值,是則判定待簽署合同需要添加水印,否則判定待簽署合同不需要添加水?。?/p>
在本實施例中,預設字段具體為iswatermark字段,預設值具體為true;
例如,在本實施例中,讀取上述合同請求中iswatermark字段上的數(shù)據(jù)為true,判定待簽署合同需要添加水印。
步驟508:第一平臺判斷是否存在與第二平臺對應的水印圖片,是則將與第二平臺對應的水印圖片添加到待簽署合同中,執(zhí)行步驟509;否則返回錯誤碼給上位機,結(jié)束;
在本實施例中,步驟508的實現(xiàn)方法,同步驟411的實現(xiàn)方法相同,在此不再贅述。
步驟509:第一平臺將待簽署合同轉(zhuǎn)換為圖片,將其作為待展示合同;
步驟510:第一平臺將待簽署合同和待展示合同分別存儲得到第一存儲地址和第二存儲地址,并將第一存儲地址和第二存儲地址添加到對應的合同記錄中;
例如,在本實施例中,將待簽署合同存儲得到的第一存儲地址為http://xxxxxx/pdf/accountnumxxxxx/contract0002,將待展示合同存儲得到的第二存儲地址為http://xxxxxx/img/accountnumxxxxx/contract0002,將其添加到合同編號為contract0002對應的合同記錄中。
步驟511:第一平臺將合同編號返回給第二平臺,結(jié)束。
例如,在本實施例中,第一平臺將合同編號contract0002返回給第二平臺。
在本實施例中,步驟510中“第一平臺將待簽署合同保存,并將待簽署合同的存儲地址添加到對應的合同記錄中”,還可以位于步驟508與步驟509之間;
對應地,步驟510,具體為:第一平臺將待展示合同保存,并將待展示合同的存儲地址添加到對應的合同記錄中。
進一步地,在本實施例中,步驟507至步驟509,還可以為:
步驟507-1:第一平臺將待簽署合同轉(zhuǎn)換為圖片,將其作為待展示合同;
步驟508-1:第一平臺判斷待簽署合同是否需要添加水印,是則執(zhí)行步驟509-1;否則執(zhí)行步驟510
步驟509-1:第一平臺判斷是否存在與第二平臺對應的水印圖片,是則將與第二平臺對應的水印圖片分別添加到待簽署合同和待展示合同中,執(zhí)行步驟510;否則返回錯誤碼給上位機,結(jié)束。
更進一步地,在本實施例中,步驟509和步驟510還可以為:
步驟509-2:第一平臺存儲待簽署合同得到第一存儲地址,并將第一存儲地址添加到對應的合同記錄中。
在本實施例中,第一平臺為第二平臺提供了多種創(chuàng)建合同模式,第二平臺既可以調(diào)用第三函數(shù)接口選擇根據(jù)模板創(chuàng)建合同,也可以調(diào)用第四函數(shù)接口選擇根據(jù)合同文檔創(chuàng)建合同。
實施例三
本發(fā)明實施例三提供一種電子合同的簽署方法,包括認證簽署人流程和電子合同簽署流程,具體地如圖2和圖3所示,包括:
當?shù)诙脚_調(diào)用第五函數(shù)接口向第一平臺發(fā)送認證身份請求時包括:
步驟601:第五函數(shù)接口判斷認證身份請求是否合法,是則將認證身份請求發(fā)送給第一平臺,執(zhí)行步驟602;否則返回錯誤碼給第二平臺,結(jié)束;
在本實施例中,第五函數(shù)接口具體為stringsendapplyverifyinfo(stringsigner,stringcontractnum,stringtype);
進一步地,在本實施例中,第五函數(shù)接口判斷認證身份請求是否合法,具體為:
判斷認證身份請求中含有的合同編號是否不超過第三預設長度;
判斷認證身份請求中含有的簽署人信息是否符合預設格式;
如判斷結(jié)果均為是,則判定認證身份請求合法;否則判定認證身份請求不合法。
優(yōu)選地,在本實施例中,第三預設長度為64位;預設格式為json格式,并且簽署人信息中的每一項均符合對應的預設條件,例如,簽署人的手機號必須為數(shù)字。
更進一步地,在本實施例中,第五函數(shù)接口將認證身份請求發(fā)送給第一平臺,具體為:將認證身份請求封裝成json格式的數(shù)據(jù),并對json格式的數(shù)據(jù)加密得到認證身份請求密文,對認證身份請求密文計算校驗值,將認證身份請求密文、計算得到的校驗值及函數(shù)接口標識等發(fā)送給第一平臺。
需說明地,第一平臺根據(jù)函數(shù)接口標識的不同,對應執(zhí)行不同的操作。
步驟602:第一平臺解析接收到的認證身份請求得到合同編號和簽署人身份信息;
在本實施例中,簽署人身份信息包括但不限于:簽署人姓名、簽署人手機號、簽署人證件類型及證件號等;
進一步地,在本實施例中,當簽署人為個人時,簽署人證件類型及證件號優(yōu)選為身份證及身份證號;當簽署人為企業(yè)時,簽署人證件類型及證件號優(yōu)選為營業(yè)執(zhí)照及營業(yè)執(zhí)照編號;
優(yōu)選地,在本實施例中,簽署人為個人;
例如,在本實施例中,第一平臺解析接收到的認證身份請求得到的合同編號為contract0001,得到的簽署人身份信息為{"type":"0","cardtype":"0","idcardnum":"0000111122223333","name":"張三","phonesn":"18812345678"},其中,"type":"0"表示簽署人為個人,"cardtype":"0"表示簽署人證件類型為身份證,"idcardnum":"0000111122223333"表示簽署人證件號為0000111122223333;"name":"張三"標識簽署人姓名為張三,phonesn":"18812345678"表示簽署人手機號為18812345678。
步驟603:第一平臺判斷是否存在與得到的合同編號對應的合同記錄,是則執(zhí)行步驟604,否則返回錯誤碼給第二平臺,結(jié)束;
具體地,第一平臺查找數(shù)據(jù)庫中存有的合同記錄,依次讀取查找到的合同記錄中存有的合同編號,判斷讀取到的合同編號與解析得到的合同編號是否相同,是則判定存在與得到的合同編號對應的合同記錄;否則判定不存在與得到的合同編號對應的合同記錄;
例如,在本實施例中,第一平臺在數(shù)據(jù)庫中查找到與得到的合同編號相同的合同編號contract0001,判定存在與得到的合同編號對應的合同記錄,執(zhí)行步驟604。
步驟604:第一平臺根據(jù)得到的簽署人信息向簽署人發(fā)送認證碼,并將簽署人信息和發(fā)送的認證碼對應添加至得到的合同編號對應的合同記錄中;
在本實施例中,第一平臺根據(jù)得到的簽署人信息向簽署人發(fā)送認證碼,具體為:第一平臺向得到的簽署人信息中含有的簽署人手機號碼中發(fā)送認證碼;
例如,在本實施例中,第一平臺向簽署人手機號碼18812345678中發(fā)送認證碼123456,并將簽署人信息{"type":"0","cardtype":"0","idcardnum":"0000111122223333","name":"張三","phonesn":"18812345678"}和認證碼123456添加至得到的合同編號contract0001對應的合同記錄中。
進一步地,在本實施例中,當簽署人接收到認證碼時,簽署人在第二平臺的輸入框中輸入接收到的認證碼,第二平臺根據(jù)接收到的認證碼及簽署人信息可以調(diào)用第六函數(shù)接口選擇手動簽署合同模式,或者調(diào)用第七函數(shù)接口選擇自動簽署合同模式,向第一平臺發(fā)送簽署合同請求;
當?shù)诙脚_調(diào)用第六函數(shù)接口向第一平臺發(fā)送第一簽署合同請求時,包括:
步驟701:第六函數(shù)接口判斷所述第一簽署合同請求是否合法,是則將所述第一簽署合同請求發(fā)送給所述第一平臺,執(zhí)行步驟702;否則返回錯誤碼給所述第二平臺,結(jié)束;
在本實施例中,第六函數(shù)接口具體為stringmanuallysign(stringsignerinfo,stringcontractnum,stringcallurl);
第一簽署合同請求,具體為:手動簽署合同請求。
進一步地,在本實施例中,第六函數(shù)接口判斷第一簽署合同請求是否合法,具體為:
判斷第一簽署合同請求中含有的合同編號是否不超過第三預設長度;
判斷第一簽署合同請求中含有的簽署人信息是否符合預設格式;
如判斷結(jié)果均為是,則判定第一簽署合同請求合法;否則判定第一簽署合同請求不合法。
優(yōu)選地,在本實施例中,第三預設長度為64位,預設格式為json格式,并且簽署人信息中的每一項均符合對應的預設條件,例如,簽署人的手機號必須為數(shù)字。
更進一步地,在本實施例中,第六函數(shù)接口將第一簽署合同請求發(fā)送給第一平臺,具體為:將第一簽署合同請求封裝成json格式的數(shù)據(jù),并對json格式的數(shù)據(jù)加密得到第一簽署合同請求密文,對第一簽署合同請求密文計算校驗值,將第一簽署合同請求密文、計算得到的校驗值及函數(shù)接口標識等發(fā)送給第一平臺。
需說明地,第一平臺根據(jù)函數(shù)接口標識的不同,對應執(zhí)行不同的操作。
步驟702:第一平臺解析接收到的第一簽署合同請求得到認證碼、合同編號和簽署人信息;
例如,在本實施例中,第一平臺解析接收到的第一簽署合同請求得到的認證碼為123456、合同編號為contract0001、簽署人信息為{"type":"0","cardtype":"0","idcardnum":"0000111122223333","name":"張三","phonesn":"18812345678"}。
步驟703:第一平臺判斷是否存在與得到的合同編號對應的合同記錄,是則執(zhí)行步驟704,否則返回錯誤碼給第二平臺,結(jié)束;
具體地,第一平臺查找數(shù)據(jù)庫中存有的合同記錄,依次讀取查找到的合同記錄中存有的合同編號,判斷讀取到的合同編號與解析得到的合同編號是否相同,是則判定存在與得到的合同編號對應的合同記錄,否則判定不存在與得到的合同編號對應的合同記錄;
例如,在本實施例中,第一平臺在數(shù)據(jù)庫中查找到與得到的合同編號相同的合同編號contract0001,判定存在與得到的合同編號對應的合同記錄。
步驟704:第一平臺判斷得到的合同編號對應的合同記錄中是否含有得到的簽署人信息,是則讀取得到的簽署人信息對應的認證碼,執(zhí)行步驟705,否則返回錯誤碼給第二平臺,結(jié)束;
步驟705:第一平臺判斷讀取到的認證碼與得到的認證碼是否匹配,是則執(zhí)行步驟706;否則返回錯誤碼給第二平臺,結(jié)束;
具體地,第一平臺判斷讀取到的認證碼與得到的認證碼是否相同,是則執(zhí)行步驟706,否則返回錯誤碼給第二平臺;
例如,在本實施例中,第一平臺讀取的認證碼為123456,與得到的認證碼是否相同,則執(zhí)行步驟706。
步驟706:第一平臺在得到的合同編號對應的合同記錄中讀取第二存儲地址,根據(jù)讀取到的第二存儲地址查找到待展示合同;
例如,在本實施例中,讀取到的第二存儲地址為http://xxxxxx/img/accountnumxxxxx/contract0001。
步驟707:第一平臺根據(jù)得到的簽署人信息查找簽署人的簽名圖片,判斷是否查找成功,是則執(zhí)行步驟708,否則根據(jù)得到的簽署人信息中的簽署人姓名生成簽署人的簽名圖片并保存,執(zhí)行步驟708;
在本實施例中,簽署人可以在任意時刻通過第二平臺上傳自身的簽名圖片給第一平臺,當?shù)谝黄脚_接收到簽名圖片時,判斷數(shù)據(jù)庫中存有的合同記錄中是否存有簽名圖片對應的簽署人信息,是則將接收到的簽名圖片與簽署人信息中的簽署人證件號對應保存至簽名圖片數(shù)據(jù)庫中;
對應地,在本實施例中,第一平臺根據(jù)得到的簽署人信息查找簽署人的簽名圖片,判斷是否查找成功,具體為:第一平臺依次讀取簽名圖片數(shù)據(jù)庫中存有的簽署人證件號,判斷是否能夠讀取到與得到的簽署人信息中含有的簽署人證件號相同的簽署人證件號,是則判定查找成功,否則判定查找失?。?/p>
進一步地,在本實施例中,第一平臺根據(jù)得到的簽署人信息中的簽署人姓名生成簽署人的簽名圖片后,將生成的簽名圖片與簽署人信息中含有的簽署人證件號對應保存至簽名圖片數(shù)據(jù)庫中。
步驟708:第一平臺根據(jù)得到的簽署人信息查找簽署人的簽章圖片,判斷是否查找成功,是則執(zhí)行步驟716,否則執(zhí)行步驟709;
在本實施例中,簽署人可以在任意時刻通過第二平臺上傳自身的簽章圖片給第一平臺,當?shù)谝黄脚_接收到簽章圖片時,判斷數(shù)據(jù)庫中存有的合同記錄中是否存有簽章圖片對應的簽署人信息,是則將接收到的簽章圖片與簽署人信息中的簽署人證件號對應保存至簽章圖片數(shù)據(jù)庫中;
對應地,在本實施例中,第一平臺根據(jù)得到的簽署人信息查找簽署人的簽章圖片,判斷是否查找成功,具體為:第一平臺依次讀取簽章圖片數(shù)據(jù)庫中存有的簽署人證件號,判斷是否能夠讀取到與得到的簽署人信息中含有的簽署人證件號相同的簽署人證件號,是則判定查找成功,否則判定查找失敗。
步驟709:第一平臺生成含有待展示合同、簽署人的簽名圖片和日期圖片的頁面,通過第二平臺打開生成的頁面并顯示給簽署人,當接收到簽署觸發(fā)信息時,執(zhí)行步驟710;
具體地,第一平臺將待展示合同、簽署人的簽名圖片和日期圖片添加到預設操作頁面中,并將預設操作頁面的地址返回給第二平臺,第二平臺打開接收到的地址對應的預設操作頁面,將待展示合同、簽署人的簽名圖片和日期圖片顯示給簽署人,當接收到簽署觸發(fā)信息時,執(zhí)行步驟710;
進一步地,在本實施例中,當?shù)诙脚_將待展示合同、簽署人的簽名圖片和日期圖片顯示給簽署人后,簽署人根據(jù)自身需求將簽名圖片和或日期圖片拖動到待展示合同中對應的位置后,點擊簽署圖標,第一平臺根據(jù)簽署人選擇的圖片對待簽署合同執(zhí)行簽署操作。
優(yōu)選地,在本實施例中,簽署人將簽名圖片和日期圖片均拖動到待展示合同中對應的位置。
步驟710:第一平臺判斷簽署人的數(shù)字證書是否存在,是則執(zhí)行步驟711,否則申請數(shù)字證書并分配給得到的簽署人信息對應的簽署人,執(zhí)行步驟711;
具體地,第一平臺判斷存有數(shù)字證書的數(shù)據(jù)庫中是否存有得到的簽署人信息中含有的簽署人證件號,是則判定簽署人的數(shù)字證書存在,否則判定簽署人的數(shù)字證書不存在;
進一步地,在本實施例中,申請數(shù)字證書并分配給得到的簽署人信息對應的簽署人,具體包括:第一平臺向數(shù)字證書頒發(fā)機構(gòu)申請數(shù)字證書,將申請到的數(shù)字證書與簽署人的證件號對應保存至存有數(shù)字證書的數(shù)據(jù)庫中,并將申請到的數(shù)字證書與對應的私鑰建立關(guān)聯(lián),將私鑰保存;
更進一步地,在本實施例中,第一平臺向數(shù)字證書頒發(fā)機構(gòu)申請數(shù)字證書的過程在此不再詳細說明;
例如,在本實施例中,簽署人的數(shù)字證書存在,簽署人的數(shù)字證書具體為miidrzccai+gawibagieegaaatanbgkqhkig9w0baqufadbcmqswcqydvqqgewjdtjelmakga1uecgwcrlqxejaqbgnvbasmcunsb3vku2lnbjesmbaga1······8migkm8xsjfydscnwydhwg8lljfb60xbpcoakzowvwhzshlmdg628a3dgfuo。
步驟711:第一平臺在得到的合同編號對應的合同記錄中讀取第一存儲地址,根據(jù)第一存儲地址查找到待簽署合同,打開待簽署合同;
步驟712:第一平臺將簽署人的簽名圖片添加到待簽署合同中對應的位置后作為當前待簽署合同,對當前待簽署合同進行計算得到第一摘要值;
在本實施例中,對當前待簽署合同進行計算得到第一摘要值,具體為:第一平臺根據(jù)預設算法對當前待簽署合同進行哈希運算得到第一摘要值;
優(yōu)選地,預設算法為sha256;其中預設算法不限為sha256,還可以為sm3等;
例如,在本實施例中,第一平臺將簽署人的簽名圖片添加到待簽署合同中供方簽名的位置,根據(jù)sha256算法對對當前待簽署合同進行哈希運算得到第一摘要值為bdgf34gf3erbg3534h56。
步驟713:第一平臺查找到與簽署人的數(shù)字證書對應的私鑰,使用私鑰對第一摘要值簽名得到第一簽名信息,將第一簽名信息和簽署人的數(shù)字證書寫至當前待簽署合同中;
例如,在本實施例中,第一平臺查找到與簽署人的數(shù)字證書對應的私鑰為8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1,對上述第一摘要值bdgf34gf3erbg3534h56簽名得到的第一簽名信息為jf9w32r38ofjoidsvfjlk2enfh84y832nfjncvnu3rh8348534jgufdh8gv73948534g834g8hru3hfg84bfgu43hg8uyiequoweu18394unf,將第一簽名信息和簽署人的數(shù)字證書miidrzccai+gawibagieegaaatanbgkqhkig9w0baqufadbcmqswcqydvqqgewjdtjelmakga1uecgwcrlqxejaqbgnvbasmcunsb3vku2lnbjesmbaga1······8migkm8xsjfydscnwydhwg8lljfb60xbpcoakzowvwhzshlmdg628a3dgfuo寫至當前待簽署合同中對應的位置。
步驟714:第一平臺獲取當前日期,并將當前日期添加到當前待簽署合同中對應的位置后作為當前待簽署合同,對當前待簽署合同進行計算得到第二摘要值;
在本實施例中,對當前待簽署合同進行計算得到第二摘要值的方法同步驟712中對當前待簽署合同進行計算得到第一摘要值的方法相同,在此不再贅述;
例如,在本實施例中,第一平臺獲取到當前日期為2017年1月8日,將其添加到當前待簽署合同中簽署日期之后作為當前代簽署合同,對當前待簽署合同進行計算得到的第二摘要值為bdf242t43fhbthyjy8i6。
步驟715:第一平臺查找到與簽署人的數(shù)字證書對應的私鑰,使用私鑰對第二摘要值簽名得到第二簽名信息,將第二簽名信息和簽署人的數(shù)字證書寫至當前待簽署合同中;
例如,在本實施例中,第一平臺使用私鑰8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1對上述第二摘要值bdf242t43fhbthyjy8i6簽名得到第二簽名信息*dsfwet344tfgfbtgrh4h54tyrhbfhn4th45t5ytjk67i6op874tyh4b。
進一步地,在本實施例中,步驟712和步驟713與步驟714和步驟715的執(zhí)行順序可以互換。
步驟716:第一平臺生成含有待展示合同、簽署人的簽名圖片和日期圖片的頁面,通過第二平臺打開生成的頁面并顯示給簽署人,當接收到簽署觸發(fā)信息時,執(zhí)行步驟717;
具體地,第一平臺將待展示合同、簽署人的簽名圖片、簽署人的簽章圖片和日期圖片添加到預設操作頁面中,并將預設操作頁面的地址返回給第二平臺,第二平臺打開接收到的地址對應的預設操作頁面,將待展示合同、簽署人的簽名圖片、簽署人的簽章圖片和日期圖片顯示給簽署人,當接收到簽署觸發(fā)信息時,執(zhí)行步驟717;
進一步地,在本實施例中,當?shù)诙脚_將待展示合同、簽署人的簽名圖片、簽署人的簽章圖片和日期圖片顯示給簽署人后,簽署人根據(jù)自身需求將簽名圖片和或簽章圖片和或日期圖片拖動到待展示合同中對應的位置后,點擊簽署圖標,第一平臺根據(jù)簽署人選擇的圖片對待簽署合同執(zhí)行簽署操作。
優(yōu)選地,在本實施例中,簽署人將簽名圖片、簽章圖片和日期圖片均拖動到待展示合同中對應的位置。
步驟717:第一平臺判斷簽署人的數(shù)字證書是否存在,是則執(zhí)行步驟718,否則申請數(shù)字證書并分配給得到的簽署人信息對應的簽署人,執(zhí)行步驟718;
在本實施例中,步驟717的實現(xiàn)方法同步驟710的實現(xiàn)方法相同,在此不再贅述。
例如,在本實施例中,簽署人的數(shù)字證書存在,簽署人的數(shù)字證書具體為miidrzccai+gawibagieegaaatanbgkqhkig9w0baqufadbcmqswcqydvqqgewjdtjelmakga1uecgwcrlqxejaqbgnvbasmcunsb3vku2lnbjesmbaga1······8migkm8xsjfydscnwydhwg8lljfb60xbpcoakzowvwhzshlmdg628a3dgfuo。
步驟718:第一平臺在得到的合同編號對應的合同記錄中讀取第一存儲地址,根據(jù)第一存儲地址查找到待簽署合同,打開待簽署合同;
步驟719:第一平臺將簽署人的簽名圖片添加到待簽署合同中對應的位置后作為當前待簽署合同,對當前待簽署合同進行計算得到第一摘要值;
在本實施例中,對當前待簽署合同進行計算得到第一摘要值,具體為:第一平臺根據(jù)預設算法對當前待簽署合同進行哈希運算得到第一摘要值;
優(yōu)選地,預設算法為sha256;其中預設算法不限為sha256,還可以為sm3等;
例如,在本實施例中,第一平臺根據(jù)sha256算法對對當前待簽署合同進行哈希運算得到第一摘要值為bdgf34gf3erbg3534h56。
步驟720:第一平臺查找到與簽署人的數(shù)字證書對應的私鑰,使用私鑰對第一摘要值簽名得到第一簽名信息,將第一簽名信息和簽署人的數(shù)字證書寫至當前待簽署合同中;
例如,在本實施例中,第一平臺查找到與簽署人的數(shù)字證書對應的私鑰為8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1,對上述第一摘要值bdgf34gf3erbg3534h56簽名得到的第一簽名信息為jf9w32r38ofjoidsvfjlk2enfh84y832nfjncvnu3rh8348534jgufdh8gv73948534g834g8hru3hfg84bfgu43hg8uyiequoweu18394unf。
步驟721:第一平臺獲取當前日期,并將當前日期添加到當前待簽署合同中對應的位置后作為當前待簽署合同,對當前待簽署合同進行計算得到第二摘要值;
在本實施例中,對當前待簽署合同進行計算得到第二摘要值的方法同步驟712中對當前待簽署合同進行計算得到第一摘要值的方法相同,在此不再贅述;
例如,在本實施例中,計算得到的第二摘要值為bdf242t43fhbthyjy8i6。
步驟722:第一平臺查找到與簽署人的數(shù)字證書對應的私鑰,使用私鑰對第二摘要值簽名得到第二簽名信息,將第二簽名信息和簽署人的數(shù)字證書寫至當前待簽署合同中;
例如,在本實施例中,第一平臺使用私鑰8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1對第二摘要值bdf242t43fhbthyjy8i6簽名得到第二簽名信息dsfwet344tfgfbtgrh4h54tyrhbfhn4th45t5ytjk67i6op874tyh4b。
步驟723:第一平臺將簽署人的簽章圖片添加到當前待簽署合同中對應的位置后作為當前待簽署合同,對當前待簽署合同進行計算得到第三摘要值;
步驟724:第一平臺查找到與簽署人的數(shù)字證書對應的私鑰,使用私鑰對第三摘要值簽名得到第三簽名信息,將第三簽名信息和簽署人的數(shù)字證書寫至當前待簽署合同中;
例如,在本實施例中,第一平臺使用私鑰8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1對第三摘要值bqwwegr343gh5yhyjolp5簽名得到第三簽名信息t5y54hfjyhh4y4hgtrh4565jghmbvnrth4545gsxrthy45y。
進一步地,在本實施例中,步驟719和步驟720、步驟721和步驟722、步驟723和步驟724的執(zhí)行順序可以彼此互換。
步驟725:第一平臺將當前待簽署合同作為已簽署合同,將已簽署合同保存,并返回簽署完成信息給第二平臺。
優(yōu)選地,在本實施例中,步驟702中,第一平臺接收到的第一簽署合同請求中含有簽署完成信息返回地址;
對應地,步驟725中,第一平臺返回簽署完成信息給第二平臺,具體為:第一平臺根據(jù)第一簽署合同請求中含有簽署完成信息返回地址,將簽署完成信息返回給第二平臺;
進一步地,在本實施例中,當?shù)谝缓炇鸷贤埱笾胁恢付ê炇鹜瓿尚畔⒎祷氐刂窌r,對應地,步驟715中,第一平臺返回簽署完成信息給第二平臺,具體為:第一平臺根據(jù)默認地址將簽署完成信息返回給第二平臺。
更進一步地,在本實施例中,當步驟412和步驟413具體為步驟412-2時,或者當步驟509和步驟510具體為步驟509-2時,對應地:
步驟706具體為:第一平臺根據(jù)得到的合同編號查找到對應的待簽署合同,將查找到的待簽署合同轉(zhuǎn)換為圖片作為待展示合同;
步驟711具體為:第一平臺打開查找到的待簽署合同。
當?shù)诙脚_調(diào)用第七函數(shù)接口向第一平臺發(fā)送第二簽署合同請求時,包括:
步驟801:第七函數(shù)接口判斷第二簽署合同請求是否合法,是則將第二簽署合同請求發(fā)送給第一平臺,執(zhí)行步驟802;否則返回錯誤碼給第二平臺,結(jié)束;
在本實施例中,第七函數(shù)接口具體為:stringautosign(stringsignerinfo,stringcontractnum,stringcallurl);
第二簽署合同請求,具體為:自動簽署合同請求;
進一步地,在本實施例中,第七函數(shù)接口判斷第二簽署合同請求是否合法,具體為:
判斷第二簽署合同請求中含有的合同編號是否不超過第三預設長度;
判斷第二簽署合同請求中含有的簽署人信息是否符合預設格式;
如判斷結(jié)果均為是,則判定第二簽署合同請求合法;否則判定第二簽署合同請求不合法。
優(yōu)選地,在本實施例中,第三預設長度為64位,預設格式為json格式,并且簽署人信息中的每一項均符合對應的預設條件,例如,簽署人的手機號必須為數(shù)字。
更進一步地,在本實施例中,第七函數(shù)接口將第二簽署合同請求發(fā)送給第一平臺,具體為:將第二簽署合同請求封裝成json格式的數(shù)據(jù),并對json格式的數(shù)據(jù)加密得到第二簽署合同請求密文,對第二簽署合同請求密文計算校驗值,將第二簽署合同請求密文、計算得到的校驗值及函數(shù)接口標識等發(fā)送給第一平臺。
需說明地,第一平臺根據(jù)函數(shù)接口標識的不同,對應執(zhí)行不同的操作。
步驟802:第一平臺解析接收到的第二簽署合同請求得到認證碼、合同編號和簽署人信息;
在本實施例中,簽署人信息包括但不限于:簽署人姓名、簽署人手機號碼、簽署人證件類型及證件號、簽署類型(企業(yè)或者個人)等;
進一步地,在本實施例中,當簽署人為個人時,簽署人證件類型及證件號優(yōu)選為身份證及身份證號;當簽署人為企業(yè)時,簽署人證件類型及證件號優(yōu)選為營業(yè)執(zhí)照及營業(yè)執(zhí)照編號;
優(yōu)選地,在本實施例中,簽署人為個人;
例如,在本實施例中,第一平臺解析接收到的第二簽署合同請求得到的認證碼為123456、合同編號為contract0001、簽署人信息為{"type":"0","cardtype":"0","idcardnum":"0000111122223333","name":"張三","phonesn":"18812345678"}。
步驟803:第一平臺判斷是否存在與得到的合同編號對應的合同記錄,是則執(zhí)行步驟804,否則返回錯誤碼給第二平臺,結(jié)束;
具體地,第一平臺在存有合同記錄的數(shù)據(jù)庫中查找合同記錄,依次讀取查找到的合同記錄中含有的合同編號,判斷讀取到的合同編號與解析得到的合同編號是否相同,是則判定存在與得到的合同編號對應的合同記錄,否則判定不存在與得到的合同編號對應的合同記錄;
例如,在本實施例中,第一平臺在存有合同記錄的數(shù)據(jù)庫中查找到與得到的合同編號相同的合同編號contract0001,判定存在與得到的合同編號對應的合同記錄。
步驟804:第一平臺判斷與得到的合同編號對應的合同記錄中是否含有得到的簽署人信息,是則讀取得到的簽署人信息對應的認證碼,執(zhí)行步驟805,否則返回錯誤碼給第二平臺,結(jié)束;
步驟805:第一平臺判斷讀取到的認證碼與得到的認證碼是否匹配,是則執(zhí)行步驟806,否則返回錯誤碼給第二平臺,結(jié)束;
具體地,第一平臺判斷讀取到的認證碼與得到的認證碼是否相同,是則判定讀取到的認證碼與得到的認證碼匹配,執(zhí)行步驟806;否則判定讀取到的認證碼與得到的認證碼不匹配,返回錯誤碼給第二平臺,結(jié)束;
例如,在本實施例中,第一平臺讀取的認證碼為123456,與得到的認證碼是否相同,則執(zhí)行步驟806。
步驟806:第一平臺判斷得到的簽署人信息對應的簽署人的數(shù)字證書是否存在,是則執(zhí)行步驟807,否則申請數(shù)字證書并分配給得到的簽署人信息對應的簽署人,執(zhí)行步驟807;
在本實施例中,步驟806的實現(xiàn)方法同步驟710的實現(xiàn)方法相同,在此不再贅述;
例如,在本實施例中,簽署人的數(shù)字證書存在,簽署人的數(shù)字證書具體為miidrzccai+gawibagieegaaatanbgkqhkig9w0baqufadbcmqswcqydvqqgewjdtjelmakga1uecgwcrlqxejaqbgnvbasmcunsb3vku2lnbjesmbaga1······8migkm8xsjfydscnwydhwg8lljfb60xbpcoakzowvwhzshlmdg628a3dgfuo。
步驟807:第一平臺在得到的合同編號對應的合同記錄中讀取第一存儲地址,根據(jù)第一存儲地址查找到待簽署合同,打開待簽署合同;
步驟808:第一平臺對查找到的待簽署合同進行計算得到第四摘要值;
具體地,第一平臺根據(jù)預設算法對待簽署合同進行哈希運算得到第四摘要值;
優(yōu)選地,預設算法為sha256;其中預設算法不限為sha256,還可以為sm3等;
例如,在本實施例中,第一平臺根據(jù)sha256算法對對待簽署合同進行哈希運算得到第四摘要值為bgew23gghfh4rty45y2。
步驟809:第一平臺查找到與簽署人的數(shù)字證書對應的私鑰,使用私鑰對第四摘要值簽名得到第四簽名信息,將第四簽名信息和簽署人的數(shù)字證書寫至待簽署合同后作為已簽署合同;
例如,在本實施例中,第一平臺查找到與簽署人的數(shù)字證書對應的私鑰為8667290c1388daa7fb184016fc42f3fbeb5326663e09e594a184a80aa810db018662df953c9a939b5cbe23b8b8ce29ddaf8578ec53638cfa0e81dda472735bddfe5877f5d336436019990ecd1877c0d531cd495······b2bee8fc96f1c23ac29c2895fe1a3d45518626776fe7911650062b15af42bff443523b78183111c0931280059a3e86516da46bbe7f7bf5ef845da9250a2fd7c75740b9c1,對上述第四摘要值bgew23gghfh4rty45y2簽名得到的第四簽名信息為45htgfhr4th46hfsbghhjurykuyrmbnmotipo807f12wzse24efcgeb53y4y53hth566u78。
步驟810:第一平臺將已簽署合同保存,并返回簽署完成信息給第二平臺,結(jié)束。
進一步地,在本實施例中,當步驟202中第一平臺得到的合同模板中含有設定的簽署位置時,所述簽署位置具體為簽名位置和或簽章位置和或簽署日期位置;
對應地,步驟808和步驟809具體為:第一平臺根據(jù)簽署合同請求中含有的簽署人信息查找簽署人的簽名圖片和或簽章圖片,并根據(jù)查找到的簽名圖片和或簽章圖片和或當前日期對待簽署合同執(zhí)行簽署操作;
更進一步地,當步驟202中第一平臺得到的合同模板中含有的設定的簽署位置包括簽章位置時,如第一平臺根據(jù)簽署合同請求中含有的簽署人信息未查找到簽署人的簽章圖片,則通過第二平臺提示簽署人上傳簽章圖片。
在本實施例中,第一平臺為第二平臺提供了多種簽署電子合同的方法,第二平臺可以選擇手動簽署,也可以選擇自動簽署。
實施例四
本發(fā)明實施例四提供一種電子合同的簽署系統(tǒng),如圖4所示,包括:第二平臺模塊1000、函數(shù)接口模塊2000和第一平臺模塊3000;
其中,函數(shù)接口模塊2000包括第六函數(shù)接口子模塊2001和第七函數(shù)接口子模塊2002;
所述第二平臺模塊1000,用于調(diào)用第六函數(shù)接口子模塊2001向第一平臺模塊3000發(fā)送第一簽署合同請求;
第六函數(shù)接口子模塊2001,包括:
第一判斷單元2001-1,用于判斷第一簽署合同請求是否合法;
在本實施例中,第一判斷單元2001-1,具體用于:
判斷第一簽署合同請求中含有的合同編號是否不超過第三預設長度;
判斷第一簽署合同請求中含有的簽署人信息是否符合第二預設格式;
如判斷結(jié)果均為是,則判定第一簽署合同請求合法;否則判定第一簽署合同請求不合法。
第一發(fā)送單元2001-2,用于當?shù)谝慌袛鄦卧?001-1判斷出第一簽署合同請求合法時,將第一簽署合同請求發(fā)送給第一平臺模塊3000;
第一報錯單元2001-3,用于當?shù)谝慌袛鄦卧?001-1判斷出第一簽署合同請求不合法時,返回錯誤碼給第二平臺模塊1000;
第一平臺模塊3000,包括:
第一接收子模塊3001,用于接收第六函數(shù)接口子模塊2001發(fā)送來的第一簽署合同請求;
第一查找子模塊3002,用于根據(jù)第一接收子模塊3001接收到的第一簽署合同請求中含有的合同編號查找對應保存的待簽署合同;
在本實施例中,第一查找子模塊3002,具體用于:根據(jù)第一簽署合同請求中含有的合同編號查找到對應的合同記錄,根據(jù)合同記錄中存有的第一存儲地址查找到對應的待簽署合同。
第一獲取子模塊3003,用于獲取待展示合同;
在本實施例中,第一獲取子模塊3003,具體用于:
將待簽署合同轉(zhuǎn)換為圖片后作為待展示合同;
或者,
根據(jù)簽署合同請求中含有的合同編號查找到對應的合同記錄,根據(jù)所合同記錄中存有的第二存儲地址查找到對應的待展示合同。
第二查找子模塊3004,用于根據(jù)第一接收子模塊3001接收到的第一簽署合同請求中含有的簽署人信息查找對應的簽署人的簽署圖片;
第一生成子模塊3005,用于生成含有待展示合同和簽署圖片的頁面;
第一顯示子模塊3006,用于通過第二平臺模塊1000打開第一生成子模塊3005生成的頁面并顯示給簽署人;
第一接收子模塊3001,還用于接收簽署人在第一顯示子模塊3006顯示的頁面中的簽署觸發(fā)信息;
第一簽署子模塊3007,用于當?shù)谝唤邮兆幽K3001接收到簽署人在第一顯示子模塊3006顯示的頁面中的簽署觸發(fā)信息時,根據(jù)簽署人選擇的簽署圖片對第一查找子模塊3002查找到的待簽署合同執(zhí)行簽署操作;
在本實施例中,第一簽署子模塊3007,具體用于:
將待簽署合同作為當前待簽署合同,分別將簽署人選擇的簽署圖片和或簽署人選擇的簽署圖片對應的信息添加到當前待簽署合同中對應的位置后作為當前待簽署合同,根據(jù)預設算法對當前待簽署合同計算出摘要值;根據(jù)第一簽署合同請求中含有的簽署人信息查找到與簽署人的數(shù)字證書對應的私鑰,使用私鑰對摘要值簽名得到簽名信息,將簽名信息和簽署人的數(shù)字證書寫至當前待簽署合同中。
對應地,第一平臺模塊3000,還包括:第二判斷子模塊、第一申請子模塊;
其中,第二判斷子模塊,用于判斷第一簽署合同請求中含有的簽署人信息對應的簽署人的數(shù)字證書是否存在;
第一簽署子模塊3007,具體用于:當?shù)诙袛嘧幽K判斷出第一簽署合同請求中含有的簽署人信息對應的簽署人的數(shù)字證書存在時,根據(jù)簽署人選擇的簽名圖片對第一查找子模塊查找到的待簽署合同執(zhí)行簽署操作;
第一申請子模塊,用于當?shù)诙袛嘧幽K判斷出第一簽署合同請求中含有的簽署人信息對應的簽署人的數(shù)字證書不存在時,申請數(shù)字證書并分配給所述簽署人;
第一簽署子模塊3007,還用于在第一申請子模塊申請數(shù)字證書并分配給簽署人之后,根據(jù)簽署人選擇的簽名圖片對第一查找子模塊查找到的待簽署合同執(zhí)行簽署操作。
第一發(fā)送子模塊3008,用于在第一簽署子模塊3007執(zhí)行簽署操作之后,返回響應給第二平臺模塊1000;
在本實施例中,第二平臺模塊1000,還用于調(diào)用第七函數(shù)接口子模塊2002向第一平臺模塊3000發(fā)送第二簽署合同請求;
第七函數(shù)接口子模塊2002,包括:
第二判斷單元2002-1,用于判斷第二簽署合同請求是否合法;
在本實施例中,第二判斷單元2002-1,具體用于:
判斷所述第二簽署合同請求中含有的合同編號是否不超過第三預設長度;
判斷所述第二簽署合同請求中含有的簽署人信息是否符合第二預設格式;
如判斷結(jié)果均為是,則判定所述第二簽署合同請求合法;否則判定所述第二簽署合同請求不合法。
第二發(fā)送單元2002-2,用于當?shù)诙袛鄦卧?002-1判斷出第二簽署合同請求合法時,將第二簽署合同請求發(fā)送給第一平臺模塊3000;
第二報錯單元2002-3,用于當?shù)诙袛鄦卧?002-1判斷出第二簽署合同請求不合法時,返回錯誤碼給第二平臺模塊1000;
對應地,第一平臺模塊,還包括:
第二接收子模塊3009,用于接收第七函數(shù)接口子模塊2002發(fā)送來的第二簽署合同請求;
第三查找子模塊3010,用于根據(jù)第二接收子模塊3009接收到的第二簽署合同請求中含有的合同編號查找對應保存的待簽署合同;
在本實施例中,第三查找子模塊3010,具體用于:根據(jù)第二簽署合同請求中含有的合同編號查找到對應的合同記錄,根據(jù)合同記錄中存有的第一存儲地址查找到對應的待簽署合同。
第二簽署子模塊3011,用于對第三查找子模塊3010查找到的待簽署合同執(zhí)行簽署操作;
在本實施例中,第二簽署子模塊3011,具體用于:
根據(jù)預設算法對待簽署合同計算出摘要值;根據(jù)第二簽署合同請求中含有的簽署人信息查找到與簽署人的數(shù)字證書對應的私鑰,使用私鑰對摘要值簽名得到簽名信息,將簽名信息和簽署人的數(shù)字證書寫至待簽署合同中。
對應地,第一平臺模塊3000,還包括:第三判斷子模塊和第二申請子模塊;
其中,第三判斷子模塊,用于判斷第二簽署合同請求中含有的簽署人信息對應的簽署人的數(shù)字證書是否存在;
第二簽署子模塊3011,具體用于:當?shù)谌袛嘧幽K判斷出第二簽署合同請求中含有的簽署人信息對應的簽署人的數(shù)字證書存在時,對第三查找子模塊3010查找到的待簽署合同執(zhí)行簽署操作;
第二申請子模塊,用于當?shù)谌袛嘧幽K判斷出第二簽署合同請求中含有的簽署人信息對應的簽署人的數(shù)字證書不存在時,申請數(shù)字證書并分配給簽署人;
第二簽署子模塊3011,還用于在第二申請子模塊申請數(shù)字證書并分配給簽署人之后,對第三查找子模塊3010查找到的待簽署合同執(zhí)行簽署操作。
進一步地,在本實施例中,當?shù)谌檎易幽K3010根據(jù)第二簽署合同請求中含有的合同編號查找到的對應保存的待簽署合同中含有設定的簽署位置時;所述簽署位置包括簽名位置和或簽章位置和或簽署日期位置;
對應地,第一平臺模塊,還包括:第四查找子模塊;
第四查找子模塊,用于在第二簽署子模塊3011對第三查找子模塊3010查找到的待簽署合同執(zhí)行簽署操作之前,根據(jù)第二簽署合同請求中含有的簽署人信息查找對應的簽署人的簽名圖片和或簽章圖片;
第二簽署子模塊3011,具體用于:根據(jù)第四查找子模塊查找到的簽名圖片和或簽章圖片和或當前日期對待簽署合同執(zhí)行簽署操作。
更進一步地,當所述簽署位置包括簽章位置時,第一平臺模塊3000,還包括:第四判斷子模塊和提示子模塊;
其中,第四判斷子模塊,用于判斷第四查找子模塊是否查找到簽章圖片;
第二簽署子模塊3011,具體用于:當?shù)谒呐袛嘧幽K判斷出第四查找子模塊查找到簽章圖片時,對待簽署合同執(zhí)行簽署操作;
提示子模塊,用于當?shù)谒呐袛嘧幽K判斷出第四查找子模塊未查找到簽章圖片時,通過第二平臺模塊1000提示簽署人上傳簽章圖片。
第二發(fā)送子模塊3012,用于在第二簽署子模塊3011執(zhí)行簽署操作之后返回響應給第二平臺模塊1000。
在本實施例中,第二查找子模塊3004,具體用于:根據(jù)第一簽署合同請求中含有的簽署人信息查找對應的簽署人的簽名圖片和簽章圖片;
對應地,第一生成子模塊3005,具體用于:生成含有待展示合同、簽名圖片、簽章圖片和日期圖片的頁面。
可選地,第一平臺模塊3000,還包括:第一判斷子模塊;
第一判斷子模塊,用于判斷第二查找子模塊3004是否查找到簽署人的簽章圖片;
對應地,第一生成子模塊3005,具體用于:當?shù)谝慌袛嘧幽K判斷出第二查找子模塊3004查找到簽署人的簽章圖片時,生成含有待展示合同、簽名圖片、簽章圖片和日期圖片的頁面;當?shù)谝慌袛嘧幽K判斷出第二查找子模塊3004未查找到簽署人的簽章圖片時,生成含有待展示合同、簽名圖片和日期圖片的頁面。
在本實施例中,第一生成子模塊3005,具體用于:將待展示合同和簽署圖片添加到預設操作頁面中,并將預設操作頁面的地址返回給第二平臺模塊1000;
對應地,第一顯示子模塊3006,具體用于:通過第二平臺模塊打開其接收到的地址對應的預設操作頁面,并將待展示合同和簽署圖片顯示給簽署人。
在本實施例中,第二查找子模塊3004和第四查找子模塊,具體用于:根據(jù)簽署人信息查找對應的簽署人的簽名圖片,判斷是否查找成功,是則繼續(xù);否則根據(jù)簽署人信息生成對應的簽署人的簽名圖片,繼續(xù)。
在本實施例中,函數(shù)接口模塊2000,還包括:第五函數(shù)接口子模塊;對應地,第一平臺模塊3000,還包括:第三接收子模塊、第三發(fā)送子模塊、第一保存子模塊、第五判斷子模塊和第六判斷子模塊;
第二平臺模塊1000,還用于調(diào)用第五函數(shù)接口子模塊向第一平臺發(fā)送認證身份請求;
第五函數(shù)接口子模塊,包括:
第三判斷單元,用于判斷認證身份請求是否合法;
在本實施例中,第三判斷單元,具體用于:
判斷認證身份請求中含有的合同編號是否不超過第三預設長度;
判斷認證身份請求中含有的簽署人信息是否符合第二預設格式;
如判斷結(jié)果均為是,則判定認證身份請求合法;否則判定認證身份請求不合法。
第三發(fā)送單元,用于當?shù)谌袛鄦卧袛喑稣J證身份請求合法時,將認證身份請求發(fā)送給第一平臺模塊;
第三報錯單元,用于當?shù)谌袛鄦卧袛喑稣J證身份請求不合法時,返回錯誤碼給第二平臺模塊1000;
第三接收子模塊,用于接收認證身份請求;
第三發(fā)送子模塊,用于根據(jù)第三接收子模塊接收到的認證身份請求中含有的簽署人身份信息向簽署人發(fā)送認證碼;
第一保存子模塊,用于將簽署人身份信息和認證碼對應保存至認證身份請求中含有的合同編號對應的合同記錄中;
第五判斷子模塊,用于判斷第一接收子模塊3001接收到的第一簽署合同請求中含有的認證碼是否正確;
第一查找子模塊,具體用于:當?shù)谖迮袛嘧幽K判斷出第一接收子模塊3001接收到的第一簽署合同請求中含有的認證碼正確時,根據(jù)第一簽署合同請求中含有的合同編號查找對應的待簽署合同;
第一發(fā)送子模塊3008,還用于當?shù)谖迮袛嘧幽K判斷出第一接收子模塊3001接收到的第一簽署合同請求中含有的認證碼不正確時,返回錯誤碼給第二平臺模塊1000;
所述第六判斷子模塊,用于判斷所述第二接收子模塊接收到的第二簽署合同請求中含有的認證碼是否正確;
所述第三查找子模塊,具體用于:當所述第六判斷子模塊判斷出所述第二接收子模塊接收到的第二簽署合同請求中含有的認證碼正確時,根據(jù)所述第二簽署合同請求中含有的合同編號查找對應的待簽署合同;
所述第二發(fā)送子模塊,還用于當所述第六判斷子模塊判斷出所述第二接收子模塊接收到的第二簽署合同請求中含有的認證碼不正確時,返回錯誤碼給所述第二平臺模塊。
其中,第五判斷子模塊和第六判斷子模塊,具體用于:根據(jù)接收到的請求中含有的合同編號查找到對應的合同記錄,在合同記錄中讀取與接收到的請求中含有的簽署人信息對應保存的認證碼,判斷讀取到的認證碼與接收到的請求中含有的認證碼是否匹配,是則判定接收到的請求中含有的認證碼正確;否則判定接收到的請求中含有的認證碼不正確。
在本實施例中,第一發(fā)送子模塊3008和第二發(fā)送子模塊3012,具體用于:根據(jù)接收到的請求中含有的返回響應地址返回響應給第二平臺模塊。
實施例五
本發(fā)明實施例五提供一種電子合同的創(chuàng)建系統(tǒng),如圖5所示,包括:包括第二平臺模塊4000、函數(shù)接口模塊5000和第一平臺模塊6000;
其中,函數(shù)接口模塊5000,包括:第三函數(shù)接口子模塊5001和第四函數(shù)接口子模塊5002;
第二平臺模塊4000,用于調(diào)用第三函數(shù)接口子模塊5001向第一平臺發(fā)送第一創(chuàng)建合同請求;
第三函數(shù)接口子模塊5001,包括:
第四判斷單元5001-1,用于判斷第一創(chuàng)建合同請求是否合法;
在本實施例中,第四判斷單元,具體用于:
判斷第一創(chuàng)建合同請求中含有的模板名稱是否不為空且不超過第一預設長度;
判斷第一創(chuàng)建合同請求中含有的替換數(shù)據(jù)是否符合第二預設格式;
如判斷結(jié)果均為是,則判定第一創(chuàng)建合同請求合法;否則判定第一創(chuàng)建合同請求不合法。
第四發(fā)送單元5001-2,用于當?shù)谒呐袛鄦卧?001-1判斷出第一創(chuàng)建合同請求合法時,將第一創(chuàng)建合同請求發(fā)送給第一平臺模塊6000;
第四報錯單元5001-3,用于當?shù)谒呐袛鄦卧?001-1判斷出第一創(chuàng)建合同請求不合法時,返回錯誤碼給第二平臺模塊4000;
第一平臺模塊6000,包括:
第四接收子模塊6001,用于接收第一創(chuàng)建合同請求;
第五查找子模塊6002,用于根據(jù)第四接收子模塊6001接收到的第一創(chuàng)建合同請求中含有的模板標識查找對應的合同模板;
第二生成子模塊6003,用于根據(jù)第五查找子模塊6002查找到的合同模板生成待創(chuàng)建合同;
第二獲取子模塊6004,用于獲取合同編號;
第三生成子模塊6005,用于根據(jù)第二生成子模塊6003生成的待創(chuàng)建合同和第四接收子模塊6001接收到的第一創(chuàng)建合同請求中含有的替換數(shù)據(jù)生成待簽署合同;
在本實施例中,第三生成子模塊6005,具體用于:使用第一創(chuàng)建合同請求中含有的替換數(shù)據(jù)替換待創(chuàng)建合同中相應位置上的標識符得到合同文檔,將合同文檔轉(zhuǎn)換為第一預設格式后作為待簽署合同。
第二保存子模塊6006,用于存儲第三生成子模塊6005生成的待簽署合同得到第一存儲地址;
第三保存子模塊6007,用于將第二保存子模塊6006得到的第一存儲地址與第二獲取子模塊6004獲取到的合同編號對應保存;
第四發(fā)送子模塊6008,用于返回響應給第二平臺模塊4000;
在本實施例中,第二平臺模塊4000,還用于調(diào)用第四函數(shù)接口子模塊5002向第一平臺模塊6000發(fā)送第二創(chuàng)建合同請求;
第四函數(shù)接口子模塊5002,包括:
第五判斷單元5002-1,用于判斷第二創(chuàng)建合同請求是否合法;
在本實施例中,第五判斷單元5002-1,具體用于:
判斷第二創(chuàng)建合同請求含有的合同文檔的類型是否為支持的文件類型;
判斷第二創(chuàng)建合同請求含有的合同文檔是否不為空且不超過預設大??;
如判斷結(jié)果均為是,則判定第二創(chuàng)建合同請求合法;否則判定第二創(chuàng)建合同請求不合法。
第五發(fā)送單元5002-2,用于當?shù)谖迮袛鄦卧?002-1判斷出第二創(chuàng)建合同請求合法時,將第二創(chuàng)建合同請求發(fā)送給第一平臺模塊6000;
第五報錯單元5002-3,用于當?shù)谖迮袛鄦卧?002-1判斷出第二創(chuàng)建合同請求不合法時,返回錯誤碼給第二平臺模塊4000;
對應地,第一平臺模塊6000,還包括:
第五接收子模塊6009,用于接收所述第四函數(shù)接口子模塊5002發(fā)送來的第二創(chuàng)建合同請求;
作為子模塊6010,用于將第五接收子模塊6009接收到的第二創(chuàng)建合同請求中含有的合同文檔作為待簽署合同;
在本實施例中,作為子模塊6010,包括:
第九判斷單元,用于判斷第二創(chuàng)建合同請求中含有的合同文檔是否為第一預設格式;
作為子單元,用于當?shù)诰排袛鄦卧袛喑龅诙?chuàng)建合同請求中含有的合同文檔是第一預設格式時,將合同文檔作為待簽署合同;
轉(zhuǎn)換子單元,用于當?shù)诰排袛鄦卧袛喑龅诙?chuàng)建合同請求中含有的合同文檔不是第一預設格式時,將合同文檔轉(zhuǎn)換為第一預設格式后作為待簽署合同。
第三獲取子模塊6011,用于獲取合同編號;
第四保存子模塊6012,用于存儲作為子模塊6010得到的待簽署合同得到第一存儲地址;
第五保存子模塊6013,用于將第四保存子模塊6012得到的第一存儲地址與第三獲取子模塊6011獲取到的合同編號對應保存;
第五發(fā)送子模塊6014,用于返回響應給第二平臺模塊4000。
在本實施例中,函數(shù)接口模塊5000還包括:第一函數(shù)接口子模塊;
第二平臺模塊4000,還用于調(diào)用第一函數(shù)接口子模塊向第一平臺模塊6000發(fā)送添加合同模板請求;
第一函數(shù)接口子模塊,包括:
第六判斷單元,用于判斷添加合同模板請求是否合法;
在本實施例中,第六判斷單元,具體用于:
判斷添加合同模板請求中含有的模板名稱是否不為空且不超過第一預設長度;
判斷添加合同模板請求中含有的模板是否不為空且不超過第二預設長度;
如判斷結(jié)果均為是,則判定添加合同模板請求合法;否則判定添加合同模板請求不合法。
第六發(fā)送單元,用于當?shù)诹袛鄦卧袛喑鎏砑雍贤0逭埱蠛戏〞r,將添加合同模板請求發(fā)送給第一平臺模塊6000;
第六報錯單元,用于當?shù)诹袛鄦卧袛喑鎏砑雍贤0逭埱蟛缓戏〞r,返回錯誤碼給第二平臺模塊4000;
對應地,第一平臺模塊6000,還包括:
第六接收子模塊,用于接收所述第一函數(shù)接口子模塊發(fā)送來的添加合同模板請求;
第一創(chuàng)建子模塊,用于創(chuàng)建添加合同模板請求中含有的合同模板的模板記錄;
第六保存子模塊,用于存儲合同模板得到第三存儲地址;
第七保存子模塊,用于將第六保存子模塊得到的第三存儲地址和添加合同模板請求中含有模板標識對應保存至第一創(chuàng)建子模塊創(chuàng)建的模板記錄中;
第六發(fā)送子模塊,用于返回響應給第二平臺模塊4000;
對應地,第五查找子模塊6002,具體用于:根據(jù)第一創(chuàng)建合同請求中含有的模板標識查找到對應的模板記錄,根據(jù)模板記錄中存有的第三存儲地址查找到對應的合同模板。
可選地,第一平臺模塊6000,還包括:第七判斷子模塊;
第七判斷子模塊,用于判斷添加合同模板請求中含有的合同模板是否符合轉(zhuǎn)換為第一預設格式的文檔的要求;
對應地,第一創(chuàng)建子模塊,具體用于:當?shù)谄吲袛嘧幽K判斷出添加合同模板請求中含有的合同模板符合轉(zhuǎn)換為第一預設格式的文檔的要求時,創(chuàng)建添加合同模板請求中含有的合同模板的模板記錄;
第六發(fā)送子模塊,還用于當?shù)谄吲袛嘧幽K判斷出添加合同模板請求中含有的合同模板不符合轉(zhuǎn)換為第一預設格式的文檔的要求時,返回錯誤碼給第二平臺模塊4000。
在本實施例中,第二獲取子模塊6004和第三獲取子模塊6011,具體包括:
第七判斷單元,用于判斷接收到的請求中是否含有合同編號;
讀取子單元,用于當?shù)谄吲袛鄦卧袛喑鼋邮盏降恼埱笾泻泻贤幪枙r,讀取接收到的請求中含有的合同編號;
生成單元,用于當?shù)谄吲袛鄦卧袛喑鼋邮盏降恼埱笾胁缓泻贤幪枙r,生成合同編號。
在本實施例中,第二獲取子模塊6004和第三獲取子模塊6011,還包括:
第八判斷單元,用于判斷接收到的請求中含有的合同編號是否被其他合同占用;
讀取單元,具體用于:當?shù)诎伺袛鄦卧袛喑鼋邮盏降恼埱笾泻械暮贤幪栁幢黄渌贤加脮r,讀取接收到的請求中含有的合同編號;
第七報錯單元,用于當?shù)诎伺袛鄦卧袛喑鼋邮盏降恼埱笾泻械暮贤幪柋黄渌贤加脮r,返回錯誤碼給第二平臺模塊4000。
在本實施例中,第一平臺模塊6000,還包括:第二創(chuàng)建子模塊;
第二創(chuàng)建子模塊,用于創(chuàng)建待創(chuàng)建合同的合同記錄;
對應地,第三保存子模塊6007和第五保存子模塊6013,具體用于:將第一存儲地址與合同編號對應保存至第二創(chuàng)建子模塊創(chuàng)建的合同記錄中。
可選地,在本實施例中,第一平臺模塊6000,還包括:第一轉(zhuǎn)換子模塊和第八保存子模塊;
第一轉(zhuǎn)換子模塊,用于在第四發(fā)送子模塊6008和第五發(fā)送子模塊6014返回響應給第二平臺模塊4000之前,將待簽署合同轉(zhuǎn)換為圖片作為待展示合同;
第八保存子模塊,用于存儲待展示合同得到第二存儲地址,將第二存儲地址與合同編號對應保存。
對應地,函數(shù)接口模塊500,還包括:第二函數(shù)接口子模塊;
第二平臺模塊400,還用于調(diào)用第二函數(shù)接口子模塊向第一平臺模塊6000發(fā)送添加水印圖片請求;
第二函數(shù)接口子模塊,包括:
第十判斷單元,用于判斷添加水印圖片請求是否合法;
第七發(fā)送單元,用于當?shù)谑袛鄦卧袛喑鎏砑铀D片請求合法時,發(fā)送添加水印圖片請求給第一平臺模塊6000;
第八報錯單元,用于當?shù)谑袛鄦卧袛喑鎏砑铀D片請求不合法時,返回錯誤碼給第二平臺模塊6000;
第一平臺模塊6000,還包括:
第七接收子模塊,用于接收添加水印圖片請求;
第九保存子模塊,用于將添加水印圖片請求中含有的水印圖片保存至第二平臺模塊4000的賬戶中;
第八判斷子模塊,用于在第一轉(zhuǎn)換子模塊將待簽署合同轉(zhuǎn)換為圖片作為待展示合同之后,判斷待簽署合同是否需要添加水?。?/p>
第一添加子模塊,用于當?shù)诎伺袛嘧幽K判斷出待簽署合同需要添加水印時,將第二平臺模塊4000的賬戶中存有的水印圖片分別添加到待簽署合同和待展示合同中。
可選地,第九保存子模塊,具體用于:將添加水印圖片請求中含有的水印圖片和水印圖片標識對應保存至第二平臺的賬戶中;
第一添加子模塊,具體用于:根據(jù)接收到的創(chuàng)建合同請求中含有的水印圖片標識在第二平臺模塊4000的賬戶中查找到對應的水印圖片,將查找到的水印圖片分別添加到待簽署合同和待展示合同中。
可選地,在本實施例中,函數(shù)接口模塊5000,還包括:第二函數(shù)接口子模塊;
第二平臺模塊4000,還用于調(diào)用第二函數(shù)接口子模塊向第一平臺模塊6000發(fā)送添加水印圖片請求;
第二函數(shù)接口子模塊,包括:
第十判斷單元,用于判斷添加水印圖片請求是否合法;
第七發(fā)送單元,用于當?shù)谑袛鄦卧袛喑鎏砑铀D片請求合法時,發(fā)送添加水印圖片請求給第一平臺模塊6000;
第八報錯單元,用于當?shù)谑袛鄦卧袛喑鎏砑铀D片請求不合法時,返回錯誤碼給第二平臺模塊4000;
第一平臺模塊6000,還包括:
第八接收子模塊,用于接收添加水印圖片請求;
第十保存子模塊,用于將添加水印圖片請求中含有的水印圖片保存至第二平臺模塊4000的賬戶中;
第九判斷子模塊,用于在第二保存子模塊和第四保存子模塊得到第一存儲地址之前,判斷待簽署合同是否需要添加水?。?/p>
第二添加子模塊,用于當?shù)诰排袛嘧幽K判斷出待簽署合同需要添加水印時,將第二平臺模塊4000的賬戶中存有的水印圖片添加到待簽署合同中。
其中,第十保存子模塊,具體用于:將添加水印圖片請求中含有的水印圖片和水印圖片標識對應保存至第二平臺模塊4000的賬戶中;
對應地,第二添加子模塊,具體用于:根據(jù)接收到的創(chuàng)建合同請求中含有的水印圖片標識在第二平臺模塊4000的賬戶中查找到對應的水印圖片,將查找到的水印圖片添加到待簽署合同中。
在本實施例中,所述第九判斷單元和所述第十判斷單元,具體用于:判斷所述添加水印圖片請求中含有的水印圖片的大小、尺寸和透明度是否均在對應的預設條件內(nèi),是則判定添加水印圖片請求合法;否則判定添加水印圖片請求不合法。
在本實施例中,上述第四發(fā)送子模塊6008和第五發(fā)送子模塊6014,具體用于:根據(jù)接收到的請求中含有的返回響應地址返回響應給第二平臺模塊4000。
本發(fā)明中,合同訂立平臺(第一平臺)為用戶(第二平臺)提供了多種創(chuàng)建合同和簽署合同的模式,用戶可以根據(jù)需求進行選擇,提升了用戶體驗。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以權(quán)利要求的保護范圍為準。