using nms_sms; using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class pay : System.Web.UI.Page { public string action1 = string.Empty; public string hash1 = string.Empty; public string txnid1 = string.Empty; protected void Page_Load(object sender, EventArgs e) { try { key.Value = M_key.MERCHANT_KEY; if (!IsPostBack) { //bind_course_menu(); //bind_affiliation(); frmError.Visible = false; // error form if (Request.QueryString["v"] != null) { // string[] docs = Request.QueryString["v"].Split('~'); // string Id = docs[0]; // string Name = docs[1]; string Amount = Request.QueryString["v"].ToString(); amount.Text = Amount; firstname.Text = Request.QueryString["Name"].ToString(); phone.Text = Request.QueryString["mobile"].ToString(); email.Text = Request.QueryString["email"].ToString(); address1.Text = Request.QueryString["Address"].ToString(); // poojaid.Value = Id; reId.Value= Request.QueryString["reId"].ToString(); productinfo.Text = Request.QueryString["reg"].ToString(); //rollno.Text= Request.QueryString["Rollno"].ToString(); DirectPayment(); } } else { //frmError.Visible = true; } if (string.IsNullOrEmpty(Request.Form["hash"])) { submit.Visible = true; } else { submit.Visible = false; } } catch (Exception ex) { Response.Write("" + ex.Message + ""); } } public string Generatehash512(string text) { byte[] message = Encoding.UTF8.GetBytes(text); UnicodeEncoding UE = new UnicodeEncoding(); byte[] hashValue; SHA512Managed hashString = new SHA512Managed(); string hex = ""; hashValue = hashString.ComputeHash(message); foreach (byte x in hashValue) { hex += String.Format("{0:x2}", x); } return hex; } public void DirectPayment() { try { string[] hashVarsSeq; string hash_string = string.Empty; string idfor = Request.Form["amount"]; if (string.IsNullOrEmpty(Request.Form["txnid"])) // generating txnid { Random rnd = new Random(); string strHash = Generatehash512(rnd.ToString() + DateTime.Now); txnid1 = strHash.ToString().Substring(0, 20); } else { txnid1 = Request.Form["txnid"]; } if (string.IsNullOrEmpty(Request.Form["hash"])) // generating hash value { if ( string.IsNullOrEmpty(M_key.MERCHANT_KEY) || string.IsNullOrEmpty(txnid1) || string.IsNullOrEmpty(firstname.Text) || string.IsNullOrEmpty(email.Text) || string.IsNullOrEmpty(phone.Text) || string.IsNullOrEmpty(productinfo.Text) || string.IsNullOrEmpty(M_key.surl) || string.IsNullOrEmpty(M_key.furl) ) { //error frmError.Visible = true; return; } else { frmError.Visible = false; hashVarsSeq = M_key.hashSequence.Split('|'); // spliting hash sequence from config hash_string = ""; foreach (string hash_var in hashVarsSeq) { if (hash_var == "key") { hash_string = hash_string + M_key.MERCHANT_KEY; hash_string = hash_string + '|'; } else if (hash_var == "txnid") { hash_string = hash_string + txnid1; hash_string = hash_string + '|'; } else if (hash_var == "amount") { hash_string = hash_string + Convert.ToDecimal(amount.Text).ToString("g29"); hash_string = hash_string + '|'; } else if (hash_var == "udf1") { hash_string = hash_string + reId.Value; hash_string = hash_string + '|'; } else if (hash_var == "udf2") { hash_string = hash_string + phone.Text; hash_string = hash_string + '|'; } //else if (hash_var == "udf4") //{ // hash_string = hash_string + phone.Text; // hash_string = hash_string + '|'; //} //else if (hash_var == "udf2") //{ // hash_string = hash_string + reId.Value; // hash_string = hash_string + '|'; //} else if (hash_var == "productinfo") { hash_string = hash_string + productinfo.Text; hash_string = hash_string + '|'; } else if (hash_var == "firstname") { hash_string = hash_string + firstname.Text; hash_string = hash_string + '|'; } else if (hash_var == "email") { hash_string = hash_string + email.Text; hash_string = hash_string + '|'; } else { hash_string = hash_string + (Request.Form[hash_var] != null ? Request.Form[hash_var] : "");// isset if else hash_string = hash_string + '|'; } } hash_string += M_key.SALT;// appending SALT hash1 = Generatehash512(hash_string).ToLower(); //generating hash action1 = M_key.PAYU_BASE_URL + "/_payment";// setting URL } } else if (!string.IsNullOrEmpty(Request.Form["hash"])) { hash1 = Request.Form["hash"]; action1 = M_key.PAYU_BASE_URL + "/_payment"; } if (!string.IsNullOrEmpty(hash1)) { hash.Value = hash1; txnid.Value = txnid1; System.Collections.Hashtable data = new System.Collections.Hashtable(); // adding values in gash table for data post data.Add("hash", hash.Value); data.Add("txnid", txnid.Value); data.Add("key", key.Value); string AmountForm = Convert.ToDecimal(amount.Text).ToString("g29");// eliminating trailing zeros // Request.Form["amount"] = AmountForm; data.Add("amount", AmountForm); data.Add("firstname", firstname.Text.Trim()); data.Add("email", email.Text.Trim()); data.Add("phone", phone.Text.Trim()); data.Add("productinfo", productinfo.Text.Trim()); data.Add("surl", M_key.surl.Trim()); data.Add("furl", M_key.furl.Trim()); data.Add("lastname", "a"); data.Add("curl", M_key.curl.Trim()); data.Add("address1", ""); data.Add("address2", ""); data.Add("city", ""); data.Add("state", ""); data.Add("country", "India"); data.Add("zipcode", ""); data.Add("udf1", reId.Value); data.Add("udf2", phone.Text.Trim()); data.Add("udf3",""); data.Add("udf4", ""); data.Add("udf5", ""); data.Add("pg", ""); data.Add("service_provider", "payu_paisa"); string strForm = PreparePOSTForm(action1, data); Page.Controls.Add(new LiteralControl(strForm)); } else { //no hash } } catch (Exception ex) { Response.Write("" + ex.Message + ""); } } protected void Button1_Click(object sender, EventArgs e) { try { string[] hashVarsSeq; string hash_string = string.Empty; string idfor = Request.Form["amount"]; if (string.IsNullOrEmpty(Request.Form["txnid"])) // generating txnid { Random rnd = new Random(); string strHash = Generatehash512(rnd.ToString() + DateTime.Now); txnid1 = strHash.ToString().Substring(0, 20); } else { txnid1 = Request.Form["txnid"]; } if (string.IsNullOrEmpty(Request.Form["hash"])) // generating hash value { if ( string.IsNullOrEmpty(M_key.MERCHANT_KEY) || string.IsNullOrEmpty(txnid1) || string.IsNullOrEmpty(firstname.Text) || string.IsNullOrEmpty(email.Text) || string.IsNullOrEmpty(phone.Text) || string.IsNullOrEmpty(productinfo.Text) || string.IsNullOrEmpty(M_key.surl) || string.IsNullOrEmpty(M_key.furl) ) { //error frmError.Visible = true; return; } else { frmError.Visible = false; hashVarsSeq = M_key.hashSequence.Split('|'); // spliting hash sequence from config hash_string = ""; foreach (string hash_var in hashVarsSeq) { if (hash_var == "key") { hash_string = hash_string + M_key.MERCHANT_KEY; hash_string = hash_string + '|'; } else if (hash_var == "txnid") { hash_string = hash_string + txnid1; hash_string = hash_string + '|'; } else if (hash_var == "amount") { hash_string = hash_string + Convert.ToDecimal(amount.Text).ToString("g29"); hash_string = hash_string + '|'; } else if (hash_var == "udf1") { hash_string = hash_string + reId.Value; hash_string = hash_string + '|'; } else if (hash_var == "udf2") { hash_string = hash_string + phone.Text; hash_string = hash_string + '|'; } else if(hash_var == "productinfo") { hash_string = hash_string + productinfo.Text; hash_string = hash_string + '|'; } else if (hash_var == "firstname") { hash_string = hash_string + firstname.Text; hash_string = hash_string + '|'; } else if (hash_var == "email") { hash_string = hash_string + email.Text; hash_string = hash_string + '|'; } else { hash_string = hash_string + (Request.Form[hash_var] != null ? Request.Form[hash_var] : "");// isset if else hash_string = hash_string + '|'; } } hash_string += M_key.SALT;// appending SALT hash1 = Generatehash512(hash_string).ToLower(); //generating hash action1 = M_key.PAYU_BASE_URL + "/_payment";// setting URL } } else if (!string.IsNullOrEmpty(Request.Form["hash"])) { hash1 = Request.Form["hash"]; action1 = M_key.PAYU_BASE_URL + "/_payment"; } if (!string.IsNullOrEmpty(hash1)) { hash.Value = hash1; txnid.Value = txnid1; System.Collections.Hashtable data = new System.Collections.Hashtable(); // adding values in gash table for data post data.Add("hash", hash.Value); data.Add("txnid", txnid.Value); data.Add("key", key.Value); string AmountForm = Convert.ToDecimal(amount.Text).ToString("g29");// eliminating trailing zeros // Request.Form["amount"] = AmountForm; data.Add("amount", AmountForm); data.Add("firstname", firstname.Text.Trim()); data.Add("email", email.Text.Trim()); data.Add("phone", phone.Text.Trim()); data.Add("productinfo", productinfo.Text.Trim()); data.Add("surl", M_key.surl.Trim()); data.Add("furl", M_key.furl.Trim()); data.Add("lastname", "a"); data.Add("curl", M_key.curl.Trim()); data.Add("address1", address1.Text.Trim()); data.Add("address2", ""); data.Add("city", ""); data.Add("state", ""); data.Add("country", "India"); data.Add("zipcode", ""); data.Add("udf1", reId.Value); data.Add("udf2",phone.Text ); data.Add("udf3", ""); data.Add("udf4", ""); data.Add("udf5", ""); data.Add("pg", ""); data.Add("service_provider", "payu_paisa"); // // string strForm = PreparePOSTForm(action1, data); Page.Controls.Add(new LiteralControl(strForm)); } else { //no hash } } catch (Exception ex) { Response.Write("" + ex.Message + ""); } } private string PreparePOSTForm(string url, System.Collections.Hashtable data) // post form { //Set a name for the form string formID = "PostForm"; //Build the form using the specified data to be posted. StringBuilder strForm = new StringBuilder(); strForm.Append("
"); //Build the JavaScript which will do the Posting operation. StringBuilder strScript = new StringBuilder(); strScript.Append(""); //Return the form and the script concatenated. //(The order is important, Form then JavaScript) return strForm.ToString() + strScript.ToString(); } }