gpt4 book ai didi

php - 结账时在 magento 支付模块中获取当前 orderId

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:00 24 4
gpt4 key购买 nike

我正在为 Magento 实现我自己的支付模块,我在我的支付模型中实现了 getCheckoutRedirectUrl() 方法。

class My_Module_Model_Payment extends Mage_Payment_Model_Method_Abstract {}

此方法应该只返回用户被重定向到的支付网关的 URL,但我还应该将当前的 orderId 附加到此 URL。

问题是我无法获取 orderId。我已经尝试过解决方案 accepted here

$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();

但我得到空的 $orderId。所以这在我的方法中似乎不起作用。该调用不会产生错误,因此我得到一个对象(例如 Mage::getSingleton('checkout/session')->getQuote()->getSubtotal() 返回订单金额),但 orderId 为空。

我也试过:

$order = Mage::getModel('sales/order');
$order->load(Mage::getSingleton('sales/order')->getLastOrderId());
$orderId = $order->getIncrementId();

再次返回空的 $orderId。

有什么想法吗?

最佳答案

你的问题,正如所写的那样,是不合逻辑的。

结账时 没有订单 ID。当您结账时,Magento 会创建一个 sales/quote 对象。此对象用于跟踪报价项目。直到结帐完成,才会根据报价创建一个 sales/order 对象。

getLastOrderId 返回空的原因是因为没有下订单。

用结帐流程中您所处的那个点来重申您的问题,以及您尝试对订单 ID 执行的操作可能会帮助其他人想出您不知道自己需要的信息。

祝你好运!


作者的解决方案:

首先从结帐/ session 中获取报价 ID 解决了问题:

Mage::getSingleton('checkout/session')->getQuoteId(); 

然后通过引用ID引用对象:

$quote = Mage::getModel("sales/quote")->load($quoteId); 

关于php - 结账时在 magento 支付模块中获取当前 orderId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8842978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com