我已经看到有关货币类型的问题,但我要问的是如何在同一商店为不同的信用卡类型配置第二个Authorize.net帐户。因此,我们希望一些信用卡使用第一个主要的Authorize.net网关,但其他信用卡使用辅助Authorize.net帐户,以便付款可以路由到两个不同的银行帐户。这是为了和解,是一种约束;无法修改。
我认为我需要做的就是在订单提交之后(但在通过API发送给Authorize.net之前)找出哪种卡类型,知道哪些凭据要传递给API,但我不确定添加此代码的位置,或者添加它的最佳方式。
非常感谢任何见解或建议。
答案 0 :(得分:3)
默认情况下,无法完成此操作,因此您需要使用一些自定义代码。具体而言,覆盖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
}
要实现此目的,您还需要在后端创建新选项,以便以加密形式保存凭据。希望有所帮助!
谢谢, 乔