从而得出Magento模块url访问的命名规范 http://
/
/
/
/
例如:http://192.168.1.211/index.php/paypal/standard/redirect/ 其中 paypal:/app/code/core/Mage/Paypal/etc/config.xml中frontend片段中的
paypal
standard:/app/code/core/Mage/Paypal/controllers/StandardController.php去掉Controller redirect: StandardController.php public function redirectAction() Paypal/Block/Standard/Redirect.php $standard = Mage::getModel('paypal/standard'); $form->setAction($standard->getPaypalUrl()) 获取的步骤为: Mage::getModel('paypal/standard'); 调用:app/Mage.php public static function getModel($modelClass='', $arguments=array()) return Mage::getConfig()->getModelInstance($modelClass, $arguments); 调用本身文件的: public function getModelInstance($modelClass='', $constructArguments=array()) 调用app/code/core/Mage/Core/Model/Config.php: public function getModelClassName($modelClass) $modelClass = trim($modelClass); if (strpos($modelClass, '/')===false) { return $modelClass; } return $this->getGroupedClassName('model', $modelClass); 调用本身的: public function getGroupedClassName($groupType, $classId, $groupRootNode=null) 最后返回的应该就是Paypal/Model/Standard.php中的类 Mage_Paypal_Model_Standard 而standard则是 app/code/core/Mage/Paypal/etc/config.xml中的
/paypal/express
/paypal/standard
/paypal/standard
所以: $form->setAction($standard->getPaypalUrl()) 调用的是 Mage_Paypal_Model_Standard 中的getPaypalUrl()方法 public function getPaypalUrl() { if (Mage::getStoreConfig('paypal/wps/sandbox_flag')==1) { $url='https://www.sandbox.paypal.com/cgi-bin/webscr'; } else { $url='https://www.paypal.com/cgi-bin/webscr'; } return $url; }
Magento PAYPAL支付方式研究
最新推荐文章于 2024-06-20 01:20:40 发布