Estoy implementando mi propio módulo de pago para Magento, donde implementé el método getCheckoutRedirectUrl() en mi modelo de pago.Obtenga el ID de pedido actual en el módulo de pago de magento durante el pago
class My_Module_Model_Payment extends Mage_Payment_Model_Method_Abstract {}
Este método se supone que acaba de regresar URL de la pasarela de pago donde se redirige al usuario, pero también hay que añadir orderId actual a esta dirección URL.
El problema es que no puedo obtener orderId. Probé solución como ya accepted here
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
pero consigo vacía $ orderId. Entonces esto no parece funcionar en mi método. La llamada no produce un error, así que obtengo un objeto (por ejemplo, Mage :: getSingleton ('checkout/session') -> getQuote() -> getSubtotal() devuelve el importe de la orden), pero orderId está vacío.
También probé:
$order = Mage::getModel('sales/order');
$order->load(Mage::getSingleton('sales/order')->getLastOrderId());
$orderId = $order->getIncrementId();
que de nuevo vuelve vacía $ orderId.
¿Alguna idea?
Se fue mi orden de adivinar que aún no existe, gracias por aclararme esto, pensé que las órdenes ya se guardaron en db antes. Pero necesito algún tipo de identificador por el que pueda obtener información de la orden (como el monto) en una solicitud independiente separada (sin cookies) que la pasarela de pago realiza en segundo plano. ¿Tal vez podría aprobar la Id. De la sesión y establecer la sesión, para poder tener acceso a la cita (orden en el carro)? – KoviNET
La cita y los elementos de cita también se conservan en la base de datos. Así es como magento rastrea los carros abandonados. Me concentraría en usar esos objetos para obtener la información que desea. –
Resolví mi problema al pasar quoteId a la pasarela de pago (Mage :: getSingleton ('checkout/session') -> getQuoteId();) y luego pude obtener los datos de cotización en la solicitud separada: $ quote = Mage: : getModel ("sales/quote") -> load ($ quoteId); ¡Gracias! – KoviNET