Operation processor service
Dworkin operation-processor-service module allows to create and store internal application transactions aiming to trace flow of funds for different payment operations between different merchant accounts. Transaction model contains the following main entities: Operation, Transaction, Fee and Account located in domain-service module.
Using them it is always possible to define merchant account that was debited and account that was credited. Each transaction contains data specifying source and destination customer card account (virtual/plastic card and e-wallet).
Operation processor service defines 3 types of API:
- Deposit of funds
- Transfer of funds
- Withdrawal of funds
All application payment transaction logic is incapsulated in Transaction performer classes extended in the abstract BaseTransactionPerformer class:
In order to make payment transaction inside Dworkin application it is required to make service call to createTransactionOperation() of OperationProcessor Service:
The typical method invocation will look like:
Implementation of createTransactionOperation() method contains TransactionOperationPerformerFactory invocation which construct necessary transaction performer class depending on specified operation type:
Typical Operation Transaction Performer example:
It is possible to use default system merchant accounts for internal operations. These accounts are specified in dynamic system properties stored in DB in property table with the following keys:
"io.dworkin.accounts.card" specifies account id for card merchant account
"io.dworkin.accounts.transfer"specifies account id for transfer operations
"io.dworkin.accounts.deposit" specifies account for deposit operations
"io.dworkin.accounts.withdraw" specifies account for withdraw operations
It is possible to override default accounts via OperationProcessor additional methods and use own merchant accounts. It can be useful for different merchant API connected to various cash flow scenarios.
To better understand Dworkin transaction module please see transactions examples for different types of operations that are available on our staging server in demo admin panel. Please see demo page