PAYMENT PROCESS CONFIGURATION AND EXECUTION METHOD, APPARATUS AND DEVICE

Implementations of the present specification disclose methods, apparatuses, and devices for configuring and executing a payment process. In the implementations of the present implementation, a state corresponding to each operation is determined based on each operation included in a predetermined payment process, a transition relationship between the states is determined based on an association relationship between operations included in the payment process, and a condition for transition between the states is determined based on a trigger condition corresponding to each operation in the payment process. Thus, the payment process can be represented as a finite state machine, and the payment process can be executed using the finite state machine.

TECHNICAL FIELD

The present specification relates to the field of computing technology, and in particular, to electronic payment.

BACKGROUND

With the popularity of electronic payment, more and more users no longer make cash payments, but instead make payments through an online electronic payment system. In practice, a user sends a payment request to the electronic payment system, which can trigger the electronic payment system to execute a predetermined payment process.

FIG. 1illustrates a typical payment process. InFIG. 1, the payment process includes eight steps S100to S114, where steps S106, S108, and S112are actually identical steps. When the electronic payment system determines that a payment abnormality has occurred (for example, the account balance of the payer is insufficient, the deduction has failed, or the payment has failed), the payment process is terminated, and a failure result is returned to the payer (for example, step S106, S108, or S112is performed).

The payment process is pre-configured by technical staff by means of programming, and that execution of the payment process by the electronic payment system is essentially to execute code logic that corresponds to the payment process sequentially from beginning to end. Therefore, even if the operations of steps S106, S108, and S112shown inFIG. 1are the same, the technical staff needs to write code for each of the above three steps, that is, to write three code segments.

SUMMARY

Implementations of the present specification provide methods, apparatuses, and devices for configuring and executing a payment process.

The implementations of the present specification provide the following solutions:

An implementation of the present specification provides a method for configuring a payment process, including: determining, based on operations included in a predetermined payment process, states corresponding to the operations, respectively, where with respect to each operation, a state corresponding to the operation is a state of a payment service when the operation is performed; determining a transition relationship between the states based on an association relationship between the operations included in the payment process, and determining a condition for transition between the states based on a trigger condition corresponding to each operation in the payment process; and configuring a finite state machine corresponding to the payment process based on the states, the transition relationship between the states, and the condition for transition between the states, so as to execute the payment process through the finite state machine.

An implementation of the present specification provides a method for executing a payment process, including: determining, by using a finite state machine, a first state of a payment service, the finite state machine being pre-configured using the method for configuring a payment process; and in response to determining that a transition condition for triggering a transition from the first state to the second state is met, performing the operation corresponding to the second state, and transitioning the payment service from the first state to the second state using the finite state machine.

An implementation of the present specification provides an apparatus for configuring a payment process, including: a first determining module, configured to determine, based on operations included in a predetermined payment process, states corresponding to the operations, respectively, where with respect to each operation, a state corresponding to the operation is a state of a payment service when the operation is performed; a second determining module, configured to determine a transition relationship between the states based on an association relationship between the operations included in the payment process, and determine a condition for transition between the states based on a trigger condition corresponding to each operation in the payment process; and a configuration module, configured to configure a finite state machine corresponding to the payment process based on the states, the transition relationship between the states, and the condition for transition between the states, so as to execute the payment process through the finite state machine.

An implementation of the present specification provides an apparatus for executing a payment process, including: a determining module, configured to determine, by using a finite state machine, a first state of a payment service, the finite state machine being pre-configured using the method according to any one of claims1to4; and a processing module, configured to: in response to determining that a transition condition for triggering a transition from the first state to the second state is met, perform the operation corresponding to the second state, and transition the payment service from the first state to the second state using the finite state machine.

An implementation of the present specification provides a device for configuring a payment process, including one or more processors and a memory, where the memory stores a program executable by the one or more processors to perform the following steps: determining, based on operations included in a predetermined payment process, states corresponding to the operations, respectively, where with respect to each operation, a state corresponding to the operation is a state of a payment service when the operation is performed; determining a transition relationship between the states based on an association relationship between the operations included in the payment process, and determining a condition for transition between the states based on a trigger condition corresponding to each operation in the payment process; and configuring a finite state machine corresponding to the payment process based on the states, the transition relationship between the states, and the condition for transition between the states, so as to execute the payment process through the finite state machine.

An implementation of the present specification provides a device for executing a payment process, including one or more processors and a memory, where the memory stores a program executable by the one or more processors to perform the following steps: determining, by using a finite state machine, a first state of a payment service, the finite state machine being pre-configured using the method for configuring a payment process; and in response to determining that a transition condition for triggering a transition from the first state to the second state is met, performing the operation corresponding to the second state, and transitioning the payment service from the first state to the second state using the finite state machine.

As can be seen from the technical solutions provided in the above implementations of the present specification, in the implementations of the present specification, a state corresponding to each operation is determined based on each operation included in a predetermined payment process, a transition relationship between the states is determined based on an association relationship between operations included in the payment process, and a condition for transition between the states is determined based on a trigger condition corresponding to each operation in the payment process. Thus, the payment process can be represented as a finite state machine, and the payment process can be executed using the finite state machine. In the implementations of the present specification, each operation included in the payment process is represented as a state in the finite state machine, even if the payment process includes a plurality of steps of the same operation, which actually correspond to the same state, and the technical staff only needs to write code for the state, which improves the efficiency of configuring the payment process.

DESCRIPTION OF IMPLEMENTATIONS

In the implementations of the present specification, a payment process is represented as a finite state machine, and each operation included in the payment process is represented as a state in the finite state machine, so that a plurality of steps of the same operation included in the payment process may correspond to a same state, and staff only need to write a code segment for the state, which improves efficiency of configuring the payment process.

To make a person skilled in the art better understand the technical solutions in the present specification, the following clearly describes the technical solutions in the implementations of the present specification with reference to the accompanying drawings in the implementations of the present specification. Clearly, the described implementations are merely some but not all of the implementations of the present specification. Based on the implementations of the present specification, a person skilled in the art can obtain other implementations without creative efforts, which all fall within the scope of the present specification.

The following describes in detail the implementations of the present specification.

FIG. 2is a flowchart illustrating a method for configuring a payment process, according to an implementation of the present specification. The method includes the following steps:

S200: Determine, based on a plurality of operations included in a payment process, a state corresponding to each operation.

Generally, the electronic payment system is triggered by a payment request sent from a payer to execute a payment process. It is worthwhile to note that there can be a plurality of payment processes depending on different service scenarios. For example, in the case of payment with medical insurance, the payment process can be a process of paying medical expenses using one or more of a bank card and a medical insurance card.

The payment process includes a plurality of steps, and each step corresponds to an operation. When performing a step, the electronic payment system actually performs the operation corresponding to the step. For example, the operation corresponding to step S102shown inFIG. 1is to “determine whether the account balance of the payer is sufficient.” Clearly, the payment process can include a plurality of steps that have the same operation, (for example, steps S106, S108, and S112shown inFIG. 1), but the operations included in the payment process are different from one another.

In this implementation of the present specification, each operation included in the payment process, e.g., predetermined or dynamically determined, can be represented as a state. For each operation, the state corresponding to the operation is the state of the payment service when the electronic payment system performs the operation. In the description herein, a predetermined payment process is used as an illustrative example, which does not limit the scope of the specification. The techniques are also applicable in the scenario that a payment process is dynamically determined and dynamically updated.

S202: Determine a transition relationship between the states based on an association relationship between operations included in the payment process, and determine a condition for transition between the states based on a trigger condition corresponding to each operation in the payment process.

There is usually an association between the operations included in the payment process. It is worthwhile to note that the association between two operations means that after one of the operations is performed, it is possible that the other operation is performed immediately after the operation. For two operations with an association relationship, the operation that is performed previously can be referred to as a “first operation,” and the operation that is performed subsequently can be referred to as a “second operation.”

For example, there is an association relationship between the operation corresponding to step S102shown inFIG. 1and the operation corresponding to step S104. The operation corresponding to step S102is a first operation, and the operation corresponding to step S104is a second operation. It is also worthwhile to note that sometimes an operation has an association with itself, for example, step S100inFIG. 1.

Clearly, if each operation included in the payment process is represented as a state, the process of performing the operations can be represented as a process of transitioning between the states; that is, a transition between every two operations with an association relationship can be viewed/represented as a transition between the states corresponding to the two operations. Therefore, the transition relationship between the states can be determined based on the association relationship between the operations. There is usually a transition relationship between the states corresponding to two operations having an association relationship therebetween.

Further, the condition for transition between the states can be determined based on the trigger condition corresponding to each operation in the payment process. Specifically, for each operation, the trigger condition corresponding to the operation is generally that a first operation associated with the operation has obtained a specific execution result, and the operation is a second operation. For example, inFIG. 1, for an operation corresponding to step S102and an operation corresponding to step S104that have an association relationship, an execution result “yes” of the operation corresponding to step S102is a trigger condition of the operation corresponding to step S104.

S204: Configure a finite state machine corresponding to the payment process based on the states, the transition relationship between the states, and the condition for transition between the states, so as to execute the payment process through the finite state machine.

In steps S200to S202, each state of a finite state machine, a transition relationship between the states, and a condition for transition between the states are obtained. The finite state machine can be configured based on the states of the finite state machine, the transition relationship between the states, and the condition for transition between the states and can be used for executing the payment process.

Further, a state transition table corresponding to the finite state machine can be generated based on the states, the transition relationship between the states, and the condition for transition between the states, for the electronic payment system to query the state transition table in executing the payment process. Table 1 shows a state transition table according to implementations of the present specification.

It is worthwhile to note that the state transition table can be written to the configuration file of the electronic payment system, for the electronic payment system to retrieve the state transition table from the configuration file of the electronic payment system at a startup; or the state transition table can be written to the cache of the electronic payment system, for the electronic payment system to retrieve the state transition table from the cache of the electronic payment system at a runtime. Of course, the state transition table can be written to both the configuration file and the cache.

According to the method for configuring a payment process shown inFIG. 2, a state corresponding to each operation is determined based on each operation included in a predetermined payment process, a transition relationship between the states is determined based on an association relationship between operations included in the payment process, and a condition for transition between the states is determined based on a trigger condition corresponding to each operation in the payment process. Thus, the payment process can be represented as a finite state machine, and the payment process can be executed using the finite state machine. In the implementations of the present specification, each operation included in the payment process is represented as a state in the finite state machine. Even if a payment process includes a plurality of steps that have a same operation, which actually correspond to a same state, the technical staff only needs to write program codes for the state, which improves the efficiency of configuring the payment process.

In addition, for a more complex payment process (for example, the process includes a large number of steps, or each step can be transitioned to a large number of other steps), abstracting the payment process as a finite state machine also helps simplify the programming work of a technical staff. The technical staff abstracts each operation included in the payment process into a state, and only needs to configure the condition for transition between the states (that is, configure the state transition table).

FIG. 3is a flowchart illustrating a method for executing a payment process, according to an implementation of the present specification. The method includes the following steps:

S300: Determine, by using a finite state machine, a first state of a payment service.

S302: In response to determining that a transition condition for triggering a transition from the first state to the second state is met, perform the operation corresponding to the second state, and transition the payment service from the first state to the second state using the finite state machine.

The execution body of the method can be an electronic payment system, which can be specifically a server or a server cluster for processing electronic payment services.

It is worthwhile to note that in the method shown inFIG. 3, the finite state machine is pre-configured using the method for configuring a payment process shown inFIG. 2. Specifically, the state transition table that corresponds to the payment process and that is generated using the method shown inFIG. 2can be written to the configuration file of the electronic payment system in advance, for the electronic payment system to retrieve the state transition table from the configuration file of the electronic payment system at a startup.

In this implementation of the present specification, the first state represents the current state of the payment service that is determined using the finite state machine, and the second state represents a state to which the payment service is subsequently transitioned from the first state. The first state and the second state can be the same state.

After detecting, from the state transition table, that the transition condition for triggering the transition from the first state to the second state is met, the electronic payment system can, on the one hand, perform the operation corresponding to the second state and, on the other hand, transition the payment service from the first state to the second state using the finite state machine.

Specifically, the state transition table can be queried; and in response to determining that a transition condition obtained from the state transition table is met, it is determined that a transition condition for triggering a transition from the first state to the second state is met.

Further, before querying the state transition table, the electronic payment system retrieves the state transition table from a configuration file of the electronic payment system at a startup; or the electronic payment system retrieves the state transition table from a cache of the electronic payment system at a runtime.

In addition, sometimes the electronic payment system can be a distributed system; that is, a plurality of electronic payment subsystems cooperate with each other to perform the payment process. In this case, the electronic payment subsystems need to invoke each other (either synchronously or asynchronously) to execute the payment process. In addition, to ensure that the data in the databases of all electronic payment subsystems is consistent, the work of each electronic payment subsystem is divided into a service acceptance stage and a service processing stage. At the service acceptance stage, the electronic payment subsystem guarantees the idempotent for the invocation requests received from other electronic payment subsystems (that is, a plurality of identical invocation requests that are repeatedly received are considered as one invocation request). If the electronic payment subsystem fails to handle the service at the service handling stage, the electronic payment subsystem cannot obtain the corresponding service data at the service processing stage.

The electronic payment subsystem not only accepts the invocation request successfully at the service acceptance stage, but also processes the accepted invocation request successfully at the service processing stage before performing state transition using the finite state machine. If the electronic payment subsystem fails to accept the invocation request at the service acceptance stage or fails to process the invocation request at the service processing stage, compensation and/or retry for the service acceptance or the service processing needs to be triggered, so that the electronic payment subsystem successfully accepts the invocation request at the service acceptance stage and successfully processes the invocation request at the service processing stage, thereby enabling the state transition to be performed by the finite state machine.

Based on the method for configuring a payment process shown inFIG. 2, an implementation of the present specification further provides an apparatus for configuring a payment process. As shown inFIG. 4, the apparatus includes: a first determining module401, configured to determine, based on operations included in a predetermined payment process, states corresponding to the operations, respectively, where with respect to each operation, a state corresponding to the operation is a state of a payment service when the operation is performed; a second determining module402, configured to determine a transition relationship between the states based on an association relationship between the operations included in the payment process, and determine a condition for transition between the states based on a trigger condition corresponding to each operation in the payment process; and a configuration module403, configured to configure a finite state machine corresponding to the payment process based on the states, the transition relationship between the states, and the condition for transition between the states, so as to execute the payment process through the finite state machine.

The payment process specifically includes a process for paying medical expenses using one or more of a bank card and a medical insurance card.

The configuration module403generates a state transition table corresponding to the finite state machine based on the states, a transition relationship between the states, and a condition for transition between the states, for the electronic payment system to query the state transition table in executing the payment process.

The apparatus further includes a writing module404, configured to: write the state transition table to a configuration file of the electronic payment system, for the electronic payment system to retrieve the state transition table from the configuration file of the electronic payment system at a startup; and/or write the state transition table into a cache of the electronic payment system, for the electronic payment system to retrieve the state transition table from the cache of the electronic payment system at a runtime.

Based on the method for executing a payment process shown inFIG. 3, an implementation of the present specification further provides an apparatus for configuring a payment process. As shown inFIG. 5, the apparatus includes: a determining module501, configured to determine, by using a finite state machine, a first state of a payment service, the finite state machine being pre-configured using the method shown inFIG. 2; and a processing module502, configured to: in response to determining that a transition condition for triggering a transition from the first state to the second state is met, perform the operation corresponding to the second state, and transition the payment service from the first state to the second state using the finite state machine.

The processing module502queries a state transition table; and in response to determining that a transition condition obtained from the state transition table is met, determines that the transition condition for triggering the transition from the first state to the second state is met.

The processing module502retrieves the state transition table from a configuration file of the device when the device is started before querying the state transition table; or retrieves the state transition table from a cache of the device when the device is running.

Based on the method for configuring a payment process shown inFIG. 2, an implementation of the present specification further provides a device for configuring a payment process. As shown inFIG. 6, the device includes one or more processors and a memory, where the memory stores a program executable by the one or more processors to perform the following steps: determining, based on operations included in a predetermined payment process, states corresponding to the operations, respectively, where with respect to each operation, a state corresponding to the operation is a state of a payment service when the operation is performed; determining a transition relationship between the states based on an association relationship between the operations included in the payment process, and determining a condition for transition between the states based on a trigger condition corresponding to each operation in the payment process; and configuring a finite state machine corresponding to the payment process based on the states, the transition relationship between the states, and the condition for transition between the states, so as to execute the payment process through the finite state machine.

Based on the method for executing a payment process shown inFIG. 3, an implementation of the present specification further provides a device for executing a payment process. As shown inFIG. 7, the device includes one or more processors and a memory, where the memory stores a program executable by the one or more processors to perform the following steps: determining, by using a finite state machine, a first state of a payment service, the finite state machine being pre-configured using the method shown inFIG. 2; and in response to determining that a transition condition for triggering a transition from the first state to the second state is met, performing the operation corresponding to the second state, and transitioning the payment service from the first state to the second state using the finite state machine.

The implementations of the present specification are described in a progressive way. For same or similar parts of the implementations, mutual references can be made to the implementations. Each implementation focuses on a difference from the other implementations. Particularly, the device implementations shown inFIG. 6andFIG. 7are basically similar to the method implementations, and therefore are described briefly. For related parts, references can be made to related descriptions in the method implementations.

In the 1990s, whether technology improvement is hardware improvement (for example, improvement of a circuit structure, such as a diode, a transistor, or a switch) or software improvement (improvement of a method procedure) can be clearly distinguished. However, as technologies develop, the current improvement for many method procedures can be considered as a direct improvement of a hardware circuit structure. A designer usually programs an improved method procedure to a hardware circuit, to obtain a corresponding hardware circuit structure. Therefore, a method procedure can be improved using a hardware entity module. For example, a programmable logic device (PLD) (for example, a field programmable gate array (FPGA)) is such an integrated circuit, and a logical function of the programmable logic device is determined by a user through device programming. The designer performs programming to “integrate” a digital system to a PLD without requesting a chip manufacturer to design and produce an application-specific integrated circuit chip. In addition, at present, instead of manually manufacturing an integrated chip, this type of programming is mostly implemented using “logic compiler” software. The programming is similar to a software compiler used to develop and write a program. Original code needs to be written in a particular programming language for compilation. The language is referred to as a hardware description language (HDL). There are many HDLs, such as the Advanced Boolean Expression Language (ABEL), the Altera Hardware Description Language (AHDL), Confluence, the Cornell University Programming Language (CUPL), HDCal, the Java Hardware Description Language (JHDL), Lava, Lola, MyHDL, PALASM, and the Ruby Hardware Description Language (RHDL). The very-high-speed integrated circuit hardware description language (VHDL) and Verilog are most commonly used. A person skilled in the art should also understand that a hardware circuit that implements a logical method procedure can be readily obtained once the method procedure is logically programmed using the several described hardware description languages and is programmed into an integrated circuit.

A controller can be implemented using any appropriate method. For example, the controller can be a microprocessor or a processor, or a computer-readable medium that stores computer readable program code (such as software or firmware) that can be executed by the microprocessor or the processor, a logic gate, a switch, an application-specific integrated circuit (ASIC), a programmable logic controller, or a built-in microprocessor. Examples of the controller include but are not limited to the following microprocessors: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. The memory controller can also be implemented as a part of the control logic of the memory. A person skilled in the art also knows that, in addition to implementing the controller by using the computer readable program code, logic programming can be performed on method steps to allow the controller to implement the same function in forms of the logic gate, the switch, the application-specific integrated circuit, the programmable logic controller, and the built-in microcontroller. Therefore, the controller can be considered as a hardware component, and a device configured to implement various functions in the controller can also be considered as a structure in the hardware component. Alternatively, the device configured to implement various functions can even be considered as both a software module implementing the method and a structure in the hardware component.

The system, device, module, or unit illustrated in the previous implementations can be implemented using a computer chip or an entity, or can be implemented using a product having a certain function. A typical implementation device is a computer. A specific form of the computer can be a personal computer, a laptop computer, a cellular phone, a camera phone, an intelligent phone, a personal digital assistant, a media player, a navigation device, an email transceiver device, a game console, a tablet computer, a wearable device, or any combination thereof.

For convenience of description, the above devices are described separately in terms of their functions. Certainly, functions of the units can be implemented in the same or different software or hardware when the present specification is implemented.

A person skilled in the art should understand that the implementations of the present specification can be provided as methods, systems, or computer program products. Therefore, the present specification can take a form of complete hardware implementations, complete software implementations, or implementations combining software and hardware. Further, the present specification can take a form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, and optical storage) containing computer-usable program code.

In a typical configuration, a computing device includes one or more processors (CPUs), an input/output interface, a network interface, and a memory.

The computer readable medium includes persistent, non-persistent, movable, and unmovable media that can store information using any method or technology. The information can be a computer readable instruction, a data structure, a program module, or other data. Examples of the computer storage medium include but are not limited to a phase change random access memory (PRAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), another type of RAM, a ROM, an electrically erasable programmable read-only memory (EEPROM), a flash memory or another memory technology, a compact disc read-only memory (CD-ROM), a digital versatile disc (DVD) or another optical storage, a cassette magnetic tape, a magnetic tape/magnetic disk storage, another magnetic storage device, or any other non-transmission medium. The computer storage medium can be used to store information accessible by a computer device. Based on the definition in the present specification, the computer readable medium does not include transitory media such as a modulated data signal and carrier.

It is also worthwhile to note that terms “include,” “include” or any other variant is intended to cover non-exclusive inclusion, so that processes, methods, commodities or devices that include a series of elements include not only those elements but also other elements that are not explicitly listed, or elements inherent in such processes, methods, commodities or devices. An element described by “includes a . . . ” further includes, without more constraints, another identical element in the process, method, product, or device that includes the element.

The present specification can be described in the general context of computer executable instructions executed by a computer, for example, a program module. Generally, the program module includes a routine, a program, an object, a component, a data structure, etc. executing a specific task or implementing a specific abstract data type. The present specification can also be practiced in distributed computing environments. In the distributed computing environments, tasks are performed by remote processing devices connected through a communications network. In a distributed computing environment, the program module can be located in both local and remote computer storage media including storage devices.

The above descriptions are merely examples of the present specification and are not intended to limit the present specification. For a person skilled in the art, the present specification can be subject to various modifications and variations. Any modification, equivalent replacement, or improvement made without departing from the spirit and principle of the present specification shall fall within the scope of the claims.