zoukankan      html  css  js  c++  java
  • asp.net 隐藏支付宝表单信息

    在用dz积分充值的之后,调用支付宝支付的时候,并不会显示如下信息:

     查看源代码如下:

     <form id='alipaysubmit' name='alipaysubmit' action='https://openapi.alipay.com/gateway.do?charset=UTF-8' method='post'><input  name='app_id' value='2018020202130779'/><input  name='biz_content' value='{"out_trade_no":"8730c344-ebd1-4ef1-93cc-df03da6185dc","product_code":"FAST_INSTANT_TRADE_PAY","qrcode_width":0,"subject":"测试","total_amount":"1"}'/><input  name='charset' value='UTF-8'/><input  name='format' value='json'/><input  name='method' value='alipay.trade.page.pay'/><input  name='notify_url' value='https://down.itsvse.com/Pay/Async'/><input  name='return_url' value='https://down.itsvse.com/Pay/Return'/><input  name='sign_type' value='RSA2'/><input  name='timestamp' value='2018-12-09 14:00:26'/><input  name='version' value='1.0'/><input  name='sign' value='ug2O0tc6dvbzH4wuoELCvkm30UNxgGCeWwH9R5sGv0KW9YmWmZOzzr7byWn3hgzPjpGuaRvDtw24/X1o2kVr+054Z3aaadheG+09aWoEqDTnrYVSUJwcgjTAPak6KEXSsiAd9207BaIFhDMsHowiP4swnh57pRIFXjldBUcCQczAjDUMpx3jwDN8+10d8iFk9jgIuzJM3kugFsua0lECUGEUJb+37+YQ=='/><input type='submit' value='post' style='display:none;'></form>

    然后等待1秒钟,会显示如下支付界面:

    查看支付宝的sdk代码,发现生成html代码的方法如下:

    public string BuildHtmlRequest(IDictionary<string, string> sParaTemp, string strMethod, string strButtonValue)
            {
                //待请求参数数组
                IDictionary<string, string> dicPara = new Dictionary<string, string>();
                dicPara = sParaTemp;
    
                StringBuilder sbHtml = new StringBuilder();
                //sbHtml.Append("<head><meta http-equiv="Content-Type" content="text/html" charset= "" + charset + "" /></head>");
    
                sbHtml.Append("<form id='alipaysubmit' name='alipaysubmit' action='" + this.serverUrl + "?charset=" + this.charset + 
                     "' method='" + strMethod + "'>");
                ;
                foreach (KeyValuePair<string, string> temp in dicPara)
                {
    
                    sbHtml.Append("<input  name='" + temp.Key + "' value='" + temp.Value + "'/>");
    
                }
    
                //submit按钮控件请不要含有name属性
                sbHtml.Append("<input type='submit' value='" + strButtonValue + "' style='display:none;'></form>");
                // sbHtml.Append("<input type='submit' value='" + strButtonValue + "'></form></div>");
    
                //表单实现自动提交
                sbHtml.Append("<scrip{过滤}t>document.forms['alipaysubmit'].submit();</scrip{过滤}t>");
    
                return sbHtml.ToString();
            }

    在方法拼接form表单的时候,可以设置css样式来隐藏表单,但是需要重新编译dll,就放弃了。

    解决方法:

    可以在输入以上html代码的时候,head里面加上css样式就好了,代码如下:

    response = client.pageExecute(request, null, "post");
                    StringBuilder sb = new StringBuilder();
                    sb.Append("<!DOCTYPE html>");
                    sb.Append("<html>");
                    sb.Append("<head>");
                    sb.Append("<meta charset="utf-8">");
                    sb.Append("<title>支付</title>");
                    sb.Append("<style>");
                    sb.Append("#alipaysubmit {display:none;}");
                    sb.Append("</style>");
                    sb.Append("</head>");
                    sb.Append("<body>");
                    sb.Append(response.Body);
                    sb.Append("</body>");
                    sb.Append("</html>");
                    Response.Write(sb.ToString());
                    Response.End();

    拼接这么多html,就是想插入#alipaysubmit {display:none;}样式来隐藏表单。

  • 相关阅读:
    hdu 4609 (FFT求解三角形)
    hdu 1402 FFT(模板)
    是因为Session只能让服务器在一次连续的会话中记住你,而Cookie是记住浏览器一段时间
    应该是实例化对象的没有对属性赋值时,自动赋值为null,但不是空指针对象引用
    一共有三种方式获取表单中的信息.第三种,容易忽视..用动作获取和用内置对象获取
    是不是总会有好享受的时候
    获取表单提交的信息在jsp页面只能用request对象。活着用超链接的URL传递参数,但是同样用request对象来获取
    不能解决,复选框在request对象获取的信息后显示在用户信息里面为中文的选项名
    jsp中向浏览器页面输出的方式总结
    mysql
  • 原文地址:https://www.cnblogs.com/yu-shang/p/12163139.html
Copyright © 2011-2022 走看看