buguge - Keep it simple,stupid

知识就是力量,但更重要的,是运用知识的能力why buguge?

导航

Response.Redirect & window.location.href

对接中信的微信H5支付时,对方(其实是微信)需要对我们的域名进行授权,即,我方需向渠道报备支付域名,微信只认可由此域名发起的支付交易。

支付中心只提供了一套支付接口供下游系统访问。因为给渠道报备的域名是支付中心的域名,为此,支付中心需要做一个中间页,由这个中间页发起到渠道的支付请求。

        protected void Page_Load(object sender, EventArgs e)
        {
            LogHelper.Write("h5请求url:" + Request.Url.ToString());
            if ("" != Request.QueryString["mweb_url"])
            {
                Response.Redirect(Request.QueryString["mweb_url"]);
            }
            else
            {
                Response.Write("ok");
                Response.Write(Request.Url.ToString());
            }
        }

测试时,发现微信仍然提示域名不一致。

于是,修改代码,废掉Response.Redirect,改用js的window.location.href来实现浏览器重定向跳转。再次发起支付,发现果然ok!


 

通过demo测试,使用Response.Redirect做页面跳转时,无法获取到上次请求的url信息,而通过window.location.href是可以的。这也证明了为什么微信校验请求域名失败。

posted on 2017-12-15 12:30  buguge  阅读(567)  评论(0编辑  收藏  举报