Magento 용 지불 모듈을 구현하고 있습니다. Magento 용 지불 모델에서 getCheckoutRedirectUrl() 메소드를 구현했습니다.체크 아웃 중에 magento 지불 모듈에서 현재 주문 가져 오기
class My_Module_Model_Payment extends Mage_Payment_Model_Method_Abstract {}
이 방법은 단지 사용자가 리디렉션되는 지불 게이트웨이의 URL을 반환하도록되어 있지만, 나는이 URL에 현재 주문 ID를 추가해야합니다.
문제는 orderId를 얻을 수 없습니다. 이미 accepted here
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
으로 솔루션을 시도했지만 나는 빈 $의 OrderID를 얻을. 그래서 이것은 내 방법으로는 효과가없는 것 같습니다. 이 호출은 에러를 발생시키지 않으므로 객체를 얻습니다. 예를 들어, Mage :: getSingleton ('checkout/session') -> getQuote() -> getSubtotal()은 주문 금액을 반환하지만 orderId는 비어 있습니다.
는 또한 시도 : 다시 빈 $의 주문 ID를 반환
$order = Mage::getModel('sales/order');
$order->load(Mage::getSingleton('sales/order')->getLastOrderId());
$orderId = $order->getIncrementId();
합니다.
어떤 아이디어?
그것을 내 추측 주문은 아직 존재하지 않습니다, 내게 이것을 명확히 해 주셔서 감사합니다. 주문이 이미 DB에 저장되었다고 생각했습니다. 하지만 지불 게이트웨이가 백그라운드에서 수행하는 별도의 독립적 인 요청 (쿠키 제외)으로 주문 정보 (예 : 금액)를 얻을 수있는 식별자가 필요합니다. 어쩌면 세션 ID를 전달하고 세션을 설정할 수 있으므로 견적 (장바구니 주문)에 액세스 할 수 있습니까? – KoviNET
견적 및 견적 항목은 데이터베이스에도 보관됩니다. 그것이 magento가 버려진 카트를 추적하는 방법입니다. 나는 당신이 원하는 정보를 얻기 위해 그 객체들을 사용하는 것에 집중할 것입니다. –
quoteId를 지불 게이트웨이 (Mage :: getSingleton ('checkout/session') -> getQuoteId();)로 전달하여 문제를 해결 한 다음 별도 요청에서 견적 데이터를 가져올 수있었습니다. $ quote = Mage : : getModel ("sales/quote") ->로드 ($ quoteId); 감사! – KoviNET