Summary
This solution is a single, configurable system that aids in the remittance process for many clients with hundreds to thousands of customers each. Consumers make payments through this system via a web experience (customized for a client’s look and feel), a call center experience, with live operators, or an automated interactive voice response (IVR) application, to accept payments over the phone. Payments of varying types and frequencies are supported. Each client has many configuration options available to provide seamless integration with their existing systems.
Our Role
Designed solution, led team to completion
Technology
- C# .NET 1.1 / 2.0
- WSE 2.0 / 3.0
- SQL 2000/2005
- MSMQ
- Windows services
- ASP.NET web applications
- ASP.NET web services (intranet and extranet)
- Enterprise Library 1.1 and 2.0
Features
Service-Oriented Architecture
The overall solution was designed with flexibility and growth in mind. The design employs several autonomous systems, or services, which each communicate among themselves as well as front-end applications via web service calls. These calls are secured using Microsoft Web Services Extensions (WSE). Developers make service calls through custom proxy objects, which aid in securing calls and help pass the caller’s identity.
Message Queuing
Some services utilize queuing via MSMQ to achieve improved performance of high-volume message scenarios. This entails using multi-threaded queue processors to process message items as needed.
Model-Based Development
A centralized model, based on an XML schema, is utilized to insure consistency across all applications in the solution. Code generation tools are configured with Visual Studio to create the class structures as needed.
Plug-in Support
To allow for future system extensibility, several plug-in libraries are supported via an implementation of the abstract factory pattern. This allows for new:
- Payment providers – Allows the addition of new payment processors (service providers) without affecting the overall solution. Different creditors can be configured for different payment processors
- Customized customer load routines – Customer data is typically loaded via bulk files or delta files into the system. However, this plug-in allows clients to provide any means to retrieve customer data (e.g. web service call).
- Custom fee calculation algorithms – Each client is configured with a complex set of fee rules, which meet the needs of most clients. However custom fees based on nearly anything can be employed on a per-client basis.
Rule-Based Fees Scheme
Fees are configured based on a number of factors including payment type, card type, frequency, state/province and the timing of the payment compared to the due date. For a fee that matches, different types of fees can be applied: flat fee, percentage fee or custom fees. Custom fees are plug-in libraries which are described above.
Fully Dynamic Configuration
Configuration of creditor clients is done through a fully dynamic, attribute-based system that supports inheritance of settings among branch creditors. New attributes can be added to the system at any time. Developers code against these attributes using a custom proxy wrapper, which uses .NET generics along with xml serialization to deserialize complex types. All system plug-ins are configured per creditor. Configuration is managed through InfoPath forms per system.
Enterprise Library Extensions
The Microsoft Enterprise Library provides a tremendous benefit to developers. This includes the ability to log events to various, configurable sources and to secure the application using various encryption algorithms. This solution had unique needs for logging and security which were met by extending the enterprise library itself.
- Logging – Logging was done throughout all systems. A centralized logging service exposed functionality to receive logging messages. These messages were queued and processed.
- Security – To support custom security requirements for key versioning and key storage, a new encryption provider was developed for the enterprise library.
Change Control Process Support
From the start, the configuration system was designed with change control in mind. Creditor-specific XML configuration data must go through multiple environments for testing before actually being implemented. Once approved the biller configuration data can be imported using a special import tool.
Security
All sensitive data is stored securely to keep the system in line with the strict requirements of the VISA Cardholder Information Security Program (CISP). Complex, yet standard, encryption algorithms are used to insure the most effective security.
XSLT Transformations
The system has many points where output is produced. To assist in all the customized reporting needs, XSLT transformations were employed to provide as many customized reports on payment data as are needed by the clients.