DTcms手机版使用余额支付 提示信息跳转到PC版的错误。以及提交订单不打开新页面
手机版使用余额支付 提示信息跳转到PC版的错误
引起错误的原因是中间需要提交到DTcms.Web\api\payment\balance\index.aspx去处理
导致BasePage.cs中的linkurl方法中 string requestPath = HttpContext.Current.Request.RawUrl.ToLower(); //当前的URL地址
获取到的地址为:/api/payment/balance/index.aspx
解决方法:
1、BasePage.cs中重写linkurl
/// <summary>
/// 自定义:余额支付专用:返回URL重写统一链接地址
/// </summary>
public string linkurlpay(string _key, params object[] _params)
{
Hashtable ht = new BLL.url_rewrite().GetList(); //获得URL配置列表
Model.url_rewrite model = ht[_key] as Model.url_rewrite; //查找指定的URL配置节点 //如果不存在该节点则返回空字符串
if (model == null)
{
return string.Empty;
} string UrlReferrer = string.Empty;
if (HttpContext.Current.Request.UrlReferrer != null)
UrlReferrer = HttpContext.Current.Request.UrlReferrer.ToString().ToLower(); //来源URL地址 string requestDomain = HttpContext.Current.Request.Url.Authority.ToLower(); //获得来源域名含端口号
string requestPath = HttpContext.Current.Request.RawUrl.ToLower(); //当前的URL地址
UrlReferrer=UrlReferrer.Replace(requestDomain, "").Replace("http://","");
string linkStartString = GetLinkStartString(UrlReferrer, requestDomain); //链接前缀 //如果URL字典表达式不需要重写则直接返回
if (model.url_rewrite_items.Count == )
{
//检查网站重写状态
if (config.staticstatus > )
{
if (_params.Length > )
{
return linkStartString + GetUrlExtension(model.page, config.staticextension) + string.Format("{0}", _params);
}
else
{
return linkStartString + GetUrlExtension(model.page, config.staticextension);
}
}
else
{
if (_params.Length > )
{
return linkStartString + model.page + string.Format("{0}", _params);
}
else
{
return linkStartString + model.page;
}
}
}
//否则检查该URL配置节点下的子节点
foreach (Model.url_rewrite_item item in model.url_rewrite_items)
{
//如果参数个数匹配
if (IsUrlMatch(item, _params))
{
//检查网站重写状态
if (config.staticstatus > )
{
return linkStartString + string.Format(GetUrlExtension(item.path, config.staticextension), _params);
}
else
{
string queryString = Regex.Replace(string.Format(item.path, _params), item.pattern, item.querystring, RegexOptions.None | RegexOptions.IgnoreCase);
if (queryString.Length > )
{
queryString = "?" + queryString;
}
return linkStartString + model.page + queryString;
}
}
} return string.Empty;
}
2、DTcms.Web\api\payment\balance\index.aspx.cs中所有的linkurl方法改为例如
Response.Redirect(new Web.UI.BasePage().linkurlpay("payment", "?action=recharge")); //账户的余额不足
提交订单不打开新页面
templates\mobile\payment.html
<!--提交支付-->
<form id="pay_form" name="pay_form" method="post" action="{config.webpath}api/payment/{payModel.api_path}/index.aspx" target="_blank">
去掉target="_blank"
DTcms手机版使用余额支付 提示信息跳转到PC版的错误。以及提交订单不打开新页面的更多相关文章
- Web设计中打开新页面或页面跳转的方法 js跳转页面
Web设计中打开新页面或页面跳转的方法 一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx ...
- HBuilder mui 手机app开发 Android手机app开发 ios手机app开发 打开新页面 预加载页面 关闭页面
创建子页面 在mobile app开发过程中,经常遇到卡头卡尾的页面,此时若使用局部滚动,在android手机上会出现滚动不流畅的问题: mui的解决思路是:将需要滚动的区域通过单独的webview实 ...
- Web设计中打开新页面或页面跳转的方法
一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx"); 2. 利用url地址打 ...
- vue的跳转方式(打开新页面)
vue的跳转方式(打开新页面) 2018年11月22日 10:43:21 浊清... 阅读数 2043 版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和 ...
- asp.net c# 打开新页面或页面跳转
1.最常用的页面跳转(原窗口被替代):Response.Redirect("XXX.aspx"); 2.利用url地址打开本地网页或互联网:Respose.Write(" ...
- vue的跳转方式(打开新页面)及传参
1. router-link跳转 // 直接写上跳转的地址 <router-link to="/detail/one"> <span class="sp ...
- JS打开新页面跳转
有时候使用js进行页面跳转,想使用 a 标签中 target="_blank" 形式,跳转打开一个新的页面. 可以使用以下脚本,创建一个 a标签,然后模拟点击操作. 代码如下: ...
- angularjs 中state.go 跳转并且打开新的浏览器窗口
包子最近遇到业务人员提的非常无厘头的需求,就是调页面的时候,一定要打开一个新的浏览器窗口...>o<奇葩!!! 但是我的页面都是state.go跳转的呀,我各种百度,发现,貌似state, ...
- react中实现点击跳转到新页面方法
实现点击跳转到新页面,可以有两种形式,一个是本地页面打开,一个是本地页面不变跳转到新的页面. (一)页面点击本地页面打开新页面 引入ant的Button组件 <Button style={{ba ...
随机推荐
- redo log write和flush
http://bbs.chinaunix.net/thread-1753130-1-1.html 在事务提交时innobase会调用ha_innodb.cc 中的innobase_commit,而in ...
- SQL SERVER 中identity用法
在数据库中, 常用的一个流水编号通常会使用 identity 栏位来进行设置, 这种编号的好处是一定不会重覆, 而且一定是唯一的, 这对table中的唯一值特性很重要, 通常用来做客户编号, 订单编号 ...
- Spring 的微内核与FactoryBean扩展机制--转载
作者:江南白衣 原文地址: http://www.blogjava.net/calvin/archive/2005/08/30/11099.html http://www.blogjava.net/c ...
- Http Message Converters with the Spring Framework--转载
原文:http://www.baeldung.com/spring-httpmessageconverter-rest 1. Overview This article describes how t ...
- 小白日记30:kali渗透测试之Web渗透-扫描工具-Skipfish
WEB渗透-skipfish Skipfish是一个命令行模式,以C语言编写的积极的Web应用程序的安全性侦察工具,没有代理模式. 它准备了一个互动为目标的网站的站点地图进行一个递归爬网和基于字典的探 ...
- Entity Framework实体框架使用TrackerEnabledDbContext进行操作日志跟踪
在EF实体框架中进行日志跟踪,一般都是自己写个Log实体类,在数据保存时进行属性原始值验证来进行日志跟踪.当然还可以使用一些第三扩展库例如:entity framework extended进行日志记 ...
- jsp自定义标签分页
第一步:建立分页实体page类 package com.soda.util; /** * @description 分页实体类 * @author line * @time 2016年8月28日11: ...
- Jquery解析Json字符串,并且动态生成数据表格Table
//ajax获得后台传来的json字符串 $.post("UserInfo.ashx", function (data) { //假设data="{T1:[{User_I ...
- 使用jquery实现局部刷新DIV
实现页面的定时刷新功能:jquery使用的是jquery-1.8.3.min.js1:定时刷新 A界面的一段代码如下:<script type="text/javascript&quo ...
- python(3)-内置函数2
frozenset() 定义一个不能添加修改的集合 >>> s = frozenset() >>> s.add("aaa") Traceb ...