Web Payment & Back-office Accounting for Large eSport Community
The Client
The client is a largest eSport community including millions of participants all over the globe. To ensure continuous community growth the company decided to bring membership payment services to Internet as much as possible.
The Solution
Azoft had proposed complete web payment and back-office accounting solution to ensure highest security, performance and reliability requirements. Solution was designed to smoothly integrate with client’s game server, authorization system and community portal as well as with external online payment systems like VeriSign, SoftKey and Microsoft GreatPlains accounting software. Having in mind large number of users, Azoft gave a special attention to interface usability.
Resulted solution supports both online payments and scratch card activations in a convenient and controlled way. The back-office of the solution has a capability to supply financial data collecting, updating and reporting. Distributed architecture allows 24x7 flawless system functioning in the high-load conditions, when hundreds of multi-level transactions per minute are processed. Azoft developed a system, which supports all financial operations required for successful operation of client’s services supporting very complicated financial MLM trees and transactions. Developed system supports online sales (online payments) and scratch card activation (physical sales). Additional capabilities of the software include: financial data collecting, updating and reporting. System is created to function in an international environment and is made to support easy localization; it is integrated with SoftKey and Verisign online payment systems and supports plug-in technology to quickly add new payment systems.
Resulted solution supports both online payments and scratch card activations in a convenient and controlled way. The back-office of the solution has a capability to supply financial data collecting, updating and reporting. Distributed architecture allows 24x7 flawless system functioning in the high-load conditions, when hundreds of multi-level transactions per minute are processed. Azoft developed a system, which supports all financial operations required for successful operation of client’s services supporting very complicated financial MLM trees and transactions. Developed system supports online sales (online payments) and scratch card activation (physical sales). Additional capabilities of the software include: financial data collecting, updating and reporting. System is created to function in an international environment and is made to support easy localization; it is integrated with SoftKey and Verisign online payment systems and supports plug-in technology to quickly add new payment systems.
System consists of following main parts:
- Administration subsystem
- Charging subsystem
- Scracth Card subsystem
- Payment system
- Statistics subsystem
- Subscription service
- User management component
- Online services
- Pluggable payment service for payment processors
Logical View
To produce scratch cards, system administrator should receive approval from system owner. Then system generates a set of unique pairs: serial number and correspondent activation code. The complexity of both codes can be configurable to increase security. System rely both on card serial number and activation codes. Serial numbers are used for customer care and troubleshooting. Activation codes are used for internal accounting and billing needs. Also, system services can be activated by credit card payments, i.e. by purchasing online the activation code via VeriSign for example. Each such online payment is automatically associated with some «virtual scratch card» which user receives as a result of online payment. Each virtual card has its own activation code which can be used any time after purchase.
From system perspective the payment for client’s services is divided into two phases. The first phase is scratch card purchase. It can happen online, when user purchases «virtual scratch card», or offline, when user purchases physical scratch cards. The second phase is activation of the code on the card, when user enters his activation code into the system and receives access to selected client’s services. Two-phased commit is used for most transactions.
Configurable value is assigned to each activation code. This value is associated with some period of time (subscription atom), which is a time during which user can access service he has chosen, like participation in local or international tournaments.
Modular architecture was created by Azoft. It allows easing an upgrade or further integration with third-party services (other online payment systems or online services, for example). System support multi-currency accounting and provide users with configurable multilingual interface. It is also able to store information on country-specific issues, such as address format, accounting requirements and reporting.
Since the major requirements were high performance and stability, Azoft created a distributed system. Components and subcomponents can be physically distributed (and further easily duplicated) across several servers. An advanced administrative module was developed to monitor and control all system activities. All operations performed in the system by all users, system administrators and owners are logged. Each administrator should have a client 128-bit certificate to access the system. Everything was built to maintain the highest level of security, quickest recovery after failures and to lower the cost of system support.
Application's backend and web-service run on a dedicated application server. The back-end communicates with database using database-specific protocol. Communications with external payment systems are handled via secure, configurable and system-specific protocol. Also, special engine was developed to support integration via emails. This engine, as all other engines, can be easy plugged or unplugged depending on overall system configuration and target usage. System administrators are restricted to use only web interface and HTTP (S) connection. HOP-GO clients use web browser and HTTP (S) protocol to access online services. RMI protocol is used to communicate with external authorization subsystem. Accounting module also uses external authorization subsystem and its interfaces. Most services are published in the RMI registry.
The business-logic of the system is implemented utilizing service oriented approach. The ServiceManager subsystem is a single point for managing all services. Each service registers itself in Service subsystem. After that, the ServiceManager updates a list of currently available services, allowing other components to search services by name, and also provides connection to this service’s database once the service was obtained by external component or subsystem. The ServiceManager can be configured to merge different clusters of the system, working as one global environment. For this the special approach was invented to handle several Java Virtual Machines. This allows clustering the system on many servers.
Presentation layer is built using Apache Struts framework, with JSP and XML usage. Resin XSLT processor transforms XML into HTML code using XSLT formatters.
The whole system consists of about 30 complex use-cases, 100 mediocre, and 150 simple use-cases.
The whole innovative technological design, based on distributed architecture and complicated and shared business-logic gives our client reliable, user-friendly and controllable online payment service, backed with comprehensive accounting. This resulted in great benefits for our client, such as seamlessly enlargeable user community, reduced cost of overall system support, greater revenue and success on the international market.
From system perspective the payment for client’s services is divided into two phases. The first phase is scratch card purchase. It can happen online, when user purchases «virtual scratch card», or offline, when user purchases physical scratch cards. The second phase is activation of the code on the card, when user enters his activation code into the system and receives access to selected client’s services. Two-phased commit is used for most transactions.
Configurable value is assigned to each activation code. This value is associated with some period of time (subscription atom), which is a time during which user can access service he has chosen, like participation in local or international tournaments.
Modular architecture was created by Azoft. It allows easing an upgrade or further integration with third-party services (other online payment systems or online services, for example). System support multi-currency accounting and provide users with configurable multilingual interface. It is also able to store information on country-specific issues, such as address format, accounting requirements and reporting.
Since the major requirements were high performance and stability, Azoft created a distributed system. Components and subcomponents can be physically distributed (and further easily duplicated) across several servers. An advanced administrative module was developed to monitor and control all system activities. All operations performed in the system by all users, system administrators and owners are logged. Each administrator should have a client 128-bit certificate to access the system. Everything was built to maintain the highest level of security, quickest recovery after failures and to lower the cost of system support.
Application's backend and web-service run on a dedicated application server. The back-end communicates with database using database-specific protocol. Communications with external payment systems are handled via secure, configurable and system-specific protocol. Also, special engine was developed to support integration via emails. This engine, as all other engines, can be easy plugged or unplugged depending on overall system configuration and target usage. System administrators are restricted to use only web interface and HTTP (S) connection. HOP-GO clients use web browser and HTTP (S) protocol to access online services. RMI protocol is used to communicate with external authorization subsystem. Accounting module also uses external authorization subsystem and its interfaces. Most services are published in the RMI registry.
The business-logic of the system is implemented utilizing service oriented approach. The ServiceManager subsystem is a single point for managing all services. Each service registers itself in Service subsystem. After that, the ServiceManager updates a list of currently available services, allowing other components to search services by name, and also provides connection to this service’s database once the service was obtained by external component or subsystem. The ServiceManager can be configured to merge different clusters of the system, working as one global environment. For this the special approach was invented to handle several Java Virtual Machines. This allows clustering the system on many servers.
Presentation layer is built using Apache Struts framework, with JSP and XML usage. Resin XSLT processor transforms XML into HTML code using XSLT formatters.
The whole system consists of about 30 complex use-cases, 100 mediocre, and 150 simple use-cases.
The whole innovative technological design, based on distributed architecture and complicated and shared business-logic gives our client reliable, user-friendly and controllable online payment service, backed with comprehensive accounting. This resulted in great benefits for our client, such as seamlessly enlargeable user community, reduced cost of overall system support, greater revenue and success on the international market.
Technologies
Java Servlet/JSP, PL/SQL, XML, XSL/XSLT, Oracle 9i, JMS, MVC frameworks Apache Struts, Microsoft GreatPlains, Crystal Reports