致命错误:使用payUmoney付款时,在Observer.php中的非对象上调用成员函数getTelephone()

时间:2018-01-22 12:30:51

标签: magento-1.9

我正在使用Magento 1.9.2.4版本。我在下订单后使用SMS module来接收短信。选择选项为"使用信用卡/借记卡/网上银行付款"它正在重定向到payUmoney金额页面和金额扣除,但订单放置时间错误就像这样

   Fatal error: Call to a member function getTelephone() on a non-object in  model/Observer.php on line 125

我的观察员代码:

        public function salesOrderPlace(Varien_Event_Observer $observer)
          {
       try{
        Mage::log("New Order Placed");


        $order = Mage::getModel('sales/order'); 

        $incrementId = Mage::getSingleton('checkout/session')->getLastOrderId(); 
        Mage::log("Order ID:".$incrementId);

        $order = Mage::getModel('sales/order')->loadByIncrementId($incrementId);

        if ($order instanceof Mage_Sales_Model_Order)
        { 
          if($this->getHelper()->issalesOrderPlace())
          { 

            $mobilenumbers = $order->getBillingAddress()->getTelephone();

            $message = $this->getHelper()->getOrderMessage($order); //enter Your Message
            $customerName = $order->getCustomerName();
            //curlApicall : this method will return tru or fale.
            $retunValue = $this->getHelper()->curlApiCall($message,$mobilenumbers,$customerName,"New Order");   

          }
          if($this->getHelper()->issalesOrderPlaceForAdmin())
          { 
            $mobilenumbers = $this->getHelper()->getAdminMobileNumber();         
            $message = $this->getHelper()->getOrderMessageForAdmin($order); //enter Your Message
            $customerName = $order->getCustomerName();
            //curlApicall : this method will return tru or fale.
            $retunValue = $this->getHelper()->curlApiCall($message,$mobilenumbers,$customerName,"New Order");   

          } 
        }

    //return false;
  }catch(Exception $e) {
         Mage::log($e->getMessage());
  } 
}

1 个答案:

答案 0 :(得分:1)

问题出在这里

        $order = Mage::getModel('sales/order'); 

        $incrementId = Mage::getSingleton('checkout/session')->getLastOrderId(); 
        Mage::log("Order ID:".$incrementId);

        $order = Mage::getModel('sales/order')->loadByIncrementId($incrementId);

增量Id与订单ID

不同

使用此修复程序:

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

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