TW201944314A - 配置支付流程、執行支付流程的方法、裝置及設備 - Google Patents
配置支付流程、執行支付流程的方法、裝置及設備Info
- Publication number
- TW201944314A TW201944314A TW108104573A TW108104573A TW201944314A TW 201944314 A TW201944314 A TW 201944314A TW 108104573 A TW108104573 A TW 108104573A TW 108104573 A TW108104573 A TW 108104573A TW 201944314 A TW201944314 A TW 201944314A
- Authority
- TW
- Taiwan
- Prior art keywords
- state
- transition
- payment process
- payment
- states
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/102—Bill distribution or payments
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/356—Aspects of software for card payments
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本說明書實施例公開了一種配置支付流程、執行支付流程的方法、裝置及設備。在本說明實施例中,根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態,根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件,如此,就可以將所述支付流程抽象為有限狀態機,可以藉由所述有限狀態機執行所述支付流程。
Description
本說明書涉及資訊技術領域,尤其涉及一種配置支付流程、執行支付流程的方法、裝置及設備。
隨著電子支付的普及,越來越多的用戶不再使用現金進行支付,而是藉由線上的電子支付系統進行支付。實際應用中,用戶向電子支付系統發送支付請求,可觸發電子支付系統執行預設的支付流程。
圖1示出了一種典型的支付流程。在圖1中,支付流程包括S100~S114這8個步驟,其中,步驟S106、S108和S112其實是操作相同的步驟。電子支付系統當確定出現支付異常(如付款方的帳戶餘額不足、扣款失敗或付款失敗)時,會終止支付流程,向付款方返回失敗結果(如執行步驟S106、S108或S112)。
眾所周知,支付流程是技術人員預先藉由代碼編寫的方式進行配置的,電子支付系統執行支付流程,實質上是從頭到尾順序執行所述支付流程對應的代碼邏輯。因此,哪怕圖1所示的步驟S106、S108和S112的操作相同,技術人員也需要分別針對上述三個步驟編寫代碼,即編寫三段相同的代碼。
基於現有技術,需要一種更高效的配置支付流程的方法。
圖1示出了一種典型的支付流程。在圖1中,支付流程包括S100~S114這8個步驟,其中,步驟S106、S108和S112其實是操作相同的步驟。電子支付系統當確定出現支付異常(如付款方的帳戶餘額不足、扣款失敗或付款失敗)時,會終止支付流程,向付款方返回失敗結果(如執行步驟S106、S108或S112)。
眾所周知,支付流程是技術人員預先藉由代碼編寫的方式進行配置的,電子支付系統執行支付流程,實質上是從頭到尾順序執行所述支付流程對應的代碼邏輯。因此,哪怕圖1所示的步驟S106、S108和S112的操作相同,技術人員也需要分別針對上述三個步驟編寫代碼,即編寫三段相同的代碼。
基於現有技術,需要一種更高效的配置支付流程的方法。
本說明書實施例提供一種配置支付流程、執行支付流程的方法、裝置及設備,以解決現有的配置支付流程的方法存在的效率較低的問題。
為解決上述技術問題,本說明書實施例是這樣實現的:
本說明書實施例提供的一種配置支付流程的方法,包括:
根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態;
根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件;
根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
本說明書實施例提供的一種執行支付流程的方法,包括:
藉由有限狀態機,確定支付業務當前所處的第一狀態;所述有限狀態機是預先藉由上述配置支付流程的方法配置的;
當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並將所述支付業務從所述第一狀態轉移到所述第二狀態。
本說明書實施例提供的一種配置支付流程的裝置,包括:
第一確定模組,根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態;
第二確定模組,根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件;
配置模組,根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
本說明書實施例提供的一種執行支付流程的裝置,包括:
確定模組,藉由有限狀態機,確定支付業務當前所處的第一狀態;所述有限狀態機是預先藉由申請專利範圍第1~4項中任一項所述的方法配置的;
處理模組,當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並將所述支付業務從所述第一狀態轉移到所述第二狀態。
本說明書實施例提供的一種配置支付流程的設備,包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態;
根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件;
根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
本說明書實施例提供的一種執行支付流程的設備,包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
藉由有限狀態機,確定支付業務當前所處的第一狀態;所述有限狀態機是預先藉由上述配置支付流程的方法配置的;
當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並從所述第一狀態轉移到所述第二狀態。
由以上本說明書實施例提供的技術方案可見,在本說明書實施例中,根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態,根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件,如此,就可以將所述支付流程抽象為有限狀態機,可以藉由所述有限狀態機執行所述支付流程。藉由本說明書實施例,支付流程中包含的每個操作都被抽象為所述有限狀態機中的一個狀態,哪怕所述支付流程包括操作相同的多個步驟,這多個步驟實際上都對應於同一個狀態,技術人員只需針對該狀態編寫一段代碼即可,這提升了配置支付流程的效率。
為解決上述技術問題,本說明書實施例是這樣實現的:
本說明書實施例提供的一種配置支付流程的方法,包括:
根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態;
根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件;
根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
本說明書實施例提供的一種執行支付流程的方法,包括:
藉由有限狀態機,確定支付業務當前所處的第一狀態;所述有限狀態機是預先藉由上述配置支付流程的方法配置的;
當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並將所述支付業務從所述第一狀態轉移到所述第二狀態。
本說明書實施例提供的一種配置支付流程的裝置,包括:
第一確定模組,根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態;
第二確定模組,根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件;
配置模組,根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
本說明書實施例提供的一種執行支付流程的裝置,包括:
確定模組,藉由有限狀態機,確定支付業務當前所處的第一狀態;所述有限狀態機是預先藉由申請專利範圍第1~4項中任一項所述的方法配置的;
處理模組,當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並將所述支付業務從所述第一狀態轉移到所述第二狀態。
本說明書實施例提供的一種配置支付流程的設備,包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態;
根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件;
根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
本說明書實施例提供的一種執行支付流程的設備,包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
藉由有限狀態機,確定支付業務當前所處的第一狀態;所述有限狀態機是預先藉由上述配置支付流程的方法配置的;
當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並從所述第一狀態轉移到所述第二狀態。
由以上本說明書實施例提供的技術方案可見,在本說明書實施例中,根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態,根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件,如此,就可以將所述支付流程抽象為有限狀態機,可以藉由所述有限狀態機執行所述支付流程。藉由本說明書實施例,支付流程中包含的每個操作都被抽象為所述有限狀態機中的一個狀態,哪怕所述支付流程包括操作相同的多個步驟,這多個步驟實際上都對應於同一個狀態,技術人員只需針對該狀態編寫一段代碼即可,這提升了配置支付流程的效率。
在現有技術中,技術人員在配置支付流程時,對於支付流程中包括的操作相同的多個步驟,需要編寫多段相同的代碼,分別對應於這多個操作相同的步驟,這會導致現有的配置支付流程的效率較低。
而在本說明書實施例中,將所述支付流程抽象為有限狀態機,將所述支付流程中包含的每個操作都抽象為所述有限狀態機中的一個狀態,從而使得所述支付流程中包括的操作相同的多個步驟都對應於同一狀態,技術人員僅需要針對該狀態編寫一段代碼即可,這提升了配置支付流程的效率。
為了使本技術領域的人員更好地理解本說明書中的技術方案,下面將結合本說明書一個或多個實施例中的圖式,對本說明書實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本說明書一部分實施例,而不是全部的實施例。藉由本說明書實施例,本領域具有通常知識者在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本說明書保護的範圍。
以下結合圖式,詳細說明本說明書各實施例提供的技術方案。
圖2是本說明書實施例提供的一種配置支付流程的方法流程圖,包括以下步驟:
S200:根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態。
通常,付款方向電子支付系統發送支付請求,方可觸發電子支付系統執行支付流程。需要說明的是,視不同的業務場景,所述支付流程可以有多種。例如,在醫保支付的場景下,所述支付流程可以是使用銀行卡和/或醫保卡支付醫藥費用的流程。
支付流程中包括多個步驟,一個步驟對應一個操作,電子支付系統執行一個步驟即是執行該步驟對應的操作。例如,圖1所示的步驟S102對應的操作為“判斷付款方的帳戶餘額是否充足”。顯然,支付流程中可能包括操作相同的多個步驟(如圖1所示的步驟S106、S108、S112),而支付流程中包含的各操作各不相同。
在本說明書實施例中,可以將預設的支付流程中包含的每個操作抽象為一個狀態。針對每個操作,該操作對應的狀態是(電子支付系統)執行該操作時支付業務所處的狀態。
S202:根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件。
支付流程中包含的各操作之間通常存在關聯關係。需要說明的是,兩個操作之間的關聯關係是指執行其中一個操作後,有可能緊接著執行另一個操作。對於兩個具有關聯關係的操作而言,在先執行的操作可稱為“第一操作”,在後執行的操作可稱為“第二操作”。
例如,圖1所示的步驟S102對應的操作與步驟S104對應的操作之間就存在關聯關係,步驟S102對應的操作為第一操作,步驟S104對應的操作為第二操作。還需要說明的是,有時,某個操作與其自身也具有關聯關係,如圖1中的步驟S100。
顯然,倘若將所述支付流程中包含的每個操作都抽象為一個狀態,那麼就可以將執行各操作的過程抽象為各狀態之間轉移的過程,即每兩個具有關聯關係的操作之間的跳轉可以視為這兩個操作分別對應的狀態之間的轉移。因此,根據各操作之間的關聯關係,可以確定出各狀態之間的轉移關係。具有關聯關係的兩個操作分別對應的狀態之間通常具有轉移關係。
此外,根據所述支付流程中每個操作對應的觸發條件,可以確定各狀態之間的轉移條件。具體地,針對每個操作,該操作對應的觸發條件通常是:與該操作關聯的第一操作的執行結果為特定結果,該操作為第二操作。例如,在圖1中,對於具有關聯關係的步驟S102對應的操作和步驟S104對應的操作而言,步驟S102對應的操作的執行結果為“是”,即是步驟S104對應的操作的觸發條件。
S204:根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
藉由步驟S200~S202,得到用於配置有限狀態機的各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,即可以配置出有限狀態機,所述有限狀態機用於執行所述支付流程。
進一步地,可以根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,產生有限狀態機對應的狀態轉移表,以便電子支付系統藉由查詢所述狀態轉移表,執行所述支付流程。表1是本說明書實施例提供的一種狀態轉移表。
表1
此處需要說明的是,可以將所述狀態轉移表寫入所述電子支付系統的配置文件中,以使所述電子支付系統在啟動時從所述配置文件中讀取所述狀態轉移表,也可以將所述狀態轉移表寫入所述電子支付系統的快取中,以使所述電子支付系統在運行時從所述快取中讀取所述狀態轉移表。當然,還可以既將所述狀態轉移表寫入所述配置文件,又將所述狀態轉移表寫入所述快取中。
藉由圖2所示的配置支付流程的方法,根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態,根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件,如此,就可以將所述支付流程抽象為有限狀態機,可以藉由所述有限狀態機執行所述支付流程。藉由本說明書實施例,支付流程中包含的每個操作都被抽象為所述有限狀態機中的一個狀態,哪怕所述支付流程包括操作相同的多個步驟,這多個步驟實際上都對應於同一個狀態,技術人員只需針對該狀態編寫一段代碼即可,這提升了配置支付流程的效率。
此外,對於較為複雜的支付流程(如包含的步驟較多,每個步驟可跳轉的其他步驟的數量也較多的支付流程)而言,將支付流程抽象為有限狀態機,也有助於簡化技術人員編程工作,技術人員將支付流程中包含的每個操作抽象為一個狀態,僅需要對各狀態間的轉移條件進行配置(即配置狀態轉移表)即可。
圖3是本說明書實施例提供的一種執行支付流程的方法,包括以下步驟:
S300:藉由有限狀態機,確定支付業務當前所處的第一狀態。
S302:當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並藉由所述有限狀態機,將所述支付業務從所述第一狀態轉移到所述第二狀態。
本方法的執行主體可以是電子支付系統,其具體可以是用於處理電子支付業務的伺服器或伺服器集群。
需要說明的是,在圖3所示的方法中,所述有限狀態機是預先藉由圖2所示的配置支付流程的方法配置的。具體地,可以預先將藉由圖2所示的方法產生的支付流程對應的狀態轉移表寫入所述電子支付系統的配置文件,所述電子支付系統在啟動時,從所述配置文件中讀取所述狀態遷移表。
在本說明書實施例中,所述第一狀態表示藉由所述有限狀態機確定的支付業務當前所處的狀態,而所述第二狀態表示所述第一狀態隨後轉移到的狀態。其中,所述第一狀態和所述第二狀態可以是同一狀態。
電子支付系統當從所述狀態遷移表中查詢到滿足觸發所述第一狀態向所述第二狀態轉移的轉移條件時,可以一方面執行所述第二狀態對應的操作,一方面藉由所述有限狀態機,從所述第一狀態轉移到所述第二狀態。
具體地,可以查詢狀態轉移表;當確定滿足從狀態轉移表中查詢到轉移條件時,確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件。
進一步地,在查詢狀態轉移表之前,電子支付系統在啟動時從自身的配置文件中讀取所述狀態轉移表;或所述電子支付系統在運行時從自身的快取中讀取所述狀態轉移表。
此外,有時,所述電子支付系統可以是分散式系統,即由多個電子支付子系統進行協作,以執行所述支付流程。此時,各電子支付子系統之間需要相互調用(可以是同步調用,也可以是異步調用)以執行所述支付流程。並且,為了各電子支付子系統的資料庫中的資料保持一致,針對每個電子支付子系統而言,該電子支付子系統在工作時,分為業務受理階段和業務處理階段,在業務受理階段,該電子支付子系統會對接收到的其他電子支付子系統的調用請求保證冪等(即將重複接收到的多個相同的調用請求視為一個調用請求)。若電子支付子系統在業務受理階段受理業務失敗,則該電子支付子系統在業務處理階段就無法獲取相應的業務資料。
電子支付子系統不僅要在業務受理階段受理調用請求成功,也要在業務處理階段處理受理的調用請求成功,方可藉由有限狀態機進行狀態轉移。若電子支付子系統在業務受理階段受理調用請求失敗或在業務處理階段處理調用請求失敗,則需要觸發對業務受理或業務處理的補償和/或重試,使得該電子支付子系統在業務受理階段成功受理調用請求,並在業務處理階段成功處理調用請求,從而可以藉由所述有限狀態機進行狀態轉移。
基於圖2所示的配置支付流程的方法,本說明書實施例還對應提供了一種配置支付流程的裝置,如圖4所示,包括:
第一確定模組401,根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態;
第二確定模組402,根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件;
配置模組403,根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
所述支付流程,具體包括:使用銀行卡和/或醫保卡支付醫藥費用的流程。
所述配置模組403,根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,產生有限狀態機對應的狀態轉移表,以便電子支付系統藉由查詢所述狀態轉移表,執行所述支付流程。
所述裝置還包括:寫入模組404,將所述狀態轉移表寫入所述電子支付系統的配置文件中,以使所述電子支付系統在啟動時從所述配置文件中讀取所述狀態轉移表;和/或將所述狀態轉移表寫入所述電子支付系統的快取中,以使所述電子支付系統在運行時從所述快取中讀取所述狀態轉移表。
基於圖3所示的執行支付流程的方法,本說明書實施例還對應提供了一種配置支付流程的裝置,如圖5所示,包括:
確定模組501,藉由有限狀態機,確定支付業務當前所處的第一狀態;所述有限狀態機是預先藉由圖2所示的方法配置的;
處理模組502,當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並藉由所述有限狀態機,將所述支付業務從所述第一狀態轉移到所述第二狀態。
所述處理模組502,查詢狀態轉移表;當確定滿足從狀態轉移表中查詢到轉移條件時,確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件。
所述處理模組502,在查詢狀態轉移表之前,在所述裝置啟動時從所述裝置的配置文件中讀取所述狀態轉移表;或在所述裝置運行時從所述裝置的快取中讀取所述狀態轉移表。
基於圖2所示的配置支付流程的方法,本說明書實施例還對應提供了一種配置支付流程的設備,如圖6所示,該設備包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態;
根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件;
根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
基於圖3所示的執行支付流程的方法,本說明書實施例還對應提供了一種執行支付流程的設備,如圖7所示,該設備包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
藉由有限狀態機,確定支付業務當前所處的第一狀態;所述有限狀態機是預先藉由圖2所示的方法配置的;
當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並從所述第一狀態轉移到所述第二狀態。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於圖6和圖7所示的設備而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都藉由將改進的方法流程編程到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式邏輯裝置(Programmable Logic Device, PLD)(例如現場可程式閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由用戶對裝置編程來確定。由設計人員自行編程來把一個數位系統“集成”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種編程也多半改用“邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始碼也得用特定的編程語言來撰寫,此稱之為硬體描述語言(Hardware Description Language,HDL),而HDL也並非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯編程並編程到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或韌體)的電腦可讀媒體、邏輯閘、開關、應用特定積體電路(Application Specific Integrated Circuit,ASIC)、可程式邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,記憶體控制器還可以被實現為記憶體的控制邏輯的一部分。本領域技術人員也知道,除了以純電腦可讀程式碼方式實現控制器以外,完全可以藉由將方法步驟進行邏輯編程來使得控制器以邏輯閘、開關、應用特定積體電路、可程式邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體部件,而對其內包括的用於實現各種功能的裝置也可以視為硬體部件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模組又可以是硬體部件內的結構。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦。具體的,電腦例如可以為個人電腦、筆記型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放器、導航設備、電子郵件設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任何設備的組合。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本說明書時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式資料處理設備的處理器以產生一個機器,使得藉由電腦或其他可程式資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式資料處理設備上,使得在電腦或其他可程式設備上執行一系列操作以產生電腦實現的處理,從而在電腦或其他可程式設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟(CD-ROM)、數位化多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁碟儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本說明書可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的例程、程式、物件、組件、資料結構等等。也可以在分散式計算環境中實踐本說明書,在這些分散式計算環境中,由藉由通訊網路而被連接的遠端處理設備來執行任務。在分散式計算環境中,程式模組可以位於包括儲存設備在內的本地和遠端電腦儲存媒體中。
以上所述僅為本說明書的實施例而已,並不用於限制本說明書。對於本領域技術人員來說,本說明書可以有各種更改和變化。凡在本說明書的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本說明書的申請專利範圍之內。
而在本說明書實施例中,將所述支付流程抽象為有限狀態機,將所述支付流程中包含的每個操作都抽象為所述有限狀態機中的一個狀態,從而使得所述支付流程中包括的操作相同的多個步驟都對應於同一狀態,技術人員僅需要針對該狀態編寫一段代碼即可,這提升了配置支付流程的效率。
為了使本技術領域的人員更好地理解本說明書中的技術方案,下面將結合本說明書一個或多個實施例中的圖式,對本說明書實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本說明書一部分實施例,而不是全部的實施例。藉由本說明書實施例,本領域具有通常知識者在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本說明書保護的範圍。
以下結合圖式,詳細說明本說明書各實施例提供的技術方案。
圖2是本說明書實施例提供的一種配置支付流程的方法流程圖,包括以下步驟:
S200:根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態。
通常,付款方向電子支付系統發送支付請求,方可觸發電子支付系統執行支付流程。需要說明的是,視不同的業務場景,所述支付流程可以有多種。例如,在醫保支付的場景下,所述支付流程可以是使用銀行卡和/或醫保卡支付醫藥費用的流程。
支付流程中包括多個步驟,一個步驟對應一個操作,電子支付系統執行一個步驟即是執行該步驟對應的操作。例如,圖1所示的步驟S102對應的操作為“判斷付款方的帳戶餘額是否充足”。顯然,支付流程中可能包括操作相同的多個步驟(如圖1所示的步驟S106、S108、S112),而支付流程中包含的各操作各不相同。
在本說明書實施例中,可以將預設的支付流程中包含的每個操作抽象為一個狀態。針對每個操作,該操作對應的狀態是(電子支付系統)執行該操作時支付業務所處的狀態。
S202:根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件。
支付流程中包含的各操作之間通常存在關聯關係。需要說明的是,兩個操作之間的關聯關係是指執行其中一個操作後,有可能緊接著執行另一個操作。對於兩個具有關聯關係的操作而言,在先執行的操作可稱為“第一操作”,在後執行的操作可稱為“第二操作”。
例如,圖1所示的步驟S102對應的操作與步驟S104對應的操作之間就存在關聯關係,步驟S102對應的操作為第一操作,步驟S104對應的操作為第二操作。還需要說明的是,有時,某個操作與其自身也具有關聯關係,如圖1中的步驟S100。
顯然,倘若將所述支付流程中包含的每個操作都抽象為一個狀態,那麼就可以將執行各操作的過程抽象為各狀態之間轉移的過程,即每兩個具有關聯關係的操作之間的跳轉可以視為這兩個操作分別對應的狀態之間的轉移。因此,根據各操作之間的關聯關係,可以確定出各狀態之間的轉移關係。具有關聯關係的兩個操作分別對應的狀態之間通常具有轉移關係。
此外,根據所述支付流程中每個操作對應的觸發條件,可以確定各狀態之間的轉移條件。具體地,針對每個操作,該操作對應的觸發條件通常是:與該操作關聯的第一操作的執行結果為特定結果,該操作為第二操作。例如,在圖1中,對於具有關聯關係的步驟S102對應的操作和步驟S104對應的操作而言,步驟S102對應的操作的執行結果為“是”,即是步驟S104對應的操作的觸發條件。
S204:根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
藉由步驟S200~S202,得到用於配置有限狀態機的各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,即可以配置出有限狀態機,所述有限狀態機用於執行所述支付流程。
進一步地,可以根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,產生有限狀態機對應的狀態轉移表,以便電子支付系統藉由查詢所述狀態轉移表,執行所述支付流程。表1是本說明書實施例提供的一種狀態轉移表。
此處需要說明的是,可以將所述狀態轉移表寫入所述電子支付系統的配置文件中,以使所述電子支付系統在啟動時從所述配置文件中讀取所述狀態轉移表,也可以將所述狀態轉移表寫入所述電子支付系統的快取中,以使所述電子支付系統在運行時從所述快取中讀取所述狀態轉移表。當然,還可以既將所述狀態轉移表寫入所述配置文件,又將所述狀態轉移表寫入所述快取中。
藉由圖2所示的配置支付流程的方法,根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態,根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件,如此,就可以將所述支付流程抽象為有限狀態機,可以藉由所述有限狀態機執行所述支付流程。藉由本說明書實施例,支付流程中包含的每個操作都被抽象為所述有限狀態機中的一個狀態,哪怕所述支付流程包括操作相同的多個步驟,這多個步驟實際上都對應於同一個狀態,技術人員只需針對該狀態編寫一段代碼即可,這提升了配置支付流程的效率。
此外,對於較為複雜的支付流程(如包含的步驟較多,每個步驟可跳轉的其他步驟的數量也較多的支付流程)而言,將支付流程抽象為有限狀態機,也有助於簡化技術人員編程工作,技術人員將支付流程中包含的每個操作抽象為一個狀態,僅需要對各狀態間的轉移條件進行配置(即配置狀態轉移表)即可。
圖3是本說明書實施例提供的一種執行支付流程的方法,包括以下步驟:
S300:藉由有限狀態機,確定支付業務當前所處的第一狀態。
S302:當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並藉由所述有限狀態機,將所述支付業務從所述第一狀態轉移到所述第二狀態。
本方法的執行主體可以是電子支付系統,其具體可以是用於處理電子支付業務的伺服器或伺服器集群。
需要說明的是,在圖3所示的方法中,所述有限狀態機是預先藉由圖2所示的配置支付流程的方法配置的。具體地,可以預先將藉由圖2所示的方法產生的支付流程對應的狀態轉移表寫入所述電子支付系統的配置文件,所述電子支付系統在啟動時,從所述配置文件中讀取所述狀態遷移表。
在本說明書實施例中,所述第一狀態表示藉由所述有限狀態機確定的支付業務當前所處的狀態,而所述第二狀態表示所述第一狀態隨後轉移到的狀態。其中,所述第一狀態和所述第二狀態可以是同一狀態。
電子支付系統當從所述狀態遷移表中查詢到滿足觸發所述第一狀態向所述第二狀態轉移的轉移條件時,可以一方面執行所述第二狀態對應的操作,一方面藉由所述有限狀態機,從所述第一狀態轉移到所述第二狀態。
具體地,可以查詢狀態轉移表;當確定滿足從狀態轉移表中查詢到轉移條件時,確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件。
進一步地,在查詢狀態轉移表之前,電子支付系統在啟動時從自身的配置文件中讀取所述狀態轉移表;或所述電子支付系統在運行時從自身的快取中讀取所述狀態轉移表。
此外,有時,所述電子支付系統可以是分散式系統,即由多個電子支付子系統進行協作,以執行所述支付流程。此時,各電子支付子系統之間需要相互調用(可以是同步調用,也可以是異步調用)以執行所述支付流程。並且,為了各電子支付子系統的資料庫中的資料保持一致,針對每個電子支付子系統而言,該電子支付子系統在工作時,分為業務受理階段和業務處理階段,在業務受理階段,該電子支付子系統會對接收到的其他電子支付子系統的調用請求保證冪等(即將重複接收到的多個相同的調用請求視為一個調用請求)。若電子支付子系統在業務受理階段受理業務失敗,則該電子支付子系統在業務處理階段就無法獲取相應的業務資料。
電子支付子系統不僅要在業務受理階段受理調用請求成功,也要在業務處理階段處理受理的調用請求成功,方可藉由有限狀態機進行狀態轉移。若電子支付子系統在業務受理階段受理調用請求失敗或在業務處理階段處理調用請求失敗,則需要觸發對業務受理或業務處理的補償和/或重試,使得該電子支付子系統在業務受理階段成功受理調用請求,並在業務處理階段成功處理調用請求,從而可以藉由所述有限狀態機進行狀態轉移。
基於圖2所示的配置支付流程的方法,本說明書實施例還對應提供了一種配置支付流程的裝置,如圖4所示,包括:
第一確定模組401,根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態;
第二確定模組402,根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件;
配置模組403,根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
所述支付流程,具體包括:使用銀行卡和/或醫保卡支付醫藥費用的流程。
所述配置模組403,根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,產生有限狀態機對應的狀態轉移表,以便電子支付系統藉由查詢所述狀態轉移表,執行所述支付流程。
所述裝置還包括:寫入模組404,將所述狀態轉移表寫入所述電子支付系統的配置文件中,以使所述電子支付系統在啟動時從所述配置文件中讀取所述狀態轉移表;和/或將所述狀態轉移表寫入所述電子支付系統的快取中,以使所述電子支付系統在運行時從所述快取中讀取所述狀態轉移表。
基於圖3所示的執行支付流程的方法,本說明書實施例還對應提供了一種配置支付流程的裝置,如圖5所示,包括:
確定模組501,藉由有限狀態機,確定支付業務當前所處的第一狀態;所述有限狀態機是預先藉由圖2所示的方法配置的;
處理模組502,當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並藉由所述有限狀態機,將所述支付業務從所述第一狀態轉移到所述第二狀態。
所述處理模組502,查詢狀態轉移表;當確定滿足從狀態轉移表中查詢到轉移條件時,確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件。
所述處理模組502,在查詢狀態轉移表之前,在所述裝置啟動時從所述裝置的配置文件中讀取所述狀態轉移表;或在所述裝置運行時從所述裝置的快取中讀取所述狀態轉移表。
基於圖2所示的配置支付流程的方法,本說明書實施例還對應提供了一種配置支付流程的設備,如圖6所示,該設備包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態;
根據所述支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據所述支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件;
根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置所述支付流程對應的有限狀態機,以便藉由所述有限狀態機,執行所述支付流程。
基於圖3所示的執行支付流程的方法,本說明書實施例還對應提供了一種執行支付流程的設備,如圖7所示,該設備包括一個或多個處理器及記憶體,所述記憶體儲存有程式,並且被配置成由所述一個或多個處理器執行以下步驟:
藉由有限狀態機,確定支付業務當前所處的第一狀態;所述有限狀態機是預先藉由圖2所示的方法配置的;
當確定滿足觸發所述第一狀態向第二狀態轉移的轉移條件時,開始執行所述第二狀態對應的操作,並從所述第一狀態轉移到所述第二狀態。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於圖6和圖7所示的設備而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都藉由將改進的方法流程編程到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式邏輯裝置(Programmable Logic Device, PLD)(例如現場可程式閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由用戶對裝置編程來確定。由設計人員自行編程來把一個數位系統“集成”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種編程也多半改用“邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始碼也得用特定的編程語言來撰寫,此稱之為硬體描述語言(Hardware Description Language,HDL),而HDL也並非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯編程並編程到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或韌體)的電腦可讀媒體、邏輯閘、開關、應用特定積體電路(Application Specific Integrated Circuit,ASIC)、可程式邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,記憶體控制器還可以被實現為記憶體的控制邏輯的一部分。本領域技術人員也知道,除了以純電腦可讀程式碼方式實現控制器以外,完全可以藉由將方法步驟進行邏輯編程來使得控制器以邏輯閘、開關、應用特定積體電路、可程式邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體部件,而對其內包括的用於實現各種功能的裝置也可以視為硬體部件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模組又可以是硬體部件內的結構。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦。具體的,電腦例如可以為個人電腦、筆記型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放器、導航設備、電子郵件設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任何設備的組合。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本說明書時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式資料處理設備的處理器以產生一個機器,使得藉由電腦或其他可程式資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式資料處理設備上,使得在電腦或其他可程式設備上執行一系列操作以產生電腦實現的處理,從而在電腦或其他可程式設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟(CD-ROM)、數位化多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁碟儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本說明書可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的例程、程式、物件、組件、資料結構等等。也可以在分散式計算環境中實踐本說明書,在這些分散式計算環境中,由藉由通訊網路而被連接的遠端處理設備來執行任務。在分散式計算環境中,程式模組可以位於包括儲存設備在內的本地和遠端電腦儲存媒體中。
以上所述僅為本說明書的實施例而已,並不用於限制本說明書。對於本領域技術人員來說,本說明書可以有各種更改和變化。凡在本說明書的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本說明書的申請專利範圍之內。
100~114‧‧‧步驟
S200~S204‧‧‧步驟
S300~S302‧‧‧步驟
401‧‧‧第一確定模組
402‧‧‧第二確定模組
403‧‧‧配置模組
404‧‧‧寫入模組
501‧‧‧確定模組
502‧‧‧處理模組
為了更清楚地說明本說明書實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖式作簡單地介紹,顯而易見地,下面描述中的圖式僅僅是本說明書中記載的一些實施例,對於本領域具有通常知識者來講,在不付出創造性勞動性的前提下,還可以根據這些圖式獲得其他的圖式。
圖1是一種支付流程示意圖;
圖2是本說明書實施例提供的一種配置支付流程的方法流程圖;
圖3是本說明書實施例提供的一種執行支付流程的方法流程圖;
圖4是本說明書實施例提供的一種配置支付流程的裝置示意圖;
圖5是本說明書實施例提供的一種執行支付流程的裝置示意圖;
圖6是本說明書實施例提供的一種配置支付流程的設備示意圖;
圖7是本說明書實施例提供的一種執行支付流程的設備示意圖。
Claims (16)
- 一種配置支付流程的方法,包括: 根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態; 根據該支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據該支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件; 根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置該支付流程對應的有限狀態機,以便藉由該有限狀態機,執行該支付流程。
- 如申請專利範圍第1項所述的方法,該支付流程,具體包括: 使用銀行卡和/或醫保卡支付醫藥費用的流程。
- 如申請專利範圍第1項所述的方法,根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置該支付流程對應的有限狀態機,具體包括: 根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,產生有限狀態機對應的狀態轉移表,以便電子支付系統藉由查詢該狀態轉移表,執行該支付流程。
- 如申請專利範圍第3項所述的方法,該方法還包括: 將該狀態轉移表寫入該電子支付系統的配置文件中,以使該電子支付系統在啟動時從該配置文件中讀取該狀態轉移表;和/或 將該狀態轉移表寫入該電子支付系統的快取中,以使該電子支付系統在運行時從該快取中讀取該狀態轉移表。
- 一種執行支付流程的方法,包括: 藉由有限狀態機,確定支付業務當前所處的第一狀態;該有限狀態機是預先藉由申請專利範圍第1~4項中任一項所述的方法配置的; 當確定滿足觸發該第一狀態向第二狀態轉移的轉移條件時,開始執行該第二狀態對應的操作,並藉由該有限狀態機,將該支付業務從該第一狀態轉移到該第二狀態。
- 如申請專利範圍第5項所述的方法,確定滿足觸發該第一狀態向第二狀態轉移的轉移條件,具體包括: 查詢狀態轉移表; 當確定滿足從狀態轉移表中查詢到轉移條件時,確定滿足觸發該第一狀態向第二狀態轉移的轉移條件。
- 如申請專利範圍第6項所述的方法,在查詢狀態轉移表之前,該方法還包括: 電子支付系統在啟動時從自身的配置文件中讀取該狀態轉移表;或 該電子支付系統在運行時從自身的快取中讀取該狀態轉移表。
- 一種配置支付流程的裝置,包括: 第一確定模組,根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態; 第二確定模組,根據該支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據該支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件; 配置模組,根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置該支付流程對應的有限狀態機,以便藉由該有限狀態機,執行該支付流程。
- 如申請專利範圍第8項所述的裝置,該支付流程,具體包括: 使用銀行卡和/或醫保卡支付醫藥費用的流程。
- 如申請專利範圍第8項所述的裝置,該配置模組,根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,產生有限狀態機對應的狀態轉移表,以便電子支付系統藉由查詢該狀態轉移表,執行該支付流程。
- 如申請專利範圍第10項所述的裝置,該裝置還包括: 寫入模組,將該狀態轉移表寫入該電子支付系統的配置文件中,以使該電子支付系統在啟動時從該配置文件中讀取該狀態轉移表;和/或將該狀態轉移表寫入該電子支付系統的快取中,以使該電子支付系統在運行時從該快取中讀取該狀態轉移表。
- 一種執行支付流程的裝置,包括: 確定模組,藉由有限狀態機,確定支付業務當前所處的第一狀態;該有限狀態機是預先藉由申請專利範圍第1~4項中任一項所述的方法配置的; 處理模組,當確定滿足觸發該第一狀態向第二狀態轉移的轉移條件時,開始執行該第二狀態對應的操作,並藉由該有限狀態機,將該支付業務從該第一狀態轉移到該第二狀態。
- 如申請專利範圍第12項所述的裝置,該處理模組,查詢狀態轉移表;當確定滿足從狀態轉移表中查詢到轉移條件時,確定滿足觸發該第一狀態向第二狀態轉移的轉移條件。
- 如申請專利範圍第13項所述的裝置,該處理模組,在查詢狀態轉移表之前,在該裝置啟動時從該裝置的配置文件中讀取該狀態轉移表;或在該裝置運行時從該裝置的快取中讀取該狀態轉移表。
- 一種配置支付流程的設備,包括一個或多個處理器及記憶體,該記憶體儲存有程式,並且被配置成由該一個或多個處理器執行以下步驟: 根據預設的支付流程中包含的各操作,確定各操作分別對應的狀態;針對每個操作,該操作對應的狀態是執行該操作時支付業務所處的狀態; 根據該支付流程中包含的各操作之間的關聯關係,確定各狀態之間的轉移關係,以及根據該支付流程中每個操作對應的觸發條件,確定各狀態之間的轉移條件; 根據各狀態、各狀態之間的轉移關係和各狀態之間的轉移條件,配置該支付流程對應的有限狀態機,以便藉由該有限狀態機,執行該支付流程。
- 一種執行支付流程的設備,包括一個或多個處理器及記憶體,該記憶體儲存有程式,並且被配置成由該一個或多個處理器執行以下步驟: 藉由有限狀態機,確定支付業務當前所處的第一狀態;該有限狀態機是預先藉由申請專利範圍第1~4項中任一項所述的方法配置的; 當確定滿足觸發該第一狀態向第二狀態轉移的轉移條件時,開始執行該第二狀態對應的操作,並從該第一狀態轉移到該第二狀態。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810309884.7A CN108764864A (zh) | 2018-04-09 | 2018-04-09 | 一种配置支付流程、执行支付流程的方法、装置及设备 |
| CN201810309884.7 | 2018-04-09 | ||
| ??201810309884.7 | 2018-04-09 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201944314A true TW201944314A (zh) | 2019-11-16 |
| TWI767106B TWI767106B (zh) | 2022-06-11 |
Family
ID=63981434
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW108104573A TWI767106B (zh) | 2018-04-09 | 2019-02-12 | 配置支付流程、執行支付流程的方法、裝置及設備 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20200273034A1 (zh) |
| CN (1) | CN108764864A (zh) |
| SG (1) | SG11202004196VA (zh) |
| TW (1) | TWI767106B (zh) |
| WO (1) | WO2019196551A1 (zh) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108764864A (zh) * | 2018-04-09 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 一种配置支付流程、执行支付流程的方法、装置及设备 |
| US11474837B2 (en) | 2018-04-09 | 2022-10-18 | Advanced New Technologies Co., Ltd. | Method and apparatus for efficient programming of electronic payment processing |
| CN109559240B (zh) * | 2018-12-12 | 2020-12-08 | 泰康保险集团股份有限公司 | 防止保费重复扣缴的方法、装置、设备及可读存储介质 |
| CN113034165B (zh) * | 2019-12-09 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置、存储介质及电子装置 |
| CN111144982B (zh) * | 2019-12-20 | 2022-02-11 | 网联清算有限公司 | 订单状态转移方法、装置、电子设备和存储介质 |
| CN111915277A (zh) * | 2020-08-06 | 2020-11-10 | 云账户技术(天津)有限公司 | 一种合同流程管理的方法及装置 |
| CN111967849A (zh) * | 2020-08-19 | 2020-11-20 | 支付宝(杭州)信息技术有限公司 | 一种任务处理流程编排方法、装置及电子设备 |
| CN114792233A (zh) * | 2021-01-25 | 2022-07-26 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备和可读存储介质 |
| CN114020368A (zh) * | 2021-10-27 | 2022-02-08 | 大健云仓科技(苏州)有限公司 | 基于状态机的信息处理方法、装置和存储介质 |
| CN117993905A (zh) * | 2024-02-06 | 2024-05-07 | 易方达基金管理有限公司 | 一种基于指令状态机的重新划款方法及装置 |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE10247529A1 (de) * | 2001-10-15 | 2003-06-05 | I2 Technologies Inc | Anpassbare Zustandsmaschine und Zustandsaggregationstechnik zur Verarbeitung von Zusammenarbeits- und Transaktionsgeschäftsobjekten |
| US7421546B2 (en) * | 2004-02-12 | 2008-09-02 | Relaystar Sa/Nv | Intelligent state engine system |
| CN100437482C (zh) * | 2006-12-31 | 2008-11-26 | 中国建设银行股份有限公司 | 应用软件的开发系统、生成方法及运行系统、运行方法 |
| CN101873334B (zh) * | 2009-04-24 | 2013-01-02 | 同济大学 | 一种状态驱动的可执行业务流程执行方法 |
| WO2011057156A1 (en) * | 2009-11-05 | 2011-05-12 | Credit Suisse Securities (Usa) Llc | Apparatuses, methods and systems for an incremental container user interface workflow optimizer |
| CN102103497B (zh) * | 2009-12-18 | 2015-03-25 | 阿尔卡特朗讯 | 有限状态机执行装置和方法、在应用中的建立和使用方法 |
| CN102467414B (zh) * | 2010-11-19 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 一种状态机控制方法、装置及状态机系统 |
| US9172593B2 (en) * | 2013-07-11 | 2015-10-27 | Empirix Inc. | System and method for identifying problems on a network |
| US9483383B2 (en) * | 2013-12-05 | 2016-11-01 | International Business Machines Corporation | Injecting faults at select execution points of distributed applications |
| CN103745540B (zh) * | 2014-01-16 | 2016-06-22 | 中国银行股份有限公司 | 银行业务状态机自动处理系统及信息状态自动转换方法 |
| SG11201903387RA (en) * | 2016-10-28 | 2019-05-30 | Nchain Holdings Ltd | Systems and methods for implementing deterministic finite automata (dfas) via a blockchain |
| CN107315591A (zh) * | 2017-06-30 | 2017-11-03 | 上海棠棣信息科技股份有限公司 | 一种业务设计方法和系统 |
| CN107357592A (zh) * | 2017-07-27 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种基于状态机机制的事件处理方法及装置 |
| CN107864193B (zh) * | 2017-10-26 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 业务处理方法、装置、系统及服务设备 |
| CN108764864A (zh) * | 2018-04-09 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 一种配置支付流程、执行支付流程的方法、装置及设备 |
-
2018
- 2018-04-09 CN CN201810309884.7A patent/CN108764864A/zh active Pending
-
2019
- 2019-01-31 WO PCT/CN2019/074095 patent/WO2019196551A1/zh not_active Ceased
- 2019-01-31 SG SG11202004196VA patent/SG11202004196VA/en unknown
- 2019-02-12 TW TW108104573A patent/TWI767106B/zh active
-
2020
- 2020-05-08 US US16/870,746 patent/US20200273034A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| CN108764864A (zh) | 2018-11-06 |
| US20200273034A1 (en) | 2020-08-27 |
| SG11202004196VA (en) | 2020-06-29 |
| TWI767106B (zh) | 2022-06-11 |
| WO2019196551A1 (zh) | 2019-10-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI767106B (zh) | 配置支付流程、執行支付流程的方法、裝置及設備 | |
| TWI679597B (zh) | 共識驗證方法、裝置及設備 | |
| TWI709933B (zh) | 虛擬卡的開卡方法、系統和支付系統、發卡系統 | |
| AU2018246770A1 (en) | Block chain based data processing method and device | |
| TWI679581B (zh) | 任務執行的方法及裝置 | |
| CN107016604A (zh) | 缓冲记账的方法、装置及设备 | |
| TW201942843A (zh) | 記帳的方法及裝置 | |
| CN108268289A (zh) | web应用的参数配置方法、装置及系统 | |
| CN114547024A (zh) | 一种sql语句风险检测方法、装置、设备及介质 | |
| CN111768303A (zh) | 交易处理方法、装置、设备及系统 | |
| US11176161B2 (en) | Data processing method, apparatus, and device | |
| CN111796864A (zh) | 一种数据校验的方法及装置 | |
| CN111402058B (zh) | 一种数据处理方法、装置、设备及介质 | |
| CN108304455B (zh) | 一种处理业务请求的方法、装置及设备 | |
| CN110134735A (zh) | 分布式事务日志的存储方法及装置 | |
| CN107578338A (zh) | 一种业务发布方法、装置及设备 | |
| CN110502575A (zh) | 一种数据同步的方法、装置以及设备 | |
| TWI723535B (zh) | 資料計算方法及引擎 | |
| CN110022351A (zh) | 一种业务请求的处理方法和装置 | |
| CN106980920A (zh) | 一种互联网业务的执行方法及装置 | |
| CN111459573A (zh) | 一种智能合约执行环境的启动方法以及装置 | |
| CN111967769B (zh) | 一种风险识别方法、装置、设备及介质 | |
| CN110874322A (zh) | 一种用于应用程序的测试方法及测试服务器 | |
| US11474837B2 (en) | Method and apparatus for efficient programming of electronic payment processing | |
| CN109614388B (zh) | 一种预算扣减方法和装置 |