本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種信息發(fā)布方法、客戶端及服務(wù)端。
背景技術(shù):
傳統(tǒng)技術(shù)中,在對(duì)用戶在客戶端通過表單輸入的信息進(jìn)行發(fā)布時(shí),也即在對(duì)表單中的信息進(jìn)行發(fā)布時(shí),為了防止表單被重復(fù)提交,客戶端首先對(duì)用戶提交的表單進(jìn)行唯一性驗(yàn)證,在唯一性驗(yàn)證通過后;客戶端針對(duì)該提交成功的表單會(huì)向服務(wù)端發(fā)送一次信息發(fā)布請(qǐng)求,該信息發(fā)布請(qǐng)求通過隨機(jī)生成的請(qǐng)求標(biāo)識(shí)(requestid)進(jìn)行標(biāo)記,并且該信息發(fā)布請(qǐng)求中包括表單中的信息;服務(wù)端為了避免對(duì)表單中的信息進(jìn)行重復(fù)發(fā)布,會(huì)根據(jù)請(qǐng)求標(biāo)識(shí),對(duì)信息發(fā)布請(qǐng)求進(jìn)行唯一性驗(yàn)證,在唯一性驗(yàn)證通過后,發(fā)布表單中的信息。
然而上述方法中,當(dāng)用戶針對(duì)同一表單的兩次提交操作的時(shí)間間隔比較小時(shí),該兩次提交的同一表單可能都會(huì)通過唯一性認(rèn)證,一旦兩次提交的同一表單都通過唯一性認(rèn)證,則客戶端會(huì)針對(duì)該同一表單向服務(wù)端發(fā)送兩次信息發(fā)布請(qǐng)求,且該兩個(gè)不同的信息發(fā)布請(qǐng)求通過兩個(gè)不同的請(qǐng)求標(biāo)識(shí)進(jìn)行標(biāo)記;當(dāng)服務(wù)端接收到通過兩個(gè)不同的請(qǐng)求標(biāo)識(shí)標(biāo)記的兩個(gè)不同的信息發(fā)布請(qǐng)求時(shí),由于該兩個(gè)信息發(fā)布請(qǐng)求都會(huì)通過唯一性驗(yàn)證,因此服務(wù)端會(huì)發(fā)布兩次上述表單中的信息,這影響了信息發(fā)布的準(zhǔn)確性,進(jìn)而浪費(fèi)了計(jì)算機(jī)資源。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)描述了一種信息發(fā)布方法、客戶端及服務(wù)端,可以提高信息發(fā)布的準(zhǔn)確性,從而可以達(dá)到節(jié)約計(jì)算機(jī)資源的目的。
第一方面,提供了一種信息發(fā)布方法,該方法包括:
客戶端接收用戶提交的表單
從所述表單中讀取所述表單的第一標(biāo)識(shí)信息,所述表單是指所述客戶端中由所述用戶輸入所述待發(fā)布信息的區(qū)域;
根據(jù)所述第一標(biāo)識(shí)信息,對(duì)所述表單的唯一性進(jìn)行驗(yàn)證;
在對(duì)所述表單的唯一性驗(yàn)證通過后,根據(jù)所述第一標(biāo)識(shí)信息,確定第二標(biāo)識(shí)信息;
向服務(wù)端發(fā)送信息發(fā)布請(qǐng)求,所述信息發(fā)布請(qǐng)求包括所述第二標(biāo)識(shí)信息以及所述待發(fā)布信息,所述信息發(fā)布請(qǐng)求用于指示所述服務(wù)端在根據(jù)所述第二標(biāo)識(shí)信息對(duì)所述信息發(fā)布請(qǐng)求的唯一性驗(yàn)證通過后,發(fā)布所述待發(fā)布信息。
第二方面,提供了一種信息發(fā)布方法,該方法包括:
服務(wù)端接收客戶端發(fā)送的信息發(fā)布請(qǐng)求,所述信息發(fā)布請(qǐng)求包括第二標(biāo)識(shí)信息和待發(fā)布信息;
所述第二標(biāo)識(shí)信息是由所述客戶端在對(duì)用戶提交的表單的唯一性驗(yàn)證通過后根據(jù)所述表單的第一標(biāo)識(shí)信息確定的,所述表單是指所述客戶端中由所述用戶輸入所述待發(fā)布信息的區(qū)域;
根據(jù)所述第二標(biāo)識(shí)信息,對(duì)所述信息發(fā)布請(qǐng)求的唯一性進(jìn)行驗(yàn)證;
在對(duì)所述信息發(fā)布請(qǐng)求的唯一性驗(yàn)證通過后,發(fā)布所述待發(fā)布信息。
第三方面,提供了一種客戶端,該客戶端包括:
接收單元,用于接收用戶提交的表單;
讀取單元,用于從接收單元接收的所述表單中讀取所述表單的第一標(biāo)識(shí)信息,所述表單是指所述客戶端中由所述用戶輸入所述待發(fā)布信息的區(qū)域;
驗(yàn)證單元,用于根據(jù)所述讀取單元讀取的所述第一標(biāo)識(shí)信息,對(duì)所述表單的唯一性進(jìn)行驗(yàn)證;
確定單元,用于在所述驗(yàn)證單元對(duì)所述表單的唯一性驗(yàn)證通過后,根據(jù)所述第一標(biāo)識(shí)信息,確定第二標(biāo)識(shí)信息;
發(fā)送單元,用于向服務(wù)端發(fā)送信息發(fā)布請(qǐng)求,所述信息發(fā)布請(qǐng)求包括所述第二標(biāo)識(shí)信息以及所述待發(fā)布信息,所述信息發(fā)布請(qǐng)求用于指示所述服務(wù)端在根據(jù)所述第二標(biāo)識(shí)信息對(duì)所述信息發(fā)布請(qǐng)求的唯一性驗(yàn)證通過后,發(fā)布所述待發(fā)布信息。
第四方面,提供了一種服務(wù)端,該服務(wù)端包括:
接收單元,用于接收客戶端發(fā)送的信息發(fā)布請(qǐng)求,所述信息發(fā)布請(qǐng)求包括第二標(biāo)識(shí)信息和待發(fā)布信息;所述第二標(biāo)識(shí)信息是由所述客戶端在對(duì)用戶提交的表單的唯一性驗(yàn)證通過后根據(jù)所述表單的第一標(biāo)識(shí)信息確定的,所述表單是指所述客戶端中由所述用戶輸入所述待發(fā)布信息的區(qū)域;
驗(yàn)證單元,用于根據(jù)所述接收單元接收的所述第二標(biāo)識(shí)信息,對(duì)所述信息發(fā)布請(qǐng)求的唯一性進(jìn)行驗(yàn)證;
發(fā)布單元,用于在所述驗(yàn)證單元對(duì)所述信息發(fā)布請(qǐng)求的唯一性驗(yàn)證通過后,發(fā)布所述待發(fā)布信息。
本申請(qǐng)?zhí)峁┑男畔l(fā)布方法、客戶端及服務(wù)端,客戶端在對(duì)用戶提交的表單的唯一性驗(yàn)證通過后,根據(jù)表單中的第一標(biāo)識(shí)信息,確定第二標(biāo)識(shí)信息;之后客戶端向服務(wù)端發(fā)送通過第二標(biāo)識(shí)信息標(biāo)記的信息發(fā)布請(qǐng)求;服務(wù)端在接收到信息發(fā)布請(qǐng)求之后,根據(jù)第二標(biāo)識(shí)信息對(duì)信息發(fā)布請(qǐng)求進(jìn)行唯一性驗(yàn)證,并在唯一性驗(yàn)證通過后,發(fā)布表單中的信息。由此可以看出,本申請(qǐng)中的第二標(biāo)識(shí)信息是根據(jù)第一標(biāo)識(shí)信息生成的,也即本申請(qǐng)中針對(duì)同一表單只能生成一個(gè)第二標(biāo)識(shí)信息,由此當(dāng)客戶端針對(duì)兩次提交的同一表單向服務(wù)端發(fā)送兩次信息發(fā)布請(qǐng)求時(shí),由于該兩次信息發(fā)布請(qǐng)求的第二標(biāo)識(shí)信息相同,所以第二次信息發(fā)布請(qǐng)求不能通過唯一性驗(yàn)證,從而服務(wù)端不對(duì)第二次信息發(fā)布請(qǐng)求中已發(fā)布的表單中的信息進(jìn)行重復(fù)發(fā)布,由此避免了現(xiàn)有技術(shù)中對(duì)表單中的信息重復(fù)發(fā)布的問題。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本申請(qǐng)?zhí)峁┑男畔l(fā)布方法的應(yīng)用場(chǎng)景示意圖;
圖2為本申請(qǐng)一種實(shí)施例提供的信息發(fā)布方法的流程圖;
圖3為本申請(qǐng)?zhí)峁┑娜谫Y需求發(fā)布方法的信息交互圖;
圖4為本申請(qǐng)另一種實(shí)施例提供的信息發(fā)布方法的流程圖;
圖5為本申請(qǐng)?jiān)僖环N實(shí)施例提供的客戶端的示意圖;
圖6為本申請(qǐng)又一種實(shí)施例提供的服務(wù)端的示意圖。
具體實(shí)施方式
下面結(jié)合附圖,對(duì)本發(fā)明的實(shí)施例進(jìn)行描述。
本申請(qǐng)實(shí)施例提供的信息發(fā)布方法適用于對(duì)用戶在客戶端通過表單輸入的信息進(jìn)行發(fā)布的場(chǎng)景,此處的客戶端可以為web服務(wù)頁面(以下簡(jiǎn)稱網(wǎng)頁頁面)。
如,適用于對(duì)機(jī)構(gòu)用戶(也稱融資方)在招財(cái)寶融資平臺(tái)的前端(也稱協(xié)作中心(fincooprod))的融資需求申請(qǐng)表單中填寫的融資需求進(jìn)行發(fā)布的場(chǎng)景。此處,招財(cái)寶融資平臺(tái)可以是指提供給合作金融機(jī)構(gòu)發(fā)布融資需求的平臺(tái),其可以包括上述前端以及與前端對(duì)應(yīng)的融資服務(wù)中心(finloancenter),其中,前端用于接收融資方填寫的融資需求,融資服務(wù)中心用于落地融資需求;上述融資需求可以是指融資方通過合作金融機(jī)構(gòu)向招財(cái)寶融資平臺(tái)發(fā)起的一筆借款請(qǐng)求,如果發(fā)布成功,會(huì)在招財(cái)寶融資平臺(tái)形成一筆融資需求。融資需求包含融資方信息、融資金額、利率、借款期限、募集期、產(chǎn)品期限、借款協(xié)議編號(hào)等信息。需要說明的是,在融資需求包含上述幾種信息時(shí),則上述落地融資需求可以是指將融資需求中包含的信息保存到數(shù)據(jù)庫的過程。
具體地,合作金融機(jī)構(gòu)將融資方的借款需求發(fā)布至招財(cái)寶融資平臺(tái),投資人通過招財(cái)寶融資平臺(tái)購買產(chǎn)品。招財(cái)寶融資平臺(tái)支持頁面發(fā)布融資需求、直連接口發(fā)布融資需求和excel批量發(fā)布融資需求,滿足機(jī)構(gòu)的多種需求。而本申請(qǐng)信息發(fā)布不準(zhǔn)確的問題主要是針對(duì)在招財(cái)寶融資平臺(tái)上通過網(wǎng)頁頁面的方式發(fā)布融資需求時(shí)存在的??梢岳斫獾氖牵趯?duì)融資需求進(jìn)行發(fā)布的應(yīng)用場(chǎng)景下,本申請(qǐng)背景技術(shù)中所指出的信息發(fā)布不準(zhǔn)確問題可以是指融資需求重發(fā)發(fā)布的問題,即融資方的一筆融資請(qǐng)求,在招財(cái)寶融資平臺(tái)上發(fā)布了多筆相同的融資需求。
需要說明的是,因?yàn)榻鹑跈C(jī)構(gòu)在協(xié)作中心發(fā)布融資需求的時(shí)候,會(huì)生成一份與招財(cái)寶融資平臺(tái)的線上合同,形成法律約束,并且選擇增信公司進(jìn)行擔(dān)保。發(fā)布的融資需求,由招財(cái)寶融資平臺(tái)進(jìn)行公開募集,募集成功以后,將募集到資金打款給對(duì)應(yīng)的金融機(jī)構(gòu),并收取一定的平臺(tái)手續(xù)費(fèi)。而該筆融資需求對(duì)外承諾的利率也由融資方承擔(dān),并按時(shí)還款。而對(duì)于這種是因?yàn)檎胸?cái)寶融資平臺(tái)本身的問題而產(chǎn)生的重復(fù)多筆的募集,融資方是不予承認(rèn)的,如果一旦募集成功,那么對(duì)外承諾的利率只能由招財(cái)寶融資平臺(tái)自己承擔(dān),現(xiàn)在招財(cái)寶融資平臺(tái)上的一筆融資需求動(dòng)輒億萬,這將會(huì)是一起嚴(yán)重的資金損失。因此迫切需要解決因表單多次提交而導(dǎo)致融資需求重復(fù)發(fā)布的問題。
圖1為本申請(qǐng)?zhí)峁┑男畔l(fā)布方法的應(yīng)用場(chǎng)景示意圖,圖1中,客戶端可以是指安裝在個(gè)人電腦上的網(wǎng)頁頁面,在該客戶端上可以生成對(duì)應(yīng)的表單,如上述融資需求申請(qǐng)表單,用戶通過客戶端上的表單來輸入待發(fā)布信息,如,融資需求。具體地,在用戶提交表單成功后,客戶端可以將表單中待發(fā)布信息發(fā)送至服務(wù)端,由服務(wù)端對(duì)表單中待發(fā)布信息進(jìn)行發(fā)布??梢岳斫獾氖牵诎l(fā)布融資需求的場(chǎng)景下,上述客戶端可以是指招財(cái)寶融資平臺(tái)的前端,而上述服務(wù)端可以是指融資服務(wù)中心。
圖2為本申請(qǐng)一種實(shí)施例提供的信息發(fā)布方法的流程圖,圖2中,所述方法的執(zhí)行主體可以為圖1中的客戶端,如,招財(cái)寶融資平臺(tái)的前端,如圖2所示,所述方法具體可以包括:
步驟210,當(dāng)客戶端接收到用戶提交的表單時(shí),從表單中讀取表單的第一標(biāo)識(shí)信息。
此處的表單可以是指客戶端中由用戶輸入待發(fā)布信息的區(qū)域。
可選地,上述第一標(biāo)識(shí)信息可以是由客戶端在生成表單時(shí)填寫到表單中的n位隨機(jī)數(shù)據(jù),其中,n為正整數(shù)。
在一種具體實(shí)現(xiàn)方式中,該第一標(biāo)識(shí)信息可以是指表單令牌(模型-視圖-控制器(modelviewcontroller,mvc)框架的formtoken),客戶端可以通過對(duì)表單令牌的驗(yàn)證,來避免表單重復(fù)提交的問題。具體地,當(dāng)客戶端接收到用戶訪問包含表單的網(wǎng)頁頁面的訪問請(qǐng)求時(shí),可以生成一個(gè)32位的隨機(jī)數(shù)作為表單令牌,并將該表單令牌存儲(chǔ)到會(huì)話(session)緩存中,此處,表單令牌在session緩存中的生命周期可以為30分鐘,也即每隔30分鐘,session緩存中的表單令牌會(huì)被更新一次。在客戶端將表單令牌存儲(chǔ)到session緩存之后,客戶端可以將該表單令牌填寫到表單中;當(dāng)用戶填寫完表單并提交表單時(shí),客戶端可以從表單中讀取表單令牌,也即從表單中讀取第一標(biāo)識(shí)信息。
可以理解的是,客戶端將表單令牌填寫到表單中即為將表單令牌填寫到表單對(duì)應(yīng)的代碼中。在一個(gè)例子中,表單中的表單令牌可以如下所示:
<inputtype="hidden"name="_form_token"value="sizgsbknjhxowi2iglu1rwjc6xxxxxx"/>
其中,"_form_token"為表單令牌在表單中對(duì)應(yīng)的名稱,"sizgsbknjhxowi2iglu1rwjc6xxxxxx"為表單令牌的值,即為32位的隨機(jī)數(shù)。
步驟220,根據(jù)第一標(biāo)識(shí)信息,對(duì)表單的唯一性進(jìn)行驗(yàn)證。
以第一標(biāo)識(shí)信息為表單令牌為例來說,對(duì)表單的唯一性驗(yàn)證過程具體可以為:從session緩存中讀取表單令牌,并將從表單中讀取的表單令牌與從session緩存中讀取的表單令牌進(jìn)行比對(duì),若比對(duì)一致,則對(duì)表單的唯一性驗(yàn)證通過,也即用戶提交表單成功;否則對(duì)表單的唯一性驗(yàn)證不通過,也即用戶提交表單不成功。
需要說明的是,在客戶端從session緩存中讀取表單令牌之后,可以立即刪除session緩存中的表單令牌,以免同一表單被重復(fù)提交。此處,通過刪除session緩存中的表單令牌來避免同一表單被重復(fù)提交的實(shí)現(xiàn)原理如下:當(dāng)表單被第一次提交時(shí),且為未超時(shí)(即沒超過30分鐘)提交時(shí),從表單中讀取的表單令牌與從session緩存中讀取的表單令牌會(huì)比對(duì)一致,從而用戶提交表單成功,當(dāng)該同一表單被再次提交時(shí),即便未超時(shí),由于session緩存中的表單令牌已經(jīng)被刪除,因此,肯定比對(duì)不一致,從而用戶提交表單不會(huì)成功。
然而,由于目前的系統(tǒng)或平臺(tái)往往具有很高的并發(fā)性,所以在session緩存中的表單令牌未被刪除的瞬間,客戶端可能會(huì)接收用戶對(duì)同一表單執(zhí)行了第二次提交操作,而針對(duì)該兩次提交操作,客戶端都可以讀取到session緩存中的表單令牌,那么該兩次提交的表單都可以通過唯一性驗(yàn)證,由此出現(xiàn)了同一表單重復(fù)提交的問題。因此,就需要在下一階段能夠?qū)χ貜?fù)的表單進(jìn)行識(shí)別,以免服務(wù)端對(duì)表單中的信息進(jìn)行重復(fù)發(fā)布。
上述用戶針對(duì)同一表單多次提交的操作可能是由用戶快速多次點(diǎn)擊提交按鈕導(dǎo)致的,或者也可能是瀏覽器發(fā)生抖動(dòng)導(dǎo)致的,還可能是因網(wǎng)絡(luò)較慢用戶再次點(diǎn)擊提交按鈕導(dǎo)致的。
步驟230,在對(duì)表單的唯一性驗(yàn)證通過后,根據(jù)第一標(biāo)識(shí)信息,確定第二標(biāo)識(shí)信息。
此處的第二標(biāo)識(shí)信息(requestid)可以用于標(biāo)記信息發(fā)布請(qǐng)求,該信息發(fā)布請(qǐng)求用于客戶端請(qǐng)求服務(wù)端發(fā)布已成功提交的表單中的信息??梢岳斫獾氖牵槍?duì)每個(gè)已成功提交的表單,客戶端可以向服務(wù)端發(fā)送一次信息發(fā)布請(qǐng)求,以請(qǐng)求服務(wù)端發(fā)布表單中的信息。
對(duì)于重復(fù)提交的表單,實(shí)際上每次提交的表單中的表單令牌都是一樣的。于是本申請(qǐng)進(jìn)行了這樣的優(yōu)化:在生成第二標(biāo)識(shí)信息時(shí),不再隨機(jī)生成,而是根據(jù)第一標(biāo)識(shí)信息來生成第二標(biāo)識(shí)信息,而由于同一表單的第一標(biāo)識(shí)信息是相同的,由此生成的第二標(biāo)識(shí)信息也是相同的;當(dāng)客戶端針對(duì)重復(fù)的表單向服務(wù)端發(fā)送兩次信息發(fā)布請(qǐng)求時(shí),由于該兩次信息發(fā)布請(qǐng)求的第二標(biāo)識(shí)信息相同,所以第二次信息發(fā)布請(qǐng)求不能通過唯一性驗(yàn)證,也即服務(wù)端過濾掉了第二標(biāo)識(shí)信息相同的第二次信息發(fā)布請(qǐng)求,從而可以確保即使同一表單被提交多次,但該表單的信息只發(fā)布一次。
在一種具體實(shí)現(xiàn)方式中,客戶端可以通過如下步驟來確定第二標(biāo)識(shí)信息:
根據(jù)預(yù)設(shè)的算法,將第一標(biāo)識(shí)信息轉(zhuǎn)化為對(duì)應(yīng)的字節(jié)元素;
確定與字節(jié)元素對(duì)應(yīng)的字符串;
根據(jù)字符串,確定第二標(biāo)識(shí)信息。
此處的預(yù)設(shè)的算法可以為消息摘要算法第五版(messagedigestalgorithm,md5)算法。以第一標(biāo)識(shí)信息為32位隨機(jī)數(shù)據(jù),第二標(biāo)識(shí)信息為32位的字符串為例來說,第二標(biāo)識(shí)信息的確定過程可以為:可以通過java自帶的md5轉(zhuǎn)化器(具有實(shí)現(xiàn)上述md5算法的功能),將32位隨機(jī)數(shù)據(jù)轉(zhuǎn)換為16個(gè)字節(jié)(byte)元素,之后將每個(gè)字節(jié)元素表示為2位的字符串,從而就可以得到32位的字符串。舉例來說,md5轉(zhuǎn)化器轉(zhuǎn)換得到的16個(gè)字節(jié)元素可以分別為:-44、29、-116、-39、-113、0、-78、4、-23、-128、9、-104、-20、-8、66、126,之后將每個(gè)字節(jié)元素表示為2位的字符串(也即表示為16進(jìn)制數(shù)據(jù)),其中,當(dāng)任一個(gè)字節(jié)元素只能表示為1位的字符串時(shí),則可以通過補(bǔ)0的方式,補(bǔ)齊2位的字符串,如,對(duì)字節(jié)元素“0”,與其對(duì)應(yīng)的16進(jìn)制數(shù)據(jù)為0,即為1位,補(bǔ)0后,得到:00;最后就可以得到字符串:d41d8cd98f00b204e9800998ecf8427e。此處,通過md5轉(zhuǎn)化器,將32位隨機(jī)數(shù)據(jù)轉(zhuǎn)換為16個(gè)字節(jié)(byte)元素屬于現(xiàn)有成熟技術(shù),本申請(qǐng)?jiān)诖瞬粡?fù)贅述。
需要說明的是,雖然上述示例以n=m為例來說,在實(shí)際應(yīng)用中,n也可以小于m或者大于m;當(dāng)n小于或者大于m時(shí),md5轉(zhuǎn)化器同樣可以轉(zhuǎn)換出16個(gè)字節(jié)(byte)元素,這個(gè)是現(xiàn)有md5轉(zhuǎn)化器的功能,本申請(qǐng)?jiān)诖瞬粡?fù)贅述。
當(dāng)然,在實(shí)際應(yīng)用中,m也可以不為32,其還可以為:16、48或者64等,當(dāng)m為48時(shí),則可以對(duì)md5轉(zhuǎn)化器轉(zhuǎn)換得到的16個(gè)字節(jié)元素做如下處理來獲得48位的字符串:先確定與16個(gè)元素對(duì)應(yīng)的32位的字符串,之后從32位的字符串中截取(如,從最左側(cè)截取)16位的字符串,最后將16位的字符串和32位的字符串組合在一起就可以得到48位的字符串。當(dāng)然,這只是一種獲得48位的字符串的方式,本領(lǐng)域技術(shù)人員還可以通過結(jié)合某一算法來確定m位的字符串,本申請(qǐng)對(duì)此不作限定。
步驟240,向所述服務(wù)端發(fā)送信息發(fā)布請(qǐng)求。
其中,信息發(fā)布請(qǐng)求包括第二標(biāo)識(shí)信息以及待發(fā)布信息,信息發(fā)布請(qǐng)求用于指示服務(wù)端在根據(jù)第二標(biāo)識(shí)信息對(duì)信息發(fā)布請(qǐng)求的唯一性驗(yàn)證通過后,發(fā)布待發(fā)布信息。
在一種實(shí)現(xiàn)方式中,客戶端可以將第二標(biāo)識(shí)信息以及待發(fā)布信息封裝為請(qǐng)求對(duì)象,該請(qǐng)求對(duì)象包括屬性名和屬性值,以封裝后的第二標(biāo)識(shí)信息為例來說,第二標(biāo)識(shí)信息的屬性名可以為“requestid”,而屬性值則可以為“0a20202020777269”??蛻舳嗽诜庋b得到請(qǐng)求對(duì)象之后,可以將封裝后的請(qǐng)求對(duì)象發(fā)送給服務(wù)端。
服務(wù)端在接收到信息發(fā)布請(qǐng)求之后,對(duì)該信息發(fā)布請(qǐng)求進(jìn)行唯一性驗(yàn)證,也即對(duì)信息發(fā)布請(qǐng)求進(jìn)行冪等控制,該冪等控制的過程具體為:服務(wù)端讀取信息發(fā)布請(qǐng)求中的第二標(biāo)識(shí)信息,并將第二標(biāo)識(shí)信息與數(shù)據(jù)庫中已存儲(chǔ)的第二標(biāo)識(shí)信息進(jìn)行一一比對(duì),若與已存儲(chǔ)的第二標(biāo)識(shí)信息均比對(duì)不一致,則信息發(fā)布請(qǐng)求唯一性驗(yàn)證通過,否則信息發(fā)布請(qǐng)求唯一性驗(yàn)證不通過。在信息發(fā)布請(qǐng)求驗(yàn)證通過后,服務(wù)端發(fā)布待發(fā)布信息,如,融資需求,并將待發(fā)布信息以及第二標(biāo)識(shí)信息存儲(chǔ)到數(shù)據(jù)庫中??梢岳斫獾氖?,數(shù)據(jù)庫中的第二標(biāo)識(shí)信息可以唯一的標(biāo)識(shí)一個(gè)以發(fā)布的信息,如,標(biāo)識(shí)一個(gè)融資需求。
綜上,本申請(qǐng)利用了服務(wù)端的后臺(tái)冪等控制來解決表單重復(fù)提交導(dǎo)致表單中的信息發(fā)布多次的問題。這樣的實(shí)現(xiàn)還有一個(gè)優(yōu)點(diǎn),因?yàn)榉?wù)端對(duì)第二標(biāo)識(shí)信息的冪等控制是數(shù)據(jù)庫層面的,所以只要待發(fā)布信息被成功存儲(chǔ)到數(shù)據(jù)庫,那么后面第二標(biāo)識(shí)信息相同的表單中的待發(fā)布信息都是無法重復(fù)入庫的,不存在同時(shí)并發(fā)入庫的問題,真正有效地解決了信息發(fā)布不準(zhǔn)確的問題。
當(dāng)本申請(qǐng)的信息發(fā)布方法應(yīng)用于在招財(cái)寶融資平臺(tái)上發(fā)布融資需求時(shí),招財(cái)寶融資平臺(tái)的前端與融資服務(wù)中心之間的信息交互可以如圖3所示。圖3中,主要包括如下步驟:
步驟310,機(jī)構(gòu)用戶登錄協(xié)作中心。
步驟320,機(jī)構(gòu)用戶選擇融資模板。
在結(jié)構(gòu)用戶選擇融資模板之后,協(xié)作中心可以生成表單令牌,并將表單令牌填寫到融資需求申請(qǐng)表單中。
步驟330,機(jī)構(gòu)用戶填寫與選擇的融資模板對(duì)應(yīng)的融資需求申請(qǐng)表單。
步驟340,機(jī)構(gòu)用戶提交融資需求申請(qǐng)表單。
步驟350,協(xié)作中心調(diào)用融資服務(wù)中心對(duì)融資需求申請(qǐng)表單進(jìn)行預(yù)校驗(yàn)。
步驟360,協(xié)作中心顯示包含融資需求申請(qǐng)表單的預(yù)覽頁面。
步驟370,機(jī)構(gòu)用戶確認(rèn)提交融資需求申請(qǐng)表單。
步驟380,協(xié)作中心從融資需求申請(qǐng)表單中讀取表單令牌,并根據(jù)表單令牌對(duì)融資需求申請(qǐng)表單的唯一性進(jìn)行驗(yàn)證。
步驟390,協(xié)作中心驗(yàn)證權(quán)限,安全服務(wù)化。
步驟3100,協(xié)作中心根據(jù)表單令牌,生成第二標(biāo)識(shí)信息(requestid)。
步驟3110,協(xié)作中心根據(jù)requestid和融資需求申請(qǐng)表單中的信息,封裝融資需求。
步驟3120,協(xié)作中心調(diào)用融資服務(wù)中心發(fā)布融資需求。
步驟3130,融資服務(wù)中心返回已成功受理的消息。
步驟3140,融資服務(wù)中心根據(jù)requestid對(duì)融資需求進(jìn)行冪等控制。
步驟3150,融資服務(wù)中心對(duì)融資需求中的參數(shù)進(jìn)行校驗(yàn)。
步驟3160,融資服務(wù)中心簽約招財(cái)寶協(xié)議。
步驟3170,融資服務(wù)中心融資保障投保,預(yù)約保單。
步驟3180,融資服務(wù)中心落地融資需求。
步驟3190,融資服務(wù)中心發(fā)布招財(cái)產(chǎn)品。
步驟3200,產(chǎn)品中心(fundselling)對(duì)招財(cái)產(chǎn)品參數(shù)進(jìn)行校驗(yàn)。
步驟3210,產(chǎn)品中心落地招財(cái)寶產(chǎn)品。
綜上,本申請(qǐng)上述實(shí)施例解決了招財(cái)寶融資平臺(tái)因表單重復(fù)提交導(dǎo)致融資需求發(fā)布多筆的問題。同時(shí),該實(shí)施例還利用了融資需求本身的冪等控制,由此不僅解決了前臺(tái)表單重復(fù)提交帶來的問題,同時(shí)利用了后臺(tái)數(shù)據(jù)庫層面的冪等控制,真正有效的控制住了融資需求重復(fù)發(fā)布的問題。
圖4為本申請(qǐng)另一種實(shí)施例提供的信息發(fā)布方法的流程圖,圖4中,所述方法的執(zhí)行主體可以為圖1中的服務(wù)端,如,融資服務(wù)中心,如圖4所示,所述方法具體可以包括:
步驟410,服務(wù)端接收客戶端發(fā)送的信息發(fā)布請(qǐng)求。
其中,該信息發(fā)布請(qǐng)求包括第二標(biāo)識(shí)信息和待發(fā)布信息;該第二標(biāo)識(shí)信息可以是由客戶端在對(duì)用戶提交的表單的唯一性驗(yàn)證通過后根據(jù)表單的第一標(biāo)識(shí)信息確定的,其中,表單是指客戶端中由用戶輸入待發(fā)布信息的區(qū)域。
其中,第一標(biāo)識(shí)信息是由客戶端在生成表單時(shí)填寫到表單中的n位隨機(jī)數(shù)據(jù),其中,n為正整數(shù)。
在一種實(shí)現(xiàn)方式中,客戶端可以將第二標(biāo)識(shí)信息以及待發(fā)布信息封裝為請(qǐng)求對(duì)象,該請(qǐng)求對(duì)象包括屬性名和屬性值,以封裝后的第二標(biāo)識(shí)信息為例來說,第二標(biāo)識(shí)信息的屬性名可以為“requestid”,而屬性值則可以為“0a20202020777269”??蛻舳嗽诜庋b得到請(qǐng)求對(duì)象之后,可以將封裝后的請(qǐng)求對(duì)象發(fā)送給服務(wù)端。
步驟420,根據(jù)所述第二標(biāo)識(shí)信息,對(duì)信息發(fā)布請(qǐng)求的唯一性進(jìn)行驗(yàn)證。
步驟430,在對(duì)信息發(fā)布請(qǐng)求的唯一性驗(yàn)證通過后,發(fā)布待發(fā)布信息。
服務(wù)端在接收到信息發(fā)布請(qǐng)求之后,對(duì)該信息發(fā)布請(qǐng)求進(jìn)行唯一性驗(yàn)證,也即對(duì)信息發(fā)布請(qǐng)求進(jìn)行冪等控制,該冪等控制的過程具體為:服務(wù)端讀取信息發(fā)布請(qǐng)求中的第二標(biāo)識(shí)信息,并將第二標(biāo)識(shí)信息與數(shù)據(jù)庫中已存儲(chǔ)的第二標(biāo)識(shí)信息進(jìn)行一一比對(duì),若與已存儲(chǔ)的第二標(biāo)識(shí)信息均比對(duì)不一致,則信息發(fā)布請(qǐng)求唯一性驗(yàn)證通過,否則信息發(fā)布請(qǐng)求唯一性驗(yàn)證不通過。在信息發(fā)布請(qǐng)求驗(yàn)證通過后,服務(wù)端發(fā)布待發(fā)布信息,如,融資需求,并將待發(fā)布信息以及第二標(biāo)識(shí)信息存儲(chǔ)到數(shù)據(jù)庫中??梢岳斫獾氖?,數(shù)據(jù)庫中的第二標(biāo)識(shí)信息可以唯一的標(biāo)識(shí)一個(gè)以發(fā)布的信息,如,標(biāo)識(shí)一個(gè)融資需求。
綜上,本申請(qǐng)利用了服務(wù)端的后臺(tái)冪等控制來解決表單重復(fù)提交導(dǎo)致表單中的信息發(fā)布多次的問題。這樣的實(shí)現(xiàn)還有一個(gè)優(yōu)點(diǎn),因?yàn)榉?wù)端對(duì)第二標(biāo)識(shí)信息的冪等控制是數(shù)據(jù)庫層面的,所以只要待發(fā)布信息被成功存儲(chǔ)到數(shù)據(jù)庫,那么后面第二標(biāo)識(shí)信息相同的表單中的待發(fā)布信息都是無法重復(fù)入庫的,不存在同時(shí)并發(fā)入庫的問題,真正有效地解決了信息發(fā)布不準(zhǔn)確的問題。
與上述信息發(fā)布方法對(duì)應(yīng)地,本申請(qǐng)實(shí)施例還提供的一種客戶端,如圖5所示,該客戶端包括:
接收單元501,用于接收用戶提交的表單。
讀取單元502,用于從接收單元501接收的表單中讀取表單的第一標(biāo)識(shí)信息,表單是指客戶端中由用戶輸入待發(fā)布信息的區(qū)域。
其中,第一標(biāo)識(shí)信息是由客戶端在生成表單時(shí)填寫到表單中的n位隨機(jī)數(shù)據(jù),其中,n為正整數(shù)。
驗(yàn)證單元503,用于根據(jù)讀取單元502讀取的第一標(biāo)識(shí)信息,對(duì)表單的唯一性進(jìn)行驗(yàn)證。
確定單元504,用于在驗(yàn)證單元503對(duì)表單的唯一性驗(yàn)證通過后,根據(jù)第一標(biāo)識(shí)信息,確定第二標(biāo)識(shí)信息。
確定單元504具體用于:
根據(jù)預(yù)設(shè)的算法,將第一標(biāo)識(shí)信息轉(zhuǎn)化為對(duì)應(yīng)的字節(jié)元素;
確定與字節(jié)元素對(duì)應(yīng)的字符串;
根據(jù)字符串,確定所述第二標(biāo)識(shí)信息。
發(fā)送單元505,用于向服務(wù)端發(fā)送信息發(fā)布請(qǐng)求,信息發(fā)布請(qǐng)求包括第二標(biāo)識(shí)信息以及待發(fā)布信息,信息發(fā)布請(qǐng)求用于指示服務(wù)端在根據(jù)第二標(biāo)識(shí)信息對(duì)信息發(fā)布請(qǐng)求的唯一性驗(yàn)證通過后,發(fā)布待發(fā)布信息。
本申請(qǐng)實(shí)施例裝置的各功能模塊的功能,可以通過上述方法實(shí)施例的各步驟來實(shí)現(xiàn),因此,本申請(qǐng)?zhí)峁┑难b置的具體工作過程,在此不復(fù)贅述。
本申請(qǐng)實(shí)施例提供的客戶端,接收單元501接收用戶提交的表單;讀取單元502從表單中讀取表單的第一標(biāo)識(shí)信息,表單是指客戶端中由用戶輸入待發(fā)布信息的區(qū)域;驗(yàn)證單元503根據(jù)第一標(biāo)識(shí)信息,對(duì)表單的唯一性進(jìn)行驗(yàn)證;確定單元504在對(duì)表單的唯一性驗(yàn)證通過后,根據(jù)第一標(biāo)識(shí)信息,確定第二標(biāo)識(shí)信息;發(fā)送單元505向服務(wù)端發(fā)送信息發(fā)布請(qǐng)求,信息發(fā)布請(qǐng)求包括第二標(biāo)識(shí)信息以及待發(fā)布信息,信息發(fā)布請(qǐng)求用于指示服務(wù)端在根據(jù)第二標(biāo)識(shí)信息對(duì)信息發(fā)布請(qǐng)求的唯一性驗(yàn)證通過后,發(fā)布待發(fā)布信息。由此避免了現(xiàn)有技術(shù)中對(duì)表單中的信息重復(fù)發(fā)布的問題。
與上述信息發(fā)布方法對(duì)應(yīng)地,本申請(qǐng)實(shí)施例還提供的一種服務(wù)端,如圖6所示,該服務(wù)端包括:
接收單元601,用于接收客戶端發(fā)送的信息發(fā)布請(qǐng)求,信息發(fā)布請(qǐng)求包括第二標(biāo)識(shí)信息和待發(fā)布信息;第二標(biāo)識(shí)信息是由客戶端在對(duì)用戶提交的表單的唯一性驗(yàn)證通過后根據(jù)表單的第一標(biāo)識(shí)信息確定的,表單是指客戶端中由用戶輸入待發(fā)布信息的區(qū)域。
其中,第一標(biāo)識(shí)信息是由客戶端在生成表單時(shí)填寫到表單中的n位隨機(jī)數(shù)據(jù),其中,n為正整數(shù)。
驗(yàn)證單元602,用于根據(jù)接收單元601接收的第二標(biāo)識(shí)信息,對(duì)信息發(fā)布請(qǐng)求的唯一性進(jìn)行驗(yàn)證。
發(fā)布單元603,用于在驗(yàn)證單元602對(duì)信息發(fā)布請(qǐng)求的唯一性驗(yàn)證通過后,發(fā)布待發(fā)布信息。
本申請(qǐng)實(shí)施例裝置的各功能模塊的功能,可以通過上述方法實(shí)施例的各步驟來實(shí)現(xiàn),因此,本申請(qǐng)?zhí)峁┑难b置的具體工作過程,在此不復(fù)贅述。
本申請(qǐng)實(shí)施例提供的服務(wù)端,接收單元601接收客戶端發(fā)送的信息發(fā)布請(qǐng)求;驗(yàn)證單元602根據(jù)第二標(biāo)識(shí)信息,對(duì)信息發(fā)布請(qǐng)求的唯一性進(jìn)行驗(yàn)證;發(fā)布單元603在對(duì)信息發(fā)布請(qǐng)求的唯一性驗(yàn)證通過后,發(fā)布待發(fā)布信息。也即,本申請(qǐng)利用了服務(wù)端的后臺(tái)冪等控制來解決表單重復(fù)提交導(dǎo)致表單中的信息發(fā)布多次的問題。這樣的實(shí)現(xiàn)還有一個(gè)優(yōu)點(diǎn),因?yàn)榉?wù)端對(duì)第二標(biāo)識(shí)信息的冪等控制是數(shù)據(jù)庫層面的,所以只要待發(fā)布信息被成功存儲(chǔ)到數(shù)據(jù)庫,那么后面第二標(biāo)識(shí)信息相同的表單中的待發(fā)布信息都是無法重復(fù)入庫的,不存在同時(shí)并發(fā)入庫的問題,真正有效地解決了信息發(fā)布不準(zhǔn)確的問題。
本領(lǐng)域技術(shù)人員應(yīng)該可以意識(shí)到,在上述一個(gè)或多個(gè)示例中,本發(fā)明所描述的功能可以用硬件、軟件、固件或它們的任意組合來實(shí)現(xiàn)。當(dāng)使用軟件實(shí)現(xiàn)時(shí),可以將這些功能存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中或者作為計(jì)算機(jī)可讀介質(zhì)上的一個(gè)或多個(gè)指令或代碼進(jìn)行傳輸。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的技術(shù)方案的基礎(chǔ)之上,所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包括在本發(fā)明的保護(hù)范圍之內(nèi)。