MTX Connect is a virtual mobile network operator, providing internet access in Europe and using the infrastructure of other mobile operators. It has its own staff, billing and customer support for mobile internet services.
- MTX provides mobile internet at a fixed price in every country in Europe. Eliminating the need to use roaming in various countries helps customers save €5–10 per 100 МB of traffic according to data from April 2017.
- MTX Connect SIM cards can be used in any 3G or 4G-compatible mobile device: tablet PC, smartphone, or 3G modem. The SIM-card is sent in a 3-in-1 format, with standard, micro and nano all in one package.
- Buying a SIM card from a local mobile network operator in every county is, firstly, not always practical because of prepayment plans, and secondly it takes time. If a user's trip passes through several countries it is inconvenient to look for a mobile operator outlet in every country. Using MTX helps to avoid these problems.
Initially, managing internet access services could be done only through the user account. The main functions available in the user account are:
- MTX Connect SIM card activation
- Balance top up
- Changing price plan
The user account is a frontend of the CDRator billing system.
At a certain stage in the project development the client requested API for the MTX Connect backend to create mobile applications for Android and iOS.
The objectives of backend API development:
- Development and extension of MTX backend functionality
- Integration of MTX with third-party services
- Possibility of creating MTX frontend systems
The purpose of mobile applications:
- Simplifying user interaction with the MTX system
- Collecting statistical information about MTX users
The first stage: requirements specification development and API design
The requirements specification contained the design and description of the API, the architecture for interaction between the mobile applications and the MTX server, and a mechanism for interaction between the MTX server and the CDRator billing system:
- Automatic customer authentication in the network using the mobile operator's internal data.
- Password recovery.
- SIM card activation.
- Storage of data about SIM cards used by customers in the billing system.
- Crediting funds to the client's account via bank card or PayPal.
- Account balance information.
- History of balance use and topping up.
- Chat with the support team when on-net in the MTX Connect network, when off-net, and with a negative balance.
- Multilanguage support: scripts, national symbols, currency symbols.
- Notifications about balance and traffic use even with negative balance.
- Recording of customers' statistical data.
- Service activation (where included in the price plan).
- Information about traffic used.
- Integration with partner programmes: Lufthansa Miles & More etc.
During further development the API continued to change and evolve.
Second stage: development of mobile applications for iOS and Android
Applications interact with the MTX server on REST using TLS, which in its turn interacts with the billing system via the CDRator API. Data exchange between the backend and the applications is accomplished by calling high-level methods. All the complex logic (card activation, service package activation, payment) is implemented on the backend side.
When a user opens the application on a device with an MTX SIM card the backend identifies whether the source of the request is on-net or off-net by the IP address. If the user is on-net the application can make an automatic login via ICCID/IP without asking for a username and password. If the status is off-net, then a login and password are required.
To conduct payments via bank card an API based on PayZen SOAP is used. Payment is fulfilled through a 3-D Secure redirect. The entire sequence of actions is shown in the diagram.
- CC Payment request.
- CreateWithThreeDS PayZen SOAP API request.
- Return of the information for conducting payment, saving it in custom attributes.
- Redirect_url return.
- Opening of the received URL in an embedded browser, 3-D Secure processing in an embedded browser.
- Redirect to final_url with the results of 3-D Secure processing.
- Final_url request interception, closing of embedded browser, HandleAcsResponseCardIdent query.
- FinalizeWithThreeDS() SOAP API request.
- Payment completion and return of resulting information.
- Return of resulting information, closing of embedded browser and redirect to the balance information screen.
Mobile application functions
- Login with the help of a username and password, or using a using a social network account.
- New SIM card registration.
- Automatic customer login to the networks using internal data from the mobile operator.
- Managing subscriptions to service packages.
- Managing notifications about expiration of service packages.
- Payment history.
- Traffic usage history.
- Password recovery.
- Transferring money to the account.
- Transferring statistical information (geographical data, online sessions and installed applications).
- Sending messages to technical support.