Peter Afanasiev - Architecture of online Payments

Preview:

DESCRIPTION

Payment Service ProvidersMerchant Payment SystemsGeneral architecture of a Payment SystemKnow-hows:Payment queues with MSSQL BrokerAdapter PolymorphismTracing in Service Oriented World Dynamic configuration editor with ASP.Net MVC

Citation preview

ARCHITECTURE OF PAYMENT SYSTEMSPetr Afanasiev

Software engineer

Betsson Technologies

RELEVANCE

Internet business is developing More & more products are being sold online More & more services are build on top of

payments

PLAN

Problems & Solutions

Tracing in Service Oriented World Dynamic configuration editor with Asp.Net MVC

General architecture of Betsson Payments

Merchant Payment Systems

Payment Service Providers

Payment Systems

PAYMENT SERVICE PROVIDERS

PAYMENT SERVICE PROVIDERS

Actual bank

Processing

Multiple Banks

Multiple Countries

PSP

Credit Card

eWallet Bank Transfer

Vouchers

The fastest Most used Most

secure*

Supports only some banks

Difficult withdrawals

Security standards

No limits! The

slowest Requires

manual work

May seem more trustworthy

High integration cost

Low popularity

Lot’s of fun for marketing

Local market

No withdrawals

PAYMENT SYSTEMConsolidate PSPs into 1

module

Different payment options by country

Fraud Protection

Monitoring & Reporting

Custom business flows

High Acceptance

Rate

ACCEPTANCE RATE

Bin serie

PSP1

432156 432157 432158 432159 … 432299

PSP2

473485 473486 473487 473488 … 473799

Payment Systems know which PSP to use with which Credit Card

PROVIDER CHAINS

PSP1

PSP2

PSP3

PSP2

PSP3

PSP5

4321 5678 9012 1234

Chain1 Chain2

If one provider failed to process a card – it’s passed to the next provider in chain

It get’s even better ;)

DEVELOPER OVERVIEW OF BETSSON PAYMENTS ARCHITECTURE

Scalability Provider

encapsulation Provider

Configuration Tracing

SIMPLIFIED FLOW

DYNAMIC CONFIGURATION EDITOR WITH ASP.NET MVC

The Problem: Hard to maintain config file 8000 lines of config code Each adapter defines it’s own config section Continuous problems with merging,

synchronization, human error

DYNAMIC CONFIGURATION EDITOR WITH ASP.NET MVC

Easily editable Validated (schema and content) Saved to database Passed over network

DYNAMIC CONFIGURATION EDITOR WITH ASP.NET MVC

DYNAMIC CONFIGURATION EDITOR WITH ASP.NET MVC

DYNAMIC CONFIGURATION EDITOR WITH ASP.NET MVC

TRACING IN SERVICE ORIENTED ARCHITECTURE

TRACING IN SERVICE ORIENTED ARCHITECTURE

How to trace payment request flow across service domain?

PaymentID ? SessionID ?

ActivityID!

TRACING IN SERVICE ORIENTED ARCHITECTURE

TRACING IN SERVICE ORIENTED ARCHITECTURE

TRACING IN SERVICE ORIENTED ARCHITECTURE

PETYA AFANASIEVPAF@CIKLUM.NETBETSSON TECHNOLOGIESCIKLUM

Recommended