默认情况下,无法完成此操作,因此您需要使用一些自定义代码。具体来说,覆盖Authnet支付类Mage_Paygate_Model_Authorizenet
:
class MyNamespace_MyModule_Model_Authorizenet extends Mage_Paygate_Model_Authorizenet {
/**
* Prepare request to gateway
*
* @link http://www.authorize.net/support/AIM_guide.pdf
* @param Mage_Sales_Model_Document $order
* @return unknown
*/
protected function _buildRequest(Varien_Object $payment)
//see below
}
}
在该功能,对我行277,下面的代码被执行,设置Authnet帐户:
$request->setXLogin($this->getConfigData('login'))
->setXTranKey($this->getConfigData('trans_key'))
->setXType($payment->getAnetTransType())
->setXMethod($payment->getAnetTransMethod());
相反,你沿着想要的东西这些行:
if(whatever cc type) {
// set alternate gateway
} else {
// set default gateway
}
要做到这一点,您还需要在后端创建新的选项,以加密形式保存凭据。希望有所帮助!
谢谢, 乔
嗨乔 - 感谢你 - 这是完全有道理。当你说我需要在后端创建新选项时,你会说是否足以复制已存在的内容(当然,使用不同的名称)? – mattbryanswan
是的,这应该是诀窍。确保你在路上加密数据,以确保安全。 –