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

  • 相关阅读:
    有道词典_每日一句_2020/06
    有道词典_每日一句_2020/05
    有道词典_每日一句_2020/04
    有道词典_每日一句_2020/03
    Vue的模板语法之指令1——Vue学习笔记(3)
    Vue的模板语法之插值——Vue学习笔记(2)
    Vue的基本使用——Vue学习笔记(1)
    有道词典_每日一句_2020/02
    有道词典_每日一句_2020/01
    微信小程序 真机调试警告:Some selectors are not allowed in component wxss
  • 原文地址:https://www.cnblogs.com/yu-shang/p/12163139.html
Copyright © 2020-2023  润新知