Я реализую свой собственный платежный модуль для Magento, где я применил метод getCheckoutRedirectUrl() в моей платежной модели.Получить текущий orderId в модуле оплаты magento во время оформления заказа
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.
Любые идеи?
Это был мой заказ догадки еще не существует, спасибо за разъяснение этого мне, я думал, что заказы уже сохранены в db ранее. Но мне нужен какой-то идентификатор, с помощью которого я могу получить информацию о заказе (например, сумму) в отдельном независимом запросе (без куки-файлов), который шлюз оплаты делает в фоновом режиме. Может быть, я могу передать идентификатор сеанса и задать сеанс, чтобы у меня был доступ к котировке (заказ в корзине)? – KoviNET
Котировки и позиции котировок сохраняются и в базе данных. Вот как пурпурно отслеживает заброшенные тележки. Я бы сосредоточился на использовании этих объектов, чтобы получить нужную вам информацию. –
Я решил свою проблему, передав quoteId на платежный шлюз (Mage :: getSingleton ('checkout/session') -> getQuoteId();), а затем я смог получить данные котировки по отдельному запросу: $ quote = Mage: : getModel ("продажи/цитата") -> нагрузка ($ quoteId); Благодаря! – KoviNET