Magento关闭Google Checkout模块受到的启发

今天在关闭Google Checkout模块的时候发现在CHECKOUT ONEPAGE遇到了问,就是明明已经关闭了,可结算页面还在加载GOOGLE CHECKOUT里的类。
由于我是在Mage_All里面直接代码级别关闭的,所以页面报错。

Warning: include(Mage/Googlecheckout/Model/Payment.php): failed to open stream: No such file or directory  in /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/lib/Varien/Autoload.php on line 93
 
#0 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/lib/Varien/Autoload.php(93): mageCoreErrorHandler(2, 'include(Mage/Go...', '/home/joshua/Ze...', 93, Array)
#1 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/lib/Varien/Autoload.php(93): Varien_Autoload::autoload()
#2 [internal function]: Varien_Autoload->autoload('Mage_Googlechec...')
#3 [internal function]: spl_autoload_call('Mage_Googlechec...')
#4 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Config.php(1204): class_exists('Mage_Googlechec...')
#5 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/Mage.php(432): Mage_Core_Model_Config->getModelInstance('googlecheckout/...', Array)
#6 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Payment/Helper/Data.php(71): Mage::getModel('googlecheckout/...')
#7 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Payment/Block/Form/Container.php(117): Mage_Payment_Helper_Data->getStoreMethods('1', Object(Mage_Sales_Model_Quote))
#8 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Payment/Block/Form/Container.php(44): Mage_Payment_Block_Form_Container->getMethods()
#9 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Block/Abstract.php(218): Mage_Payment_Block_Form_Container->_prepareLayout()
#10 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(430): Mage_Core_Block_Abstract->setLayout(Object(Mage_Core_Model_Layout))
#11 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(446): Mage_Core_Model_Layout->createBlock('checkout/onepag...', 'checkout.paymen...')
#12 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(238): Mage_Core_Model_Layout->addBlock('checkout/onepag...', 'checkout.paymen...')
#13 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(204): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#14 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#15 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#16 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/Layout.php(209): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#17 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Controller/Varien/Action.php(343): Mage_Core_Model_Layout->generateBlocks()
#18 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Controller/Varien/Action.php(270): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#19 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Checkout/controllers/OnepageController.php(165): Mage_Core_Controller_Varien_Action->loadLayout()
#20 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_OnepageController->indexAction()
#21 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('index')
#22 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Controller/Varien/Front.php(177): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#23 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/code/core/Mage/Core/Model/App.php(304): Mage_Core_Controller_Varien_Front->dispatch()
#24 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/app/Mage.php(596): Mage_Core_Model_App->run(Array)
#25 /home/joshua/Zend/workspaces/DefaultWorkspace7/gap/index.php(80): Mage::run('default', 'store')
#26 {main}

后来通过报错信息寻找发现是在结算页面需要加载允许的结算方式,正常配置文件应该走/Payment/etc/config.xml里的默认配置,可是Mage毕竟不是完美的,发现在Sales的模块配置文件竟有这样一段:

        <payment>
            <googlecheckout>
                <active>1</active>
                <model>googlecheckout/payment</model>
                <title>Google Checkout</title>
            </googlecheckout>
        </payment>

这段配置本来应该在GoogleCheckout模块配置文件里的,我将其注释掉,OK了一切正常。

还有就是获取配置数据的getConfig方法,以往大家以为$path参数一定要写全,比如payment/googcheckout/active,其实你写开头的一部分也会有返回数据,你可以试试

Mage::getStoreConfig('payment');

你会发现,它返回的是一个多维数组。

    • think
    • 07月 12th, 2010 5:14pm

    你有用google checkout了,能相互交流下吗?

    • 精东
    • 07月 12th, 2010 5:31pm

    没用到,想把它关闭掉,在中国大家认的还是支付宝、财付通、拍拍等

  1. 还没有引用通告。