2015-01-12 2 views
1

Я использую Magento 1.9.0.1Magento - Проблема создание нового модуля способа оплаты

Я работаю над пользовательским расширением, который добавляет дополнительный способ оплаты. Все, кажется, работает с расширением - метод оплаты отображается правильно, но я получил эту ошибку, когда пытаюсь «Разместить заказ» с выбранным мной специальным методом.

Здесь ошибка я получил:

Там была ошибка обработки вашего запроса

печать Исключения отключена по умолчанию из соображений безопасности.

Ошибка номер журнала записи: 321152034690

Вот отчет:

a:5:{i:0;s:150:"Cannot send headers; headers already sent in /home/sportsdi/public_html/beta/app/code/local/Myname/Mygateway/controllers/PaymentController.php, line 1";i:1;s:1061:"#0 /home/sportsdi/public_html/beta/lib/Zend/Controller/Response/Abstract.php(115): Zend_Controller_Response_Abstract->canSendHeaders(true) 
#1 /home/sportsdi/public_html/beta/app/code/core/Mage/Core/Model/App.php(1246): Zend_Controller_Response_Abstract->setHeader('Content-Type', 'text/html; char...') 
#2 /home/sportsdi/public_html/beta/app/code/core/Mage/Core/Controller/Varien/Front.php(80): Mage_Core_Model_App->getResponse() 
#3 /home/sportsdi/public_html/beta/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(202): Mage_Core_Controller_Varien_Front->getResponse() 
#4 /home/sportsdi/public_html/beta/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http)) 
#5 /home/sportsdi/public_html/beta/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch() 
#6 /home/sportsdi/public_html/beta/app/Mage.php(684): Mage_Core_Model_App->run(Array) 
#7 /home/sportsdi/public_html/beta/index.php(87): Mage::run('', 'store') 
#8 {main}";s:3:"url";s:28:"/mygateway/payment/redirect/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";} 

Вот все, что я получил в:/главная/sportsdi/public_html/бета/приложения/код/​​местные /Myname/Mygateway/controllers/PaymentController.php:

<?php 
class Myname_Mygateway_PaymentController extends Mage_Core_Controller_Front_Action { 
    // The redirect action is triggered when someone places an order 
    public function redirectAction() { 
     $this->loadLayout(); 
     $block = $this->getLayout()->createBlock('Mage_Core_Block_Template','mygateway',array('template' => 'mygateway/redirect.phtml')); 
     $this->getLayout()->getBlock('content')->append($block); 
     $this->renderLayout(); 
    } 

    // The response action is triggered when your gateway sends back a response after processing the customer's payment 
    public function responseAction() { 
     if($this->getRequest()->isPost()) { 

      /* 
      /* Your gateway's code to make sure the reponse you 
      /* just got is from the gatway and not from some weirdo. 
      /* This generally has some checksum or other checks, 
      /* and is provided by the gateway. 
      /* For now, we assume that the gateway's response is valid 
      */ 

      $validated = true; 
      $orderId = '123'; // Generally sent by gateway 

      if($validated) { 
       // Payment was successful, so update the order's state, send order email and move to the success page 
       $order = Mage::getModel('sales/order'); 
       $order->loadByIncrementId($orderId); 
       $order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true, 'Gateway has authorized the payment.'); 

       $order->sendNewOrderEmail(); 
       $order->setEmailSent(true); 

       $order->save(); 

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

       Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/success', array('_secure'=>true)); 
      } 
      else { 
       // There is a problem in the response we got 
       $this->cancelAction(); 
       Mage_Core_Controller_Varien_Action::_redirect('checkout/onepage/failure', array('_secure'=>true)); 
      } 
     } 
     else 
      Mage_Core_Controller_Varien_Action::_redirect(''); 
    } 

    // The cancel action is triggered when an order is to be cancelled 
    public function cancelAction() { 
     if (Mage::getSingleton('checkout/session')->getLastRealOrderId()) { 
      $order = Mage::getModel('sales/order')->loadByIncrementId(Mage::getSingleton('checkout/session')->getLastRealOrderId()); 
      if($order->getId()) { 
       // Flag the order as 'cancelled' and save it 
       $order->cancel()->setState(Mage_Sales_Model_Order::STATE_CANCELED, true, 'Gateway has declined the payment.')->save(); 
      } 
     } 
    } 
} 

Можете ли вы помочь мне найти проблему и исправить ее?

Заранее благодарен!

+0

Привет, Попробуйте искать «эхо» заявления в этом модуле и комментарии его затем попытаться разместить заказ. – Charlie

ответ

0

Если в вашем модуле есть какая-либо эхо-инструкция, тогда эта ошибка может появиться, найдите в своем модуле эхо, если вы найдете, затем удалите его.

0

Операции с «эхо» вызовут это, если вы не включите буферизацию вывода. Если вы все еще хотите, чтобы увидеть результаты эхо, помещая линию,

ob_start(); 

В верхней части файла в вопросе даст вам результат, который вы ищете.

Подробнее: http://php.net/manual/en/function.ob-start.php

Смежные вопросы