Magento 多个 Authorize.net 网关

Posted

技术标签:

【中文标题】Magento 多个 Authorize.net 网关【英文标题】:Magento Multiple Authorize.net Gateways 【发布时间】:2011-07-03 20:18:21 【问题描述】:

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

我认为我需要做的就是确定订单提交后(但在通过 API 发送到 Authorize.net 之前)它是哪种卡类型,以了解要传递给API,但我不确定在哪里添加此代码,或者添加它的最佳方式。

任何见解或建议将不胜感激。

【问题讨论】:

【参考方案1】:

默认情况下,无法完成此操作,因此您需要使用一些自定义代码。具体来说,覆盖 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

为此,您还需要在后端创建新选项,以加密形式保存凭据。希望对您有所帮助!

谢谢, 乔

【讨论】:

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

以上是关于Magento 多个 Authorize.net 网关的主要内容,如果未能解决你的问题,请参考以下文章

使用两个 Authorize.Net 帐户设置 Magento 的支付桥

Magento:使用 Authorize.net 网关检索付款信息

Magento中的Authorize.net付款在选择时不显示信用卡表格

如何在 magento 中复制 authorize.net 模块?

Magento - 自动重定向到配置的支付网关之一

Verisign/Authorize.Net 可以将交易拆分为多个账户吗?