默认情况下,无法完成此操作,因此您需要使用一些自定义代码。具体来说,覆盖 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
}
为此,您还需要在后端创建新选项,以加密形式保存凭据。希望有帮助!
谢谢,乔