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;}样式来隐藏表单。

  • 相关阅读:
    模拟赛T5 : domino ——深搜+剪枝+位运算优化
    校内模拟赛T5:连续的“包含”子串长度( nekameleoni?) —— 线段树单点修改,区间查询 + 尺取法合并
    C++[Tarjan求点双连通分量,割点][HNOI2012]矿场搭建
    C++二分图匹配基础:zoj1002 FireNet 火力网
    迭代加深搜索 C++解题报告 :[SCOI2005]骑士精神
    Linux 常用命令
    Microservices and exception handling in Java with Feign and reflection
    微服务摘要
    Javac编译与JIT编译
    GC调优思路
  • 原文地址:https://www.cnblogs.com/yu-shang/p/12163139.html
Copyright © 2011-2022 走看看