2

我开发了一个使用重定向逻辑的支付插件。我使用了 Paypal 标准和 MyGateVirtual 作为指南 我的问题是,在用户确认订单后,他被重定向到支付中心站点,在那里他输入了他的信用卡数据,并且支付中心站点在指定的 url 中返回到我们的站点以获取成功和失败在我的支付控制器的成功操作,如果由于某种原因未接受付款,我想将用户重定向到 orderdetails 以便他可以重新提交他的付款。我使用带有以下代码片段的视图作为按钮,该按钮应该将用户重定向到 orderdetails

@{ var storeLocation = Nop.Core.Infrastructure.EngineContext.Current.Resolve<Nop.Core.IWebHelper>().GetStoreLocation() + Url.RouteUrl("OrderDetails", new {orderId = Model.OrderId});}


<input type="button" name="orderdetails" value="@T("Account.CustomerOrders.OrderDetails")" id="orderdetails" class="orderdetailsbutton" onclick="setLocation('@(storeLocation)'" />

但是,如果用户单击该按钮,则不会发生任何事情。onclick 事件处理程序未重定向到 orderdetails。请帮助解决这个问题

乔治

4

1 回答 1

4

setLocation() 是 public.common.js 中定义的 JS 函数。我将采取以下步骤来诊断问题:

  1. 检查 public.common.js 是否正确包含在您的页面中。
  2. 检查“storeLocation”变量是否生成了正确的 URL。您实际上不需要前面部分,只需以“Url.RouteUrl”开头的部分即可,因为您已经在自己的站点中。
  3. 在浏览器的开发者工具中设置断点,并检查 setLocation 是否被正确调用,如果不正确是什么错误。

仔细查看您的代码,发现 JS 代码格式不正确(少一个括号)。

这是你的代码:

setLocation('@(storeLocation)'
于 2013-03-19T06:24:39.517 回答