<!DOCTYPE html>
<html>
<head>
<title>Cashfree-PG TestForm</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<br>
<br>
<div class="container fluid">
<h1 align="center">Cashfree PG Test Form</h1>
<div class="alert alert-info">
<strong>Note: </strong> Please insert your <span class="label label-info">Secret_key</span> in request and response files.
</div>
<div class="alert alert-info">
<strong>Note: </strong> Please change <span class="label label-info">$mode</span> to "TEST" in request.php if using Test appId/secretKey credentials. Access test credentials <a href="https://test.gocashfree.com/merchant/pg#api-key">here</a> and production credentials <a href="https://merchant.cashfree.com/merchant/pg#api-key">here</a>.
</div>
<form id="redirectForm" method="post" action="request.php">
<div class="form-group">
<label>App ID:</label><br>
<input class="form-control" name="appId" placeholder="Enter App ID here (Ex. 123456a7890bc123defg4567)"/>
</div>
<div class="form-group">
<label>Order ID:</label><br>
<input class="form-control" name="orderId" placeholder="Enter Order ID here (Ex. order00001)"/>
</div>
<div class="form-group">
<label>Order Amount:</label><br>
<input class="form-control" name="orderAmount" placeholder="Enter Order Amount here (Ex. 100)"/>
</div>
<div class="form-group">
<label>Order Currency:</label><br>
<input class="form-control" name="orderCurrency" value="INR" placeholder="Enter Currency here (Ex. INR)"/>
</div>
<div class="form-group">
<label>Order Note:</label><br>
<input class="form-control" name="orderNote" placeholder="Enter Order Note here (Ex. Test order)"/>
</div>
<div class="form-group">
<label>Name:</label><br>
<input class="form-control" name="customerName" placeholder="Enter your name here (Ex. John Doe)"/>
</div>
<div class="form-group">
<label>Email:</label><br>
<input class="form-control" name="customerEmail" placeholder="Enter your email address here (Ex. Johndoe@test.com)"/>
</div>
<div class="form-group">
<label>Phone:</label><br>
<input class="form-control" name="customerPhone" placeholder="Enter your phone number here (Ex. 9999999999)"/>
</div>
<div class="form-group">
<label>Return URL:</label><br>
<input class="form-control" name="returnUrl" placeholder="Enter the URL to which customer will be redirected (Ex. www.example.com)"/>
</div>
<div class="form-group">
<label>Notify URL:</label><br>
<input class="form-control" name="notifyUrl" placeholder="Enter the URL to get server notificaitons (Ex. www.example.com)"/>
</div>
<button type="submit" class="btn btn-primary btn-block" value="Pay">Submit</button>
<br>
<br>
</form>
</div>
<br>
<br>
<br>
<br>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Cashfree - Signature Generator</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body onload="document.frm1.submit()">
<?php
$mode = "PROD"; //<------------ Change to TEST for test server, PROD for production-->
extract($_POST);
$secretKey = "f752ab8ef692fdbb444a73193e2e781145efc629";
$postData = array(
"appId" => $appId,
"orderId" => $orderId,
"orderAmount" => $orderAmount,
"orderCurrency" => $orderCurrency,
"orderNote" => $orderNote,
"customerName" => $customerName,
"customerPhone" => $customerPhone,
"customerEmail" => $customerEmail,
"returnUrl" => $returnUrl,
"notifyUrl" => $notifyUrl,
);
ksort($postData);
$signatureData = "";
foreach ($postData as $key => $value){
$signatureData .= $key.$value;
}
$signature = hash_hmac('sha256', $signatureData, $secretKey,true);
$signature = base64_encode($signature);
if ($mode == "TEST") {
$url = "https://www.cashfree.com/checkout/post/submit";
} else {
$url = "https://test.cashfree.com/billpay/checkout/post/submit";
}
?>
<form action="<?php echo $url; ?>" name="frm1" method="post">
<p>Please wait.......</p>
<input type="hidden" name="signature" value='<?php echo $signature; ?>'/>
<input type="hidden" name="orderNote" value='<?php echo $orderNote; ?>'/>
<input type="hidden" name="orderCurrency" value='<?php echo $orderCurrency; ?>'/>
<input type="hidden" name="customerName" value='<?php echo $customerName; ?>'/>
<input type="hidden" name="customerEmail" value='<?php echo $customerEmail; ?>'/>
<input type="hidden" name="customerPhone" value='<?php echo $customerPhone; ?>'/>
<input type="hidden" name="orderAmount" value='<?php echo $orderAmount; ?>'/>
<input type ="hidden" name="notifyUrl" value='<?php echo $notifyUrl; ?>'/>
<input type ="hidden" name="returnUrl" value='<?php echo $returnUrl; ?>'/>
<input type="hidden" name="appId" value='<?php echo $appId; ?>'/>
<input type="hidden" name="orderId" value='<?php echo $orderId; ?>'/>
</form>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Cashfree - PG Response Details</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<h1 align="center">PG Response</h1>
<?php
$secretkey = "f752ab8ef692fdbb444a73193e2e781145efc629";
$orderId = $_POST["orderId"];
$orderAmount = $_POST["orderAmount"];
$referenceId = $_POST["referenceId"];
$txStatus = $_POST["txStatus"];
$paymentMode = $_POST["paymentMode"];
$txMsg = $_POST["txMsg"];
$txTime = $_POST["txTime"];
$signature = $_POST["signature"];
$data = $orderId.$orderAmount.$referenceId.$txStatus.$paymentMode.$txMsg.$txTime;
$hash_hmac = hash_hmac('sha256', $data, $secretkey, true) ;
$computedSignature = base64_encode($hash_hmac);
if ($signature == $computedSignature) {
?>
<div class="container">
<div class="panel panel-success">
<div class="panel-heading">Signature Verification Successful</div>
<div class="panel-body">
<!-- <div class="container"> -->
<table class="table table-hover">
<tbody>
<tr>
<td>Order ID</td>
<td><?php echo $orderId; ?></td>
</tr>
<tr>
<td>Order Amount</td>
<td><?php echo $orderAmount; ?></td>
</tr>
<tr>
<td>Reference ID</td>
<td><?php echo $referenceId; ?></td>
</tr>
<tr>
<td>Transaction Status</td>
<td><?php echo $txStatus; ?></td>
</tr>
<tr>
<td>Payment Mode </td>
<td><?php echo $paymentMode; ?></td>
</tr>
<tr>
<td>Message</td>
<td><?php echo $txMsg; ?></td>
</tr>
<tr>
<td>Transaction Time</td>
<td><?php echo $txTime; ?></td>
</tr>
</tbody>
</table>
<!-- </div> -->
</div>
</div>
</div>
<?php
} else {
?>
<div class="container">
<div class="panel panel-danger">
<div class="panel-heading">Signature Verification failed</div>
<div class="panel-body">
<!-- <div class="container"> -->
<table class="table table-hover">
<tbody>
<tr>
<td>Order ID</td>
<td><?php echo $orderId; ?></td>
</tr>
<tr>
<td>Order Amount</td>
<td><?php echo $orderAmount; ?></td>
</tr>
<tr>
<td>Reference ID</td>
<td><?php echo $referenceId; ?></td>
</tr>
<tr>
<td>Transaction Status</td>
<td><?php echo $txStatus; ?></td>
</tr>
<tr>
<td>Payment Mode </td>
<td><?php echo $paymentMode; ?></td>
</tr>
<tr>
<td>Message</td>
<td><?php echo $txMsg; ?></td>
</tr>
<tr>
<td>Transaction Time</td>
<td><?php echo $txTime; ?></td>
</tr>
</tbody>
</table>
<!-- </div> -->
</div>
</div>
</div>
<?php
}
?>
</body>
</html>