Magento несколько шлюзов Authorize.net

Я видел, как этот вопрос задавали в отношении типа валюты, но я спрашиваю, как настроить вторую учетную запись Authorize.net в том же магазине для другого типа кредитной карты. Итак, мы хотим, чтобы некоторые кредитные карты использовали первый основной шлюз Authorize.net, а другие использовали вторичную учетную запись Authorize.net, чтобы платежи могли направляться на два разных банковских счета. Это делается в целях примирения и является ограничением; не может быть изменен.

Я полагаю, что все, что мне нужно сделать, это выяснить, как только заказ будет отправлен (но до того, как он будет отправлен через API на Authorize.net), какой это тип карты, чтобы узнать, какие учетные данные передать в API, но Я не знаю, куда добавить этот код или как лучше всего его добавить.

Любое понимание или совет будет принят с благодарностью.


person mattbryanswan    schedule 24.02.2011    source источник


Ответы (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
}

Для этого вы также захотите создать новые параметры в бэкэнде для хранения учетных данных в зашифрованном виде. Надеюсь, это поможет!

Спасибо, Джо

person Joseph Mastey    schedule 24.02.2011
comment
Привет, Джо - спасибо за это - это имеет смысл. Когда вы говорите, что мне нужно будет создать новые параметры в бэкенде, вы скажете, что будет достаточно дублировать то, что уже есть (конечно, используя другие имена)? - person mattbryanswan; 28.02.2011
comment
Да, это должно сработать. Убедитесь, что вы зашифровали данные на пути, чтобы они были в безопасности. - person Joseph Mastey; 28.02.2011