[英]Magento 2.3.3 - Checkout success redirects to cart
迁移到新主机后,我们遇到了一个问题,其中大约 1/3 的订单是成功的(可以在后端看到它们),点击订单成功页面但被重定向回他们的购物车而没有错误。 显然,对于客户来说,这似乎是他们的订单可能失败了。
由于/vendor/magento/module-checkout/Controller/Onepage/Success.php@execute:23
,它们被重定向
if (!$this->_objectManager->get(\Magento\Checkout\Model\Session\SuccessValidator::class)->isValid()) {
return $this->resultRedirectFactory->create()->setPath('checkout/cart');
}
\Magento\Checkout\Model\Session\SuccessValidator@isValid:
public function isValid()
{
if (!$this->checkoutSession->getLastSuccessQuoteId()) {
return false;
}
if (!$this->checkoutSession->getLastQuoteId() || !$this->checkoutSession->getLastOrderId()) {
return false;
}
return true;
}
我正在记录所有订单成功 checkoutSession 数据,在重定向客户的情况下, last_success_quote_id
、 last_quote_id
和last_order_id
都是NULL
。
查看所有订单,似乎没有区分成功与重定向的模式。 混合使用了多种支付网关(paypal、sagepay),因此假设支付网关不是这里的问题。
我已经尝试了文件和基于 session 存储的 redis,都没有解决问题。
我以前遇到过与您类似的问题。
情况如下:
我使用调试找到了原因。
问题是 magento 没有向 API 提供购物车的报价 ID。
所以我确实修复了它,问题就消失了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.