Magento多个授权.net网关

Magento多个授权.net网关,magento,payment-gateway,authorize.net,Magento,Payment Gateway,Authorize.net,我看到过关于货币类型的问题,但我要问的是如何在同一商店中为不同的信用卡类型配置第二个Authorize.net帐户。因此,我们希望一些信用卡使用第一个主Authorize.net网关,但其他信用卡使用第二个Authorize.net帐户,以便将付款路由到两个不同的银行帐户。这是为了和解,是一种约束;不能修改 我想,我所需要做的就是在订单提交后(但在通过API发送给.net授权之前)确定它是哪种卡类型,知道要传递给API的凭据,但我不确定在何处添加此代码,或者添加此代码的最佳方式 如果您有任何见解

我看到过关于货币类型的问题,但我要问的是如何在同一商店中为不同的信用卡类型配置第二个Authorize.net帐户。因此,我们希望一些信用卡使用第一个主Authorize.net网关,但其他信用卡使用第二个Authorize.net帐户,以便将付款路由到两个不同的银行帐户。这是为了和解,是一种约束;不能修改

我想,我所需要做的就是在订单提交后(但在通过API发送给.net授权之前)确定它是哪种卡类型,知道要传递给API的凭据,但我不确定在何处添加此代码,或者添加此代码的最佳方式


如果您有任何见解或建议,我们将不胜感激。

默认情况下,这是无法实现的,因此您需要使用一些自定义代码。具体来说,覆盖Authnet支付类
Mage\u Paygate\u Model\u 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
}
要实现这一点,您还需要在后端创建新选项,以加密形式保存凭据。希望有帮助

谢谢,

嗨,乔-谢谢你的帮助-这完全有道理。当你说我需要在后端创建新选项时,你会说复制已经存在的内容就足够了(当然,使用不同的名称)?是的,这应该可以做到。确保在输入数据的过程中对数据进行加密,以确保其安全。