本發明專利技術涉及一種應用于高并發場景下生成唯一流水號的方法,包括以下步驟:解析收到的交易文件,形成字段;根據字段組裝形成金融交易類請求報文,所述請求報文內包含流水號;判斷交易返回的39域,若為94、98或01,則更新所述請求報文內的流水號,并重新發送所述請求報文;若為00、11或A5,則交易成功;判斷重新發送所述請求報文的結果,若交易成功,則不再繼續重新發送所述請求報文;若交易失敗,則繼續重新發送所述請求報文,并更新所述請求報文內的流水號,直至重新發送所述請求報文的次數達到預設上限;若重新發送所述請求報文的次數達到預設上限時,交易還未成功,則為交易失敗。本發明專利技術可以避免流水號重復,從而保證交易的正常以及系統的運行。及系統的運行。及系統的運行。
【技術實現步驟摘要】
一種應用于高并發場景下生成唯一流水號的方法
[0001]本專利技術涉及計算機
,特別涉及一種應用于高并發場景下生成唯一流水號的方法。
技術介紹
[0002]在一些交易場景,比如批轉聯交易過程中,需要系統生成唯一的流水號,去保障交易的正常進行,目前常用的是采用組合的方式,比如時間戳加上隨機數,截取對應的流水號所需要的長度。在高并發情況下,時間戳以及隨機數的組合會生成重復的情況,導致影響交易的正常進行。
[0003]因此有必要提供一種應用于高并發場景下生成唯一流水號的方法,以避免流水號重復,保證交易的正常以及系統的運行。
技術實現思路
[0004]本專利技術的目的在于提供一種應用于高并發場景下生成唯一流水號的方法,以避免流水號重復,保證交易的正常以及系統的運行。
[0005]為了解決現有技術中存在的問題,本專利技術提供了一種應用于高并發場景下生成唯一流水號的方法,包括以下步驟:
[0006]解析收到的交易文件,形成字段;
[0007]根據字段組裝形成金融交易類請求報文,所述請求報文內包含流水號;
[0008]判斷交易返回的39域,若為94、98或01,則更新所述請求報文內的流水號,并重新發送所述請求報文;若為00、11或A5,則交易成功;
[0009]判斷重新發送所述請求報文的結果,若交易成功,則不再繼續重新發送所述請求報文;若交易失敗,則繼續重新發送所述請求報文,并更新所述請求報文內的流水號,直至重新發送所述請求報文的次數達到預設上限;
[0010]若重新發送所述請求報文的次數達到預設上限時,交易還未成功,則為交易失敗。
[0011]可選的,在所述應用于高并發場景下生成唯一流水號的方法中,
[0012]若39域為94,重新發送所述請求報文的次數的預設上限為3次;
[0013]若39域為98或01,重新發送所述請求報文的次數的預設上限為1次。
[0014]可選的,在所述應用于高并發場景下生成唯一流水號的方法中,交易返回的3域根據實際情況更新。
[0015]可選的,在所述應用于高并發場景下生成唯一流水號的方法中,組裝形成金融交易類請求報文之前,還包括以下步驟:
[0016]校驗各字段是否符合要求。
[0017]可選的,在所述應用于高并發場景下生成唯一流水號的方法中,校驗各字段是否符合要求的方式包括:
[0018]校驗各個字段的大小以及長度。
[0019]可選的,在所述應用于高并發場景下生成唯一流水號的方法中,得到符合要求的字段之后,組裝形成金融交易類請求報文之前,還包括以下步驟:
[0020]判斷本次交易是否為重復交易,如果是重復交易,則反饋交易失敗,如果不是重復交易,則組裝形成金融交易類請求報文。
[0021]可選的,在所述應用于高并發場景下生成唯一流水號的方法中,所述請求報文內還包含交易類型、商戶類型、終端類型以及客戶姓名。
[0022]可選的,在所述應用于高并發場景下生成唯一流水號的方法中,若交易成功,則生成交易成功反饋文件,若交易失敗,則生成交易失敗反饋文件。
[0023]可選的,在所述應用于高并發場景下生成唯一流水號的方法中,存儲反饋文件。
[0024]在本專利技術所提供的應用于高并發場景下生成唯一流水號的方法中,通過重復判斷交易返回的39域的內容,從而判斷交易情況,在每次重新發送請求報文時,均更新請求報文內的流水號,從而可以避免流水號重復,并保證了交易的正常以及系統的運行。
附圖說明
[0025]圖1為本專利技術實施例提供的生成唯一流水號的方法的流程圖。
具體實施方式
[0026]下面將結合示意圖對本專利技術的具體實施方式進行更詳細的描述。根據下列描述,本專利技術的優點和特征將更清楚。需說明的是,附圖均采用非常簡化的形式且均使用非精準的比例,僅用以方便、明晰地輔助說明本專利技術實施例的目的。
[0027]在下文中,如果本文所述的方法包括一系列步驟,本文所呈現的這些步驟的順序并非必須是可執行這些步驟的唯一順序,且一些所述的步驟可被省略和/或一些本文未描述的其他步驟可被添加到該方法。
[0028]在一些交易場景,比如批轉聯交易過程中,需要系統生成唯一的流水號,去保障交易的正常進行,目前常用的是采用組合的方式,比如時間戳加上隨機數,截取對應的流水號所需要的長度。在高并發情況下,時間戳以及隨機數的組合會生成重復的情況,導致影響交易的正常進行。
[0029]為了解決現有技術中存在的問題,本專利技術提供了一種應用于高并發場景下生成唯一流水號的方法,如圖1所示,所述方法包括以下步驟:
[0030]解析收到的交易文件,形成字段;
[0031]根據字段組裝形成金融交易類請求報文,所述請求報文內包含流水號;
[0032]判斷交易返回的39域,若為94、98或01,則更新所述請求報文內的流水號,并重新發送所述請求報文;若為00、11或A5,則交易成功;
[0033]判斷重新發送所述請求報文的結果,若交易成功,則不再繼續重新發送所述請求報文;若交易失敗,則繼續重新發送所述請求報文,并更新所述請求報文內的流水號,直至重新發送所述請求報文的次數達到預設上限;
[0034]若重新發送所述請求報文的次數達到預設上限時,交易還未成功,則為交易失敗。
[0035]進一步的,若39域為94,重新發送所述請求報文的次數的預設上限為3次;若39域為98或01,重新發送所述請求報文的次數的預設上限為1次。
[0036]在一個實施例中,當批轉聯交易進來時,該類交易假設流水號生成規則為:長度為6位,則前3位獲取當前時間戳的后3位,后3位獲取一個3位的隨機數。本專利技術中若更新所述請求報文內的流水號,則同時更新時間戳和隨機數,得到新的流水號。
[0037]通常的,交易返回的3域根據實際情況更新。例如最初3域為810000,為存款,組裝完畢,進行金融交易的發送;如果在39域返回不是交易成功時,則會超時,此時進行發送確認交易,然后根據39域的結果重新生成新的流水號,同時交易類型為確認交易(即3域更新為210000),組裝完畢發送交易,如果交易仍超時,則繼續進行同樣的處理。
[0038]優選的,組裝形成金融交易類請求報文之前,還包括以下步驟:校驗各字段是否符合要求。校驗各字段是否符合要求的方式包括:校驗各個字段的大小以及長度。
[0039]進一步的,得到符合要求的字段之后,組裝形成金融交易類請求報文之前,還包括以下步驟:判斷本次交易是否為重復交易,如果是重復交易,則反饋交易失敗,如果不是重復交易,則組裝形成金融交易類請求報文。
[0040]通常的,所述請求報文內還包含交易類型、商戶類型、終端類型以及客戶姓名。
[0041]可選的,在所述應用于高并發場景下生成唯一流水號的方法中,若交易成功,則生成交易成功反饋文件,若交易失敗,則生成交易失敗反饋文件,最后存儲反饋文件。
[0042]綜上,在本專利技術本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種應用于高并發場景下生成唯一流水號的方法,其特征在于,包括以下步驟:解析收到的交易文件,形成字段;根據字段組裝形成金融交易類請求報文,所述請求報文內包含流水號;判斷交易返回的39域,若為94、98或01,則更新所述請求報文內的流水號,并重新發送所述請求報文;若為00、11或A5,則交易成功;判斷重新發送所述請求報文的結果,若交易成功,則不再繼續重新發送所述請求報文;若交易失敗,則繼續重新發送所述請求報文,并更新所述請求報文內的流水號,直至重新發送所述請求報文的次數達到預設上限;若重新發送所述請求報文的次數達到預設上限時,交易還未成功,則為交易失敗。2.如權利要求1所述的應用于高并發場景下生成唯一流水號的方法,其特征在于,若39域為94,重新發送所述請求報文的次數的預設上限為3次;若39域為98或01,重新發送所述請求報文的次數的預設上限為1次。3.如權利要求1所述的應用于高并發場景下生成唯一流水號的方法,其特征在于,交易返回的3域根據實際情況更新。4.如權利要求1所述的應用...
【專利技術屬性】
技術研發人員:王衡虎,
申請(專利權)人:上海通聯金融服務有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。