DESIGN A PAYMENT PROCESSING SYSTEM
Have you ever stopped to consider what happens when you’re shopping online? In between entering your credit card information and the money getting charged to your account is a very complex set of interactions. During this class, we will explore a simplified payment processing system that does exactly this. We’ll create a design for it and provide sample implementations for some of the components.
Let’s take a look at some of the details of a payment processing system.
FORMS OF PAYMENT
To keep this simple we’ll assume that we only accept credit cards for payment.
FRONTEND
The happy shopper needs some way to enter their payment details.
ONLINE STORE
The storefront needs an interface to the processing system where they can enter the shoppers’ details, get confirmation that they can charge the card, and collect the money afterwards.
CREDIT CARD PAYMENTS
Paying by credit card, whether online or in a physical shop, follows a two-step process.
When your card is first run, it performs an “authorization”. This authorization takes the credit card details and the amount requested and sends them to the credit card company. The company then looks up the card and verifies whether or not the payment will succeed. A status code (OK or some kind of error code) is returned, along with an authorization code if the status is OK.
Later on (e.g. once an hour, once a day) all of these authorizations are collected up into a single batch and sent as “payment requests” to the credit card company. A payment request contains the same information as the initial authorization along with the authorization code that was returned. The credit card company will respond with statuses for each payment request and all the money for those requests that succeeded is transferred into the store’s bank account.
PAYMENT PROCESSING SYSTEM
The system needs to implement credit card processing as described above.
CREDIT CARD COMPANY
We shall assume we use a single credit card processor and that processor provides us with an interface for performing authorizations in real time and batch payment requests.
ASSIGNMENT INSTRUCTIONS
This assignment is for you to design a payment processing system as a distributed system. There will be multiple components for this and it will be quite complex. In week 2 we will explore distributed system architectures. Begin by breaking down the system into its individual components. Note: If you took Web Enabled Information Systems, you may have completed a similar exercise. Based on the description you’ll need several pieces for this as there’s an online piece and a batch piece, plus all the storage. Then choose an appropriate architecture for your system and write a design for it.
You should submit a 2,000 – 2,500-word paper along with appropriate diagrams and references for your system.
Assignment Focus
OVERVIEW OF A PAYMENT PROCESSING SYSTEM
First, you need to understand how a payment processing system works.
I will leverage the material at
https://wallethub.com/edu/cc/credit-card-transaction/25511/ (Links to an external site.), Accessed 2020-03-10
to lay out the basic interactions of a payment processing system in UML.
Credit-Card-Processing-How-Does-It-Work
Open use case text document
The Use Case diagram show the actors in the main scenarios we are concerned about, which are Authorize Transaction and Clearing and Settlement.
Our main tasks in design for the first assignment are to detail out the interactions needed for the Shopper to purchase the items selected on the Merchant’s web site.
These diagrams should document the main interactions necessary to make your solution work.
They do not constrain your decisions about what components make up the solution, such as whether there is a database and how many nodes work together to accomplish the application’s purpose.
The mechanics of what protocol or mechanisms will be used is beyond the scope of this assignment; the need to exchange messages and their content are key items.
When you determine the architecture, this will begin to add constraints to appropriate protocols and other mechanisms.
WHAT KINDS OF INFORMATION SHOULD BE IN THE PAPER?
Here is one idea about organizing this information. You may have other ideas, all of which are acceptable. This should get the juices going!
Introduction
Paraphrase your understanding of the credit card processing system
High-level Design
Document the key responsibilities of the processing system, and delineate what tasks it must perform, especially for the authorization use case.
Determine how the actors interact with the system.
What components does this entail? For instance, with what component(s) does the credit card holder interact with the credit card processor?
Assign the responsibilities to the components
Dependencies
Document any external component dependencies
Summary
Summarize this overall architecture
DESIGN A PAYMENT PROCESSING SYSTEM Have you ever stopped to consider what happen
Plagiarism Free Assignment Help
✓ Native UK, USA & Australia writers
✓ Deadline from 3 hours
✓ 100% Plagiarism-Free — Turnitin included
✓ Unlimited free revisions
✓ Free to submit — compare quotes