[ad_1]
ひぃそこ!! 私はこのような状況にありました.txnidとハッシュ値フィールドのような支払いゲートウェイの非表示フィールドがあるasp.net Webページがあります.送信ボタンをクリックすると、txnidとハッシュコードを提供するはずですが、何も提供されません.以前はasp.netにアラートボックスを配置して出力を表示していましたが、ボタンを最初にクリックするとこれらのフィールドは空で、ボタンを2回クリックするとこれらのフィールドには値があり、すべて正常に機能しています..助けてください!!!
aspx コード:-
<form class="RegForm" runat="server" method="post" name="Registration.aspx" id="form1" accept-charset="utf-8" > <div id ="frmError" runat="server"> <span style="color:red">Please fill all mandatory fields.</span> <br/> <br/> </div> <!---important field dont remove --> <input type="hidden" runat="server" id="key" name="key" /> <input type="hidden" runat="server" id="hash" name="hash" /> <input type="hidden" runat="server" id="txnid" name="txnid" /> <input type="hidden" runat="server" id="enforce_paymethod" name="enforce_paymethod" /> <!---important field dont remove --><pre></form>
.cs コード
public partial class Registration : System.Web.UI.Page { public string action1 = string.Empty; public string hash1 = string.Empty; public string txnid1 = string.Empty; public string url = string.Empty; static string constring = ConfigurationManager.ConnectionStrings["PalpConString"].ConnectionString; protected void Page_Load(object sender, EventArgs e) { try { //set merchant key from web.config or AppSettings key.Value = ConfigurationManager.AppSettings["MERCHANT_KEY"]; //DisplayRadioButton(); if (!IsPostBack) { frmError.Visible = false; // error form } else { //frmError.Visible = true; } if (string.IsNullOrEmpty(Request.Form["hash"])) { btnSubmit.Visible = true; } else { btnSubmit.Visible = false; } } catch (Exception ex) { Response.Write("<span style='color:red'>" + ex.Message + "</span>"); } } // Generating Hash Code for PayuMoney 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; ; } protected void btnSubmit_Click1(object sender, EventArgs e) { RecordInsertion(); try { string[] hashVarsSeq; string hash_string = string.Empty; 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(ConfigurationManager.AppSettings["MERCHANT_KEY"]) || string.IsNullOrEmpty(txnid1) || string.IsNullOrEmpty(Request.Form["amount"]) || string.IsNullOrEmpty(Request.Form["firstname"]) || string.IsNullOrEmpty(Request.Form["email"]) || string.IsNullOrEmpty(Request.Form["phone"]) || string.IsNullOrEmpty(Request.Form["productinfo"]) || string.IsNullOrEmpty(Request.Form["surl"]) || string.IsNullOrEmpty(Request.Form["furl"]) ) { //remove later frmError.Visible = true; return; } else { //remove later frmError.Visible = false; hashVarsSeq = ConfigurationManager.AppSettings["hashSequence"].Split('|'); // spliting hash sequence from config hash_string = ""; foreach (string hash_var in hashVarsSeq) { if (hash_var == "key") { hash_string = hash_string + ConfigurationManager.AppSettings["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(Request.Form[hash_var]).ToString("g29"); 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 += ConfigurationManager.AppSettings["SALT"];// appending SALT hash1 = Generatehash512(hash_string).ToLower(); //generating hash action1 = ConfigurationManager.AppSettings["PAYU_BASE_URL"] + "/_payment";// setting URL } } else if (!string.IsNullOrEmpty(Request.Form["hash"])) { hash1 = Request.Form["hash"]; action1 = ConfigurationManager.AppSettings["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.Trim()).ToString("g29");// eliminating trailing zeros amount.Text = 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", surl.Text.Trim()); data.Add("furl", furl.Text.Trim()); data.Add("lastname", lastname.Text.Trim()); data.Add("curl", ""); data.Add("address1", address1.Text.Trim()); data.Add("address2", address2.Text.Trim()); data.Add("city", city.Text.Trim()); data.Add("state", state.Text.Trim()); data.Add("country", ""); data.Add("zipcode", zipcode.Text.Trim()); data.Add("udf1", ""); data.Add("udf2", ""); data.Add("udf3", ""); data.Add("udf4", ""); data.Add("udf5", ""); data.Add("pg", ""); data.Add("service_provider",""); string strForm = PreparePOSTForm(action1, data); Page.Controls.Add(new LiteralControl(strForm)); } else { //no hash } } catch (Exception ex) { Response.Write("<span style='color:red'>" + ex.Message + "</span>"); } } 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("<form id=\"" + formID + "\" name=\"" + formID + "\" action=\"" + url + "\" method=\"POST\">"); foreach (System.Collections.DictionaryEntry key in data) { strForm.Append("<input type=\"hidden\" name=\"" + key.Key + "\" value=\"" + key.Value + "\">"); } strForm.Append("</form>"); //Build the JavaScript which will do the Posting operation. StringBuilder strScript = new StringBuilder(); strScript.Append("<script language='javascript'>"); strScript.Append("var v" + formID + " = document." + formID + ";"); strScript.Append("v" + formID + ".submit();"); strScript.Append("</script>"); //Return the form and the script concatenated. //(The order is important, Form then JavaScript) return strForm.ToString() + strScript.ToString(); }
私が試したこと:
これらのフィールドを更新パネル内に配置しようとしましたが、再び機能しません助けてください
解決策 1
サイバーセイントさん、こんにちは。
投稿された非表示フィールドの宣言 (aspx コード) では、これらには値が設定されていません。
<input type="hidden" runat="server" id="txnid" name="txnid" ¿Value="InitialValue"? />
そのため、アクション ボタンを最初にクリックしたときは空になっています。
それらの値を読み取ろうとする前に、必ずそれらの値を初期化する必要があります。 これらの値が秘密のために投稿できない場合は、次のように Page_Load イベントで設定できます。
protected void Page_Load(object sender, EventArgs e) { // Your code... if (HidDv.Value == string.Empty) //Do this for each hidden field { //Set initial value here. } // Your code... }
どちらの方法でも、対応するボタンをクリックするまでに、非表示のコントロールに値が設定されます。
乾杯!
解決策 3
この問題をどのように解決するか 私の側の同じ問題
解決策 2
私は多くのおかげで問題を把握します
[ad_2]
コメント