- Payment Request Page
protected void Page_Load(object sender, EventArgs e)
{
try
{
string ATOMPaymentIP = ATOMPaymentIP // PROVIDED BY ATOM //203.114.240.183--Stage
string ATOMLogin = ATOMLogin // PROVIDED BY ATOM
string ATOMPassword = ATOMPassword // PROVIDED BY ATOM
string ATOMTransactionType = ATOMTransactionType // PROVIDED BY ATOM
string ATOMProductId = ATOMProductId // PROVIDED BY ATOM
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + ATOMPaymentIP + "/paynetz/epi/fts");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; CK={CVxk71YSfgiE6+6P6ftT7lWzblrdvMbRqavYf/6OcMIH8wfE6iK7TNkcwFAsxeChX7qRAlQhvPWso3KI6Jthvnvls9scl+OnAEhsgv+tuvs=}; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
int pos = Request.Url.AbsoluteUri.LastIndexOf('/');
// PAYMENT RESPONSE PAGE
string strURL = Request.Url.AbsoluteUri.Substring(0, pos + 1) + "PaymentResponseATOM.aspx";
string postData = "custacc=1234567890&login=" + ATOMLogin + "&pass=" + ATOMPassword + "&ttype=" + ATOMTransactionType + "&prodid=" + ATOMProductId + "&amt=" + PAYMENT AMOUNT + "&txncurr=INR&txnscamt=0&clientcode=" + CLIENT CODE(USER DEFINED) + "=&txnid=" + TRANSACTION ID + "&date=" + DateTime.Now.ToString("dd/mm/yyyy hh:mm:ss") + "&ru=" + strURL + "&udf1=" + FIRST NAME + "&udf2=" + EMAIL OF CUSTOMER + "&udf3=" + CUSTOMER MOBILE + "&udf4=" + CUSTOMER ADDRESS + "&udf5=" + EMI OPTION IF REQUIRED(BANK NAME) + "&udf6=" + EMI OPTION IF REQUIRED;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
request.AllowAutoRedirect = true;
request.Proxy.Credentials = CredentialCache.DefaultCredentials;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
XmlDocument objXML = new XmlDocument();
dataStream = response.GetResponseStream();
objXML.Load(dataStream);
string TxnId = objXML.DocumentElement.ChildNodes[0].ChildNodes[0].ChildNodes[2].InnerText;
string Token = objXML.DocumentElement.ChildNodes[0].ChildNodes[0].ChildNodes[3].InnerText;
string txnData = "ttype=NBFundTransfer&txnStage=1&tempTxnId=" + TxnId + "&token=" + Token;
dataStream.Close();
response.Close();
Response.Redirect("http://" + ATOMPaymentIP + "/paynetz/epi/fts?" + txnData);
}
catch (Exception ex)
{
HANDLE ERROR
}
} - Payment Response Page
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!IsPostBack)
{
NameValueCollection nvc = Request.Form;
string mmp_Transaction = nvc["mmp_txn"].ToString();
string PaymentStatus = nvc["f_code"].ToString();
string MerchantTransactionId = Request.Form["mer_txn"];
string Amount = Request.Form["amt"];
string Product = Request.Form["prod"];
string TransactionDate = Request.Form["date"];
string BankTransactionId = Request.Form["bank_txn"];
string ClientCode = Request.Form["clientcode"]; // Encrypted User Information
string BankName = Request.Form["bank_name"];
//User Details
string Udf1 = Request.Form["udf1"]; //First Name
string Udf2 = Request.Form["udf2"]; //Email
string Udf3 = Request.Form["udf3"]; //Mobile
string Udf4 = Request.Form["udf4"]; //Address
string Udf5 = Request.Form["udf5"]; //Bank Name
string Udf6 = Request.Form["udf6"]; //EMI Option
string strResponceIP = HttpContext.Current.Request.UserHostAddress;
string strRemarks = "txnId:" + MerchantTransactionId + ", txnStatus:" + PaymentStatus + ", amount:" + Amount + ", pgTxnId:" + mmp_Transaction + ", BankTransactionId:" + BankTransactionId + ", Udf1:" + Udf1 + ", Udf2:" + Udf2 + ", Udf3:" + Udf3 + ", Udf4:" + Udf4 + ", Udf5:" + Udf5 + ", Udf6:" + Udf6;
string ATOMPaymentIP = ConfigurationManager.AppSettings["ATOMPaymentIP"].ToString();//203.114.240.183--Stage
//Verify the Response Server
if (Request.UrlReferrer.Host.Trim() != ATOMPaymentIP)
{
// REDIRECT TO ERROR PAGE IF RESPONSE IP IS NOT VERIFIED
}
// CHECK THE PAYMENT STATUS AND VALIDATE THE TRANSACTION ID
if (PaymentStatus.ToUpper().Trim() == "OK" && transactionid.Trim()==MerchantTransactionId.Trim())
{
//"Transaction proceed successfully."
// UPDATE THE TRANSACTION STATUS IN DB
//
// CODE FOR UPDATE STATUS
//
//
// REDIRECT TO SUCCESS PAGE OR SHOW THE PAYMENT RESPONSE ON SAME PAGE
}
else
{
// PAYMENT STATUS IS NOT SUCCESS OR TRANSACTION ID IS NOT VERIFIED
// REDIRECT TO ERROR PAGE
}
}
}
catch (Exception ex)
{
// HANDLE ERROR
}
}
Showing posts with label ATOM. Show all posts
Showing posts with label ATOM. Show all posts
Wednesday, April 9, 2014
C# ATOM Payment Gateway Implementation
Subscribe to:
Posts (Atom)