Payment Gateway
Payment Gateway
PROJECT REPORT
ON
“PAYMENT GATEWAY”
Submitted By
Guided By
of
of
(Autonomous College),Sangamner
Date: / /
CERTIFICATE
This certificate is awarded to Miss Ghule Kanchan Ashok and Miss Kolhe Pratiksha
Ravindra of M.Sc.-I I(Computer Science) in appreciation of her meritorious performance as
practical requirement of M.Sc. Computer Science by Savitribai Phule Pune University during
academic Year 2021-2022.
Sr.No. Title
1. Acknowledgement.
2. Abstract
3. Introduction
• problem statement
• purpose/objective and goals
• project scope and limitations
4. System Analysis
• Existing systems
• scope and limitations of existing systems Preliminary Investigation
• Feasibility Study:
1) Operational Feasibility
2) Technical Feasibility 3) Economical Feasibility
• Requirement Analysis.
1) Functional requirements
2) Performance requirements
5. System Design
6. Implementation details –
• Software specifications
• hardware specifications
A few words of gratitude to be inserted with project “Payment Gateway”. It is our earnest
duty to express our thanks to all those who contributed directly or indirectly to our project.
Firstly we would like to thank S. N. Arts, D. J. Malpani Commerce & B. N. Sarada
Science College(Autonomous College), Sangamner and Department of Computer Science
for giving us an opportunity. Thanks to Prof. Laddha R. S. Vice Principal ,Head of
Department for his encouragement and valuable guidance.
We would like to thank Miss Gite D.P. ,Miss Panchariya S.O. who initiated us to complete
this project and guided us timely. It’s our privilege to express our gratitude to all staff members
& non-Teaching Staff members for their excellent suggestions and active co-ordination.
And last but not least, we would like to thank all our friends for their support and the timely
help.
Yours Sincerely,
Miss Ghule Kanchan Ashok.
Miss Kolhe Pratiksha Ravindra.
M.Sc.(Computer Science)
ABSTRACT
As online transactions continue to increase and become a significant part of the global
economy, the ability to accept payments online becomes more important for businesses and
human beings. In today’s world humans are busy in their day-to-day life, so we develop a
payment gateway which helps users to pay and accepts payments online.
We develop a payment gateway which provide various facilities to users Such as pay
your bills, recharge your mobile, send or receive money from your friends and family in one tap.
This system provides security to user’s data. In this system we design admin panel and user
panel. This system easy to use and users can easily pay their payments online.
The primary benefit of this project is convenient. For instance using this payment
gateway system users can pay conveniently and saves their valuable time.
INTRODUCTION
A payment gateway is an online payments’ service that, when integrated with the e-
commerce platform, is devised as the channel to make and receive payments. The procedure to
receive payments includes the customer requiring to fill in some details, like credit/debit card
number, expiry date, and CVV. The main role of an online payment gateway is to approve the
transaction process between merchant and customer.
It plays a vital role in the online transaction process and authorizes transactions between
merchants and customers. It helps the e-commerce platform aggravate its existence with ease of
payments to offer to its customers. We propose a secure online payment system where a
customer’s payment information is directly sent to a payment gateway and a merchant does not
obtain a customer’s payment information, not even in encrypted/hashed form.
o Motivation –
Life is changing very fast, people used to be more traditional but now they have
become more professional. They are ready to spent money in order to live a convenient
life. Taking this as an opportunity, We have created “Payment Gateway” System.
o Problem Statement –
When a customer’s payment information is sent to an online merchant, the
merchant has the capability to obtain the customer’s payment information like credit card
number, credit card issuer, expiration date, last four digits of a credit card, and card
holder’s name from a payment gateway.
Frauds that occur on the Internet today are mostly from hackers, fraud merchants,
spammers, phishers, malware, spyware and data thieves who place attacks on networks
and personal computers to corrupt and steal information. Hence, to avoid these risks, it is
desirable not to send a customer’s payment information to a merchant at all, because it
creates the possibilities of security breach and information leaks from a merchant’s side.
o Purpose/Objective and Goals-
Purpose/Objective –
Reduce the risks and costs of handling cash at the individual level. Reduce
costs of managing cash in the economy.
Improve the ease of conducting card/digital transactions for an
individual.
Goals –
The goals of payment gateway system is to ensure the security, reliability
and performance of a payment gateway.
o project scope and limitations -
This system can take a good market as it is usable by anyone who are willing to
manage their payments and aiming to make payments securely by using online
platforms. There is not any range criteria or any kind of profession or gender are
focused, it will used hugely.
SYSTEM ANALYSIS
o Existing Systems –
In existing system when a customer’s payment information is sent to an
online merchant, the merchant has the capability to obtain the customer’s payment
information like credit card number, credit card issuer, expiration date, last four digits of
a credit card, and card holder’s name from a payment gateway. So the frauds increasingly
occurs during the payments using this system.
o Preliminary Investigation
Preliminary investigation implies that which methods are applies to make Research Company
and by which means information is collected regarding product or about us.
Generally we can use following methods for collecting the information.
These are :
1) Interview
2) Observation
3) Record Inspection or view
All the methods are equally important.
1) Interview
We collect the information from the peoples about their problems during the payments.
We plan in advance the type of questions we were going to ask to the people.
In an interview we ask some questions to parents and teacher like .
1) How much do you earn per month?
2) what problems they face during their day to day payments?
3) Do you use any tools to track your expenses?
4) Can this system is better or not?
5) Can user has any security?
6) Do you think using such systems may be beneficial for their payments?
The whole system investigation part done by taking interview of the concern people by taking
their valuable suggestion, guidance regarding system.
2)Observation-
We observe that the user can pay their payments efficiently using this System.
o Feasibility Study
1) Technical feasibility study-
-This developed system has technically feasible because the technology needed for the proposed
system is available i.e. php software, php editors are easily available.
-The proposed system is integrated within the organization is easy.
- The proposed system needs no new equipment installed at the user end
- Technically this system in very much safe and sound.
The system does not need extra hard ware to run the given project.
2) Economic feasibility study-
The proposed system is economically feasible because-
The cost of the project is not more at organization level. If the organization has to be identify the
financial benefits and cost associated with the development of project is big difference then the
project will more feasible.
Implementation details
Software Requirements :
Description Type
Operating Application Windows
Language PHP
Database MYSQL
IDE VS CODE
Front End HTML,CSS,Bootstrap
Framework LARAVEL
Hardware Requirements :
Number Description
2 PC with 2 GB RAM.
System Design
o Design Constraint :
1 M
Admin Manages Op. Manager
B
1 1
M 1
adds
User
1 M
M
requests API
M
M
sends Reports FeeList
Data flow Diagram:
User Admin
Admin
Admin details
Admin 0.0 records
Admin
Information Record
user
User details User
Information records User Record
Operation
Operation
Manager
details
Payment
Gateway
Operation
Manager Manager
Information Record
Company details
Company Company
Information Record
-userName -eId
- userName
- userName
-password
- password #eType
*…* 1…* 1…* *…*
- password
#eAmount
#date
+ addDomain() + Login() +addAPI()
Handle by Handles
+removeDomain() +generateReport() +removeAPI()
+updateExpense()
1…*
1…*
Handle
generate *…*
*…* s
Customer Reports
#contact #client
# #amount
+requestAPI()
#amount
+requestDomain()
+viewReport()
+payment()
Object Diagram:
-eId:int
- username:varchar #userName:varcha
*…* 1…* r 1…* *…* #eType:varchar
- password:varchar
-password:varchar #eAmount:double
#date:date
Handle by Handles
1…*
*…* Handles
*…*
*…* Generate
D:Domain
C:Customer R1:Reports
#date:date
#fName:varchar
#incomeId:int #cId:int
#login_attempt:int 1…* *…*
# lname:varchar
#dat #cName:varchar
#amount:double
#contact:int
#amount:double
#address:varchar
-userName:varchar
-password:varchar
Usecase Diagram
Payment Gateway
Visit Website
Create Account
Login
<<include>>
Authentication
Select Payment
Request API
Add Domain
Make a Payment
Generate Report
:Operation manager
:Reseller View Report
Activity Diagram
False
True Login
Request API
Create Account
Add API
Request Domain
Add Domain
Make a Payment
Generate Report
View Report
Sequence Diagram
login
success
login
success
login
success
login
success
Request Domain
Add Domain
Request API
Add API
Make a payment
success
Generate Report
View Report
Collaboration Diagram :
9.generateReport()
:Admin :Customer
1.login(),3.checkAccount()
8.payment(),10.viewReport()
7.addAPI()
2.Manage() 6.requestAPI()
5.addDomai
n()
4.requestDo
main()
:Reseller :Operation M
Component Diagram
Admin.
php
Customer.
phpcC
Payment Reseller.
Gateway php
Database
System
OpManag
er.
php
C .
Company
.php
php
Data Tables :
.nav {
background-color: #191960;
}
.navs {
background-color: #191968;
}
.box_overlap {
position: absolute;
z-index: 0;
top: 30%;
padding-bottom: 0px;
/* left: 219px;
z-index: 499;
top: 27%;
left: 10px;
*/
}
.card {
display: flex;
width: 90%;
height: 20%;
/* margin-top: 7%; */
flex-direction: column;
background-color: white;
border: grey transparent;
}
img.image {
position: relative;
height: 52%;
width: 71%;
}
.col-md-3 {
flex: 0 0 auto;
width: 20%;
}
p {
margin-top: 0;
margin-bottom: 0rem;
}
</style>
<body>
<!-- JavaScript Bundle with Popper -->
<script
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js
"
integrity="sha384-
ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
crossorigin="anonymous">
</script>
<li><a class="dropdown-item"
href="#">Switching</a></li>
<li><a class="dropdown-item" href="#">Userwise API
Switch</a></li>
<li><a class="dropdown-item" href="#">User Switch
Details</a></li>
<li><a class="dropdown-item">Denomination Switch</a>
</li>
<li><a class="dropdown-item">Denomination Switch
Report</a> </li>
<li><a class="dropdown-item">API Switch</a></li>
</ul>
</li> {{-- Api --}}
</ul>
<form class="d-flex ms-3 mt-3">
<input class="form-control me-2" type="search"
placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success text-light"
type="submit">Search</button>
</form>
</div>
</div>
</nav>
<nav class="navs navbar-expand-lg navbar-light">
<ul class="navbar-nav me-auto mb-2 mb-lg-0 d-flex justify-content-
between">
<div>
<h4>
<a class="nav-link active text-light mb-5 ms-3" aria-
current="page" href="#">
<i class="fa fa-home" style="color:white !important;"
aria-hidden="true"> Dashboard</i>
</a>
</h4>
</div>
<div>
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<a class="nav-link active text-light me-3 fs-5" aria-
current="page" href="/welcome">Home</a>
<a class="nav-link active text-light me-5 fs-5" aria-
current="page" href="/welcome">Dashboard</a>
</ul>
</div>
</ul>
<div class="card box_overlap ms-5 mt-3">
<div class="row">
<div class="col-6">
<p class="fs-4 mt-3 text-center fw-bold text-danger">Recharge
Pending</p>
</div>
<div class="col-6 ">
<img class="pull-right image"
src="https://encrypted-
tbn0.gstatic.com/images?q=tbn:ANd9GcRTSJDbLbxhdl9QjTCYeriQcaGBCUaDHV0tVg&usqp=CAU
">
</div>
</div>
</div>
</nav>
<section class="content">
<div class="container-fluid">
<div class="row g-0">
<div class="col-md-3 mt-5 pt-5 ">
<div class="row g-0">
<div class="col-md-6 ">
<div style="height:100; width:130" class="card
border-info bg-info">
<p class="fs-6 fw-bold text-light mt-3 text-
center">Transaction </p>
<p class="fs-4 fw-bold text-light text-center">
History
</p>
</div>
</div>
<div class="col-md-3 ">
<div style="height:100; width:80" class="card border-
info text-center bg-muted">
<i class="far fa-file-alt mt-4 fa-3x"></i>
</div>
</div>
</div>
</div>
<div class="col-md-3 mt-5 pt-5">
<div class="row g-0">
<div class="col-md-6 ">
<div style="height:100; width:130" class="card
border-danger bg-danger">
<p class="fs-6 fw-bold text-light mt-3 text-
center">Account </p>
<p class="fs-4 fw-bold text-light text-center">
Ledger
</p>
</div>
</div>
<div class="col-md-3 ">
<div style="height:100; width:80" class="card border-
danger text-center bg-muted">
<i class="far fa-chart-bar mt-4 fa-3x"></i>
</div>
</div>
</div>
</div>
<div class="col-md-3 mt-5 pt-5">
<div class="row g-0">
<div class="col-md-6 ">
<div style="height:100; width:130" class="card
border-warning bg-warning">
<p class="fs-6 fw-bold text-light mt-3 text-
center">Admin </p>
<p class="fs-4 fw-bold text-light text-center">
Ledger
</p>
</div>
</div>
<div class="col-md-3 ">
<div style="height:100; width:80" class="card border-
warning text-center bg-muted">
<i class="fas fa-shopping-basket mt-4 fa-3x"></i>
</div>
</div>
</div>
</div>
<div class="col-md-3 mt-5 pt-5">
<div class="row g-0">
<div class="col-md-6 ">
<div style="height:100; width:130" class="card
border-primary bg-primary">
<p class="fs-6 fw-bold text-light mt-3 text-
center">Sales </p>
<p class="fs-4 fw-bold text-light text-center">
Summary
</p>
</div>
</div>
<div class="col-md-3 ">
<div style="height:100; width:80" class="card border-
primary text-center bg-muted">
<i class="fas fa-book-open mt-4 fa-3x"></i>
</div>
</div>
</div>
</div>
<div class="col-md-3 mt-5 pt-5">
<div class="row g-0">
<div class="col-md-6 ">
<div style="height:100; width:130" class="card
border-success bg-success">
<p class="fs-6 fw-bold text-light mt-3 text-
center">DMI </p>
<p class="fs-4 fw-bold text-light text-center">
Report
</p>
</div>
</div>
<div class="col-md-3 ">
<div style="height:100; width:80" class="card border-
success text-center bg-muted">
<i class="fas fa-rupee-sign mt-4 fa-3x"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</body>
MemberController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\member;
$dataArray = array(
"name" => $req->name,
"gender" => $req->gender,
"email" => $req->email,
"mobile" => $req->mobile,
"whatsapp" => $req->whatsapp,
"address" => $req->address,
"password" => $req->password,
"pincode" => $req->pincode
);
$mem = member::create($dataArray);
if(!is_null($mem)) {
return back()->with("success", "Success! Registration completed");
}
else {
return back()->with("failed", "Alert! Failed to register");
}
}
}
Reseller.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\MustVerifyEmail;
class reseller extends Model implements MustVerifyEmail
{
use HasFactory;
use Notifiable;
public $timestamps=false;
protected $fillable = [
'name', 'email', 'password', 'mobile',
'address','whatsapp','pincode','gender'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
payment.blade.php
<html>
<body>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css"
rel="stylesheet" id="bootstrap-css">
<script
src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<style>
.submit-button {
margin-top: 10px;
}
</style>
<div class="container">
<div class='row'>
<div class='col-md-4'></div>
<div class='col-md-4'>
<script src='https://js.stripe.com/v2/'
type='text/javascript'></script>
<form accept-charset="UTF-8" action="/" class="require-validation"
data-cc-on-file="false" data-stripe-publishable-
key="pk_test_51KGxWASDvDkZHAozxQbQarSZ8L9BYFencC2RJz8gHXfR6J35ZbOkL2fHwZ7POVt2ITK
BMHurdS6IuTeiemXZhgi600VGsYHKVR" id="payment-form" method="post"><div
style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden"
value="✓" /><input name="_method" type="hidden" value="PUT" /><input
name="authenticity_token" type="hidden"
value="qLZ9cScer7ZxqulsUWazw4x3cSEzv899SP/7ThPCOV8=" /></div>
<div class='form-row'>
<div class='col-xs-12 form-group required'>
<label class='control-label'>Name on Card</label>
<input class='form-control' size='4' type='text'>
</div>
</div>
<div class='form-row'>
<div class='col-xs-12 form-group card required'>
<label class='control-label'>Card Number</label>
<input autocomplete='off' class='form-control card-number'
size='20' type='text'>
</div>
</div>
<div class='form-row'>
<div class='col-xs-4 form-group cvc required'>
<label class='control-label'>CVC</label>
<input autocomplete='off' class='form-control card-cvc'
placeholder='ex. 311' size='4' type='text'>
</div>
<div class='col-xs-4 form-group expiration required'>
<label class='control-label'>Expiration</label>
<input class='form-control card-expiry-month' placeholder='MM'
size='2' type='text'>
</div>
<div class='col-xs-4 form-group expiration required'>
<label class='control-label'> </label>
<input class='form-control card-expiry-year' placeholder='YYYY'
size='4' type='text'>
</div>
</div>
<div class='form-row'>
<div class='col-md-12'>
<div class='form-control total btn btn-info'>
Total:
<span class='amount'>$300</span>
</div>
</div>
</div>
<div class='form-row'>
<div class='col-md-12 form-group'>
<button class='form-control btn btn-primary submit-button'
type='submit'>Pay »</button>
</div>
</div>
<div class='form-row'>
<div class='col-md-12 error form-group hide'>
<div class='alert-danger alert'>
Please correct the errors and try again.
</div>
</div>
</div>
</form>
</div>
<div class='col-md-4'></div>
</div>
</div>
<script>
$(function() {
$('form.require-validation').bind('submit', function(e) {
var $form = $(e.target).closest('form'),
inputSelector = ['input[type=email]', 'input[type=password]',
'input[type=text]', 'input[type=file]',
'textarea'].join(', '),
$inputs = $form.find('.required').find(inputSelector),
$errorMessage = $form.find('div.error'),
valid = true;
$errorMessage.addClass('hide');
$('.has-error').removeClass('has-error');
$inputs.each(function(i, el) {
var $input = $(el);
if ($input.val() === '') {
$input.parent().addClass('has-error');
$errorMessage.removeClass('hide');
e.preventDefault(); // cancel on first error
}
});
});
});
$(function() {
var $form = $("#payment-form");
$form.on('submit', function(e) {
if (!$form.data('cc-on-file')) {
e.preventDefault();
Stripe.setPublishableKey($form.data('stripe-publishable-key'));
Stripe.createToken({
number: $('.card-number').val(),
cvc: $('.card-cvc').val(),
exp_month: $('.card-expiry-month').val(),
exp_year: $('.card-expiry-year').val()
}, stripeResponseHandler);
}
});
Admin Panel :
User Panel :
Testing
Test Plan –
Black Box Testing or Data Validation Test Cases –
Black-box testing is a method of software testing that examines the functionality of an
application without peering into its internal structures or workings. This method of test can be
applied virtually to every level of software testing: unit, integration, system and acceptance. It
typically comprises most if not all higher level testing, but can also dominate unit testing as well.
Recommendation -
Online Payment Gateway System is usable by anyone who are willing to manage their
payments and aiming to save for the future investments. This system has no range criteria or any
kind of profession or gender are focused so it will used hugely by any other person.
Advantages
Saves Time.
Helps users to pay their bills Online.
Easy to use.
Future Enhancement
Currently we are working on these project we try to provide email authentication to user
in this system. In future we can develop an application using this system.
https://www.tutorialspoint.com/index.html
https://www.javatpoint.com
https://www.w3schools.com
https://html.com