我正在开发一个自定义支付模块,我需要一件事帮助!
当我点击我在magento网址的onepagecheckout上的下订单时,我正在重定向到我的支付网关,我将通过此代码获取
Mage::getUrl('comm/comm/redirect')
这会生成重定向网址
我的问题是,在magento中为商店www.abc.com运行多线程时,这个重定向工作正常并返回(www.abc.com/index.php/comm/comm/redirect)<
但是对于另一家商店www.def.com,它也会重定向到同一个网址(www.abc.com/index.php/comm/comm/redirect)
它应该是(www.def.com/index.php/comm/comm/redirect),以便此商店重定向到其自己的特定支付网关。
点击下订单时,如何获取特定的商店网址。
感谢您的帮助
答案 0 :(得分:8)
Mage::getUrl()
可以采用两个参数:
参数1 - $ routePath - &gt;路径路径以&#34;模块/控制器/操作&#34;
的形式表示参数2 - $ routeParams - &gt;这是一个将键/值转换为路径目录对的数组。
如果添加_store
参数,Magento将使用正确的域作为基本URL。例如
Mage::getUrl('comm/comm/redirect', array(
'_store'=>'your_store_id'
));
OR
Mage::getUrl('comm/comm/redirect', array(
'_store'=>'your_store_code'
));
有关其他参考资料和完整的可用选项列表,请访问:http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/geturl_function_parameters
答案 1 :(得分:2)
您可以在块中创建与此类似的功能:
function getStoreByCode($storeCode)
{
$stores = array_keys(Mage::app()->getStores());
foreach($stores as $id){
$store = Mage::app()->getStore($id);
if($store->getCode()==$storeCode) {
return $store;
}
}
return Mage::app()->getStore(); // if not found
}
然后在模板文件中调用该函数并将商店代码传递给它:
$store = $this->getStoreByCode(Mage::app()->getStore()->getCode());
echo $store->getUrl('comm/comm/redirect');
我测试了它并且工作正常。