Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

--------------------------------------------------

Project Report
--------------------------------------------------
Name: Yash Chavda (91900133010)
Shubham Savliya (91900133030)
Subject: Advance Java
Topic: Payment Integration Using Razorpay

--------------------------------------------------

1)What Is Razorpay?

Razorpay is a payment mode founded by the group of IIT Roorkee alumni.


It’s a kind of payment mode that combines more than one banking system.
It is an online payment system that can access all your credit, debit cards,
UPI, and popular mobile wallets. It makes nuisance-free payments in India
for others. In this payment system, different banks and wallets get
connected to it to make payments easier for everyone.

Razorpay is the in-between mode of payment which transact the payments


to the other banks which are connected and available in all kinds of banks,
credit, debit, wallets (Netflix, Airtel, Swiggy, and others). This platform of
digital payment makes a link between many other apps in which one of the
levels is crossed by Razorpay. Apart from the payment gateway, it provides
more other benefits to the customers like Razorpay provides where it
provides the merchant to automate bank transfer, invoices, and the account
for the payroll.
2)How Payment Integration Works On Websites?
3)Step For Implementing Payment Integration In Java Using Razorpay Api
Key

● Add dependency of Razorpay


● Create Order In Server
● Add CheckOut Option
● Store Field In Server
● Verify Payment Signature
● Verify Payment Status

4)Project File

● Index.jsp
○ Frontend part
○ CheckOut

● OrderCreation.java
○ Order Creation
○ Signature Verification Code
○ Payment Status

5)Code
● Index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<h3>Payment Gateway</h3>
<head>
<meta charset="UTF-8">
<style>
.bttnStyle{
background-color: lightblue;
border-radius: 0.50rem;
border: 1px solid transparent;
}
</style>
<script>
var xhttp = new XMLHttpRequest();
var RazorpayOrderId;
function CreateOrderID(){

xhttp.open("GET","http://localhost:8080/paymentservlet/OrderCreation",
false);
xhttp.send();
RazorpayOrderId = xhttp.responseText;
OpenCheckout();
}
</script>

<script src="https://checkout.razorpay.com/v1/checkout.js"></script>
<script>
function OpenCheckout(){
var options={
"key": "rzp_test_8tWYG1HWJRQus7", // Enter the Key ID
generated from the Dashboard
"amount":"100", // Amount is in currency subunits. Default
currency is INR. Hence, 50000 refers to 50000 paise "currency": "INR",
"name": "Acme Corp",
"description": "Test Transaction",
"image": "https://example.com/your_logo",
"order_id": RazorpayOrderId, //This is a sample Order ID. Pass the
`id` obtained in the response of Step 1
// "handler": function (response) {
// alert(response.razorpay_payment_id);
// alert(response.razorpay_order_id);
// alert(response.razorpay_signature);
// },

"callback_url":"http://localhost:8080/paymentservlet/OrderCreation",
"prefill": {
"name": "Chavda Yash",
"email": "yash42007@gmail.com",
"contact":"9574424242"
},
"notes" : {
"address": "Razorpay Corporate Office"
},
"theme": {
"color": "#3399cc"
}
};

var rzp1 = new Razorpay(options);


rzp1.on('payment. failed', function (response) {
alert(response.error.code);
alert(response.error.description);
alert(response.error.source);
alert(response.error.step);
alert(response.error.reason);
alert(response.error.metadata.order_id);

});
rzp1.open();
e.preventDefault();
}
</script>

<title>Razorpay Java</title>
</head>
<body>
<div id="order_id">

</div>
<button id="payButton" onclick="CreateOrderID()" class="bttnStyle">Pay
Now</button>

</body>
</html>

● OrderCreation.java

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.*;
import com.razorpay.*;
//Servlet implementation class OrderCreation
@WebServlet("/OrderCreation")
public class OrderCreation extends HttpServlet {
private static final long serialVersionUID = 1L;

public OrderCreation() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse


response) throws ServletException, IOException {
// TODO Auto-generated method stub
//order creation code
RazorpayClient client = null;
String orderId = null;
try {
client = new RazorpayClient("rzp_test_8tWYG1HWJRQus7",
"rgYic6FvJAWdoS23nxt34lJ0");
JSONObject options = new JSONObject();
options.put("amount", "500");
options.put("currency", "INR");
options.put("receipt", "zxr456");
options.put("payment_capture", true);
Order order = client.orders.create(options);
orderId = order.get("id");
} catch (RazorpayException e) {
e.printStackTrace();
}
// TODO Auto-generated catch block e.printStackTrace();
response.getWriter().append(orderId);
}

protected void doPost(HttpServletRequest request,


HttpServletResponse response) throws ServletException, IOException {
//signature varification code
System.out.println("hii");
RazorpayClient client = null;
try {
System.out.println("hello");
client = new RazorpayClient("rzp_test_8tWYG1HWJRQus7",
"rgYic6FvJAWdoS23nxt34lJ0");
JSONObject options = new JSONObject();
System.out.println("hello1");
options.put("razorpay_payment_id",
request.getParameter("razorpay_payment_id"));
System.out.println("hello2");
options.put("razorpay_order_id",
request.getParameter("razorpay_order_id"));
options.put("razorpay_signature",
request.getParameter("razorpay_signature"));
System.out.println("hello3");
boolean SigRes = Utils.verifyPaymentSignature(options,
"rgYic6FvJAWdoS23nxt34lJ0");
System.out.println("hello4");
if (SigRes) {
System.out.println("Done");
response.getWriter().append("Payment successful and Signature
Verified");
} else {
System.out.println("Not Done");
response.getWriter().append("Payment failed and Signature not
Verified");
}
} catch (RazorpayException e) {
System.out.println("why");
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

You might also like