从而得出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 发布