4 回答
TA贡献1735条经验 获得超5个赞
重定向必须是操作结果。例如在控制器的动作中我们这样写:
return Redirect("http://www.google.com");
没有return
关键字,它不会重定向。
要从插件的控制器重定向,请检查开箱即用的PayPalStandard插件的\Plugins\Nop.Plugin.Payments.PayPalStandard\Controllers\PaymentPayPalStandardController.cs类中的类似实现
TA贡献1934条经验 获得超2个赞
如果您正在尝试开发插件,最好不要更改 nopCommerce 源代码。ConfirmOrder您可以在插件本身中执行重定向,不要更改CheckoutController. 将您的代码更改为:
public void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest)
{
// some code
string url = protocol + host + "/" + "PaymentCODBooking/ProcessInternetPayment";
_httpContextAccessor.HttpContext.Response.Redirect(url);
return;
}
ConfirmOrder你可以在行动中找到这些行。之后应用会丰富到这里PostProcessPayment。重定向在这里执行:
if (_webHelper.IsRequestBeingRedirected || _webHelper.IsPostBeingDone)
{
//redirection or POST has been done in PostProcessPayment
return Content("Redirected");
}
TA贡献1831条经验 获得超10个赞
谢谢大家的帮助。您的回答给了我一些提示并找到了问题所在。问题是我忘了设置public PaymentMethodType PaymentMethodType => PaymentMethodType.Redirection;
. 它被设置为Standard
导致问题的原因。
- 4 回答
- 0 关注
- 85 浏览
添加回答
举报