Home arrow Practices arrow Developing an Object Oriented Credit Card Transaction Processor

Developing an Object Oriented Credit Card Transaction Processor

This article will walk readers through the process of outlining a flexible Object Oriented design that will facilitate adding Merchant Services and Payment Methods in the future without affecting the client code.

TABLE OF CONTENTS:
  1. Developing an Object Oriented Credit Card Transaction Processor
  2. Principles
  3. Approaching the Problem
  4. Digging In
  5. Factory Work
  6. Conclusion
By: David Fells
Rating: starstarstarstarstar / 25
September 21, 2004

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement

Introduction

I was presented with the problem recently of extending an e-commerce product that my company had developed to support an arbitrary number of merchant services and transaction types with minimal changes to the client (in this case the client would be the script that is requesting a credit card transaction, not the end user of the website). The intent of this article is to walk readers through the process of outlining a flexible Object Oriented design that will facilitate the following objectives:

  1. Allow for future addition of Merchant Services without affecting the client code.

  2. Allow for future addition of Payment Methods without affecting the client code.

  3. Allow for administrators to select different Merchant Services in real time without requiring hard coding the client.

Before continuing I would like to define a few of the terms used in these three objectives. We will define "Merchant Service" as a provider of Electronic Funds Transfers (ETF) such as Verisign, Authorizenet, and LinkPoint. We will define "Payment Method" or "Transaction Method" as a type of EFT, such as Credit Card, Electronic Debit, or Virtual Check.

This article will go through the process of creating this architecture. I will avoid providing actual code as much as possible, because the implementation of this architecture can vary independently of the design, thus providing code samples to perform "Task Y" will not be the focus of this article. Rather, we will examine some of the more important points in Object Oriented design and apply them to our set of objectives. A note before we begin, the example class definitions will be given in C++, as it's fairly neutral and has superior object constructs compared to PHP (which was the language in which this system was developed).



 
 
>>> More Practices Articles          >>> More By David Fells
 

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort
   

PRACTICES ARTICLES

- Calculating Development Project Costs
- More Techniques for Finding Things
- Finding Things
- Finishing the System`s Outlines
- The System in So Many Words
- Basic Data Types and Calculations
- What`s the Address? Pointers
- Design with ArgoUML
- Pragmatic Guidelines: Diagrams That Work
- Five-Step UML: OOAD for Short Attention Span...
- Five-Step UML: OOAD for Short Attention Span...
- Introducing UML: Object-Oriented Analysis an...
- Class and Object Diagrams
- Class Relationships
- Classes

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: