1) Payment Request Page ( ASPX )
<%@ Page
Language="C#"
AutoEventWireup="true"
CodeBehind="WebForm1.aspx.cs"
Inherits="WebApplication1.WebForm1"
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<script src="../js/jquery.min.js"
type="text/javascript"></script>
<script>
jQuery(document).ready(function () {
jQuery("#btnSubmit").click();
//Custom.init();
});
</script>
</head>
<body>
<form id="form1" runat="server">
<table style="display: none;">
<tr>
<td>
OrderId:
</td>
<td>
<asp:Label ID="lblOrderId"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
Amount:
</td>
<td>
<asp:Label ID="lblAmount"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
MerchantId:
</td>
<td>
<asp:Label ID="lblMerchantId"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
RedirectURL:
</td>
<td>
<asp:Label ID="lblRedirectUrl"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
BillingCustomerName:
</td>
<td>
<asp:Label ID="lblCustomerName"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
BillingCustomerAddress:
</td>
<td>
<asp:Label ID="lblCustAddr"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
BillingCustomerCountry:
</td>
<td>
<asp:Label ID="lblCustCountry" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
BillingCustomerTelephone:
</td>
<td>
<asp:Label ID="lblCustPhone"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
BillingCustomerEmail:
</td>
<td>
<asp:Label ID="lblCustEmail"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
BillingCustomerState:
</td>
<td>
<asp:Label ID="lblCustState"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
BillingCustomerCity:
</td>
<td>
<asp:Label ID="lblCustCity"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
ZipCode:
</td>
<td>
<asp:Label ID="lblZipCode"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
CustomerNotes:
</td>
<td>
<asp:Label ID="lblCustNotes"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
DeliveryCustomerName:
</td>
<td>
<asp:Label ID="lblDelCustName"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
DeliveryCustomerAddress:
</td>
<td>
<asp:Label ID="lblDelCustAddr"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
DeliveryCustomerCountry:
</td>
<td>
<asp:Label ID="lblDelCustCntry"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
DeliveryCustomerTelephone:
</td>
<td>
<asp:Label ID="lblDelCustTel"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
DeliveryCustomerState:
</td>
<td>
<asp:Label ID="lblDelCustState"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
DeliveryCustomerCity:
</td>
<td>
<asp:Label ID="lblDelCustCity" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
DeliveryCustomerZipCode:
</td>
<td>
<asp:Label ID="lblDelZipCode"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
MerchantParam:
</td>
<td>
<asp:Label ID="lblMerchantParam"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
</td>
<td>
<asp:Label ID="lblPayType"
runat="server"></asp:Label>
</td>
</tr>
<tr>
<td colspan="2">
<asp:Button ID="btnSubmit"
runat="server"
Text="Submit"
PostBackUrl="http://www.ccavenue.com/shopzone/cc_details.jsp"
/>
</td>
</tr>
<tr>
<td>
<asp:HiddenField ID="Merchant_Id"
runat="server"
/>
<asp:HiddenField ID="encRequest"
runat="server"
/>
</td>
</tr>
</table>
<center>
<asp:Label ID="lb_Message"
Style="color: Red; display: block; margin-top: 35px;"
runat="server"
Text=""></asp:Label>
</center>
</form>
</body>
</html>
1) Payment Request Page ( ASPX.CS )
CCACrypto chkSum = new
CCACrypto();
string MerchantId = ccAvenueMerchantId // PROVIDED By ccAvenue
string WorkingKey = ccWorkingKey //
Provided By ccAvenue
protected void Page_Load(object sender, EventArgs
e)
{
if (IsPostBack == false)
{
//PAYMENT RESPONSE PAGE
string ResponseUrl = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) +
HttpContext.Current.Request.ApplicationPath
+ "Payment/PaymentResponse.aspx";
//Get Payment Details from Session
lblOrderId.Text = TRANSACTION ID
lblAmount.Text = PAYMENT AMOUNT
lblMerchantId.Text = MerchantId;
lblRedirectUrl.Text = ResponseUrl;
lblCustomerName.Text = CUSTOMER NAME
lblCustAddr.Text = CUSTOMER ADDRESS
lblCustCountry.Text = CUSTOMER COUNTRY
lblCustPhone.Text = CUSTOMER PHONE
lblCustEmail.Text = CUSTOMER EMAIL
lblCustState.Text = CUSTOMER STATE
lblCustCity.Text
= CUSTOMER CITY
lblZipCode.Text = CUSTOMER ZIP
lblCustNotes.Text = CUSTOMER NOTES
lblDelCustName.Text = CUSTOMER DELIVERY NAME
lblDelCustAddr.Text = CUSTOMER DELIVERY ADDRESS
lblDelCustCntry.Text = CUSTOMER DELIVERY COUNTRY
lblDelCustTel.Text = CUSTOMER DELIVERY PHONE
lblDelCustState.Text = CUSTOMER DELIVERY STATE
lblDelCustCity.Text = CUSTOMER DELIVERY CITY
lblDelZipCode.Text = CUSTOMER DELIVERY ZIP
lblMerchantParam.Text = MERCHANT EXTRA PARAMETERS
lblPayType.Text = PAYMENT TYPE(Credit Card/ Debit Card/ Net Banking)
string Res = chkSum.getchecksum(MerchantId,
lblOrderId.Text, objPaymentDetails.PaymentAmount.ToString(),
ResponseUrl, WorkingKey);
string billingPageHeading = "";
string ToEncrypt = "Order_Id="
+ lblOrderId.Text + "&Amount="
+ objPaymentDetails.PaymentAmount + "&Merchant_Id="
+ MerchantId + "&Redirect_Url="
+ ResponseUrl +
"&Checksum="
+ Res + "&billing_cust_name="
+ objPaymentDetails.Cust_Name + "&billing_cust_address="
+ objPaymentDetails.Cust_Add + "&billing_cust_country="
+ lblCustCountry.Text +
"&billing_cust_tel=" +
objPaymentDetails.Cust_Mobile + "&billing_cust_email="
+ objPaymentDetails.Cust_Email + "&billing_cust_state="
+ lblCustState.Text +
"&billing_cust_city=" +
lblCustCity.Text + "&billing_zip_code="
+ lblZipCode.Text + "&billing_cust_notes="
+ lblCustNotes.Text +
"&delivery_cust_name=" +
objPaymentDetails.Cust_Name + "&delivery_cust_address="
+ objPaymentDetails.Cust_Add + "&delivery_cust_country="
+ lblDelCustCntry.Text +
"&delivery_cust_tel=" +
objPaymentDetails.Cust_Mobile + "&delivery_cust_state="
+ lblDelCustState.Text + "&delivery_cust_city="
+ lblDelCustCity.Text +
"&delivery_zip_code=" +
lblDelZipCode.Text + "&Merchant_Param="
+ lblMerchantParam.Text + "&billingPageHeading="
+ billingPageHeading + "&payType="
+ lblPayType.Text;
string Encrypted;
Encrypted = chkSum.Encrypt(ToEncrypt, WorkingKey);
Merchant_Id.Value = MerchantId;
encRequest.Value = Encrypted;
lb_Message.Text = "Wait... Redirecting
to Payment Gateway.";
}
else
{
lb_Message.Text
= "Error on Payment Gateway. Kindly try
again.";
}
}
}
2) Payment Response Page
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack == false)
{
string WorkingKey = ccWorkingKey // PROVIDED BY ccAvenue
CCACrypto
func = new CCACrypto();
string encResponse = Request.Form.ToString();
NameValueCollection Params = new
NameValueCollection();
string[] segments = encResponse.Split('&');
foreach (string seg in segments)
{
string[] parts = seg.Split('=');
if (parts.Length > 0)
{
string Key = parts[0].Trim();
string Value = parts[1].Trim();
Params.Add(Key, Value);
}
}
try
{
//Verify with ccAvenue
string strVerify = func.verifychecksum(Params["Merchant_Id"].ToString(), Params["Order_Id"].ToString(), Params["Amount"].ToString(), Params["AuthDesc"].ToString(), WorkingKey,
Params["Checksum"].ToString());
if (strVerify.ToUpper() == "TRUE")
{
if (objPaymentDetails != null)
{
// UPDATE THE PAYMENT STATUS IN DB
//Update the Payment Status in DB
//if (Params["AuthDesc"].ToString().Trim() ==
"Y")
// SUCCESS
//else
// FAIL
// REDIRECT TO SUCCESS PAGE OR SHOW THE PAYMENT RESPONSE ON
SAME PAGE
}
else
{
// PAYMENT IS FAIL
// REDIRECT TO ERROR PAGE
}
}
else
{
// PAYMENT VERIFICATION IS FAILED
// REDIRECT TO ERROR PAGE
}
}
catch (Exception ex)
{
// ERROR IN PROCESSING
// REDIRECT TO ERROR PAGE
}
}
}
No comments:
Post a Comment